| ... | ... | @@ -2489,6 +2489,25 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { |
| 2489 | 2489 | }, |
| 2490 | 2490 | else => return self.fail(src, "TODO implement getSetReg for arm {}", .{mcv}), |
| 2491 | 2491 | }, |
| 2492 | .aarch64 => switch (mcv) { |
| 2493 | .dead => unreachable, |
| 2494 | .ptr_stack_offset => unreachable, |
| 2495 | .ptr_embedded_in_code => unreachable, |
| 2496 | .unreach, .none => return, // Nothing to do. |
| 2497 | .undef => { |
| 2498 | if (!self.wantSafety()) |
| 2499 | return; // The already existing value will do just fine. |
| 2500 | // Write the debug undefined value. |
| 2501 | switch (reg.size()) { |
| 2502 | 32 => return self.genSetReg(src, reg, .{ .immediate = 0xaaaaaaaa }), |
| 2503 | 64 => return self.genSetReg(src, reg, .{ .immediate = 0xaaaaaaaaaaaaaaaa }), |
| 2504 | else => unreachable, // unexpected register size |
| 2505 | } |
| 2506 | }, |
| 2507 | .immediate => return self.fail(src, "TODO implement genSetReg for aarch64 {}", .{mcv}), |
| 2508 | .register => return self.fail(src, "TODO implement genSetReg for aarch64 {}", .{mcv}), |
| 2509 | else => return self.fail(src, "TODO implement genSetReg for aarch64 {}", .{mcv}), |
| 2510 | }, |
| 2492 | 2511 | .riscv64 => switch (mcv) { |
| 2493 | 2512 | .dead => unreachable, |
| 2494 | 2513 | .ptr_stack_offset => unreachable, |