diff options
| author | joachimschmidt557 <joachim.schmidt557@outlook.com> | 2021-05-14 17:09:11 +0800 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2021-05-14 15:12:33 -0400 |
| commit | 8b4e91e18ce425902bef726ec3731d266867a6f7 (patch) | |
| tree | 1279ffd90a129d97d37ac9e9357d550fd57526ec /src/codegen.zig | |
| parent | 5185b5619ac703755849da70d158b5a45e5673a7 (diff) | |
| download | zig-8b4e91e18ce425902bef726ec3731d266867a6f7.tar.gz zig-8b4e91e18ce425902bef726ec3731d266867a6f7.zip | |
stage2 register manager: clean up API and add more unit tests
Diffstat (limited to 'src/codegen.zig')
| -rw-r--r-- | src/codegen.zig | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/codegen.zig b/src/codegen.zig index c41802ca00..9d344bf1d0 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -952,7 +952,7 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { /// allocated. A second call to `copyToTmpRegister` may return the same register. /// This can have a side effect of spilling instructions to the stack to free up a register. fn copyToTmpRegister(self: *Self, src: LazySrcLoc, ty: Type, mcv: MCValue) !Register { - const reg = try self.register_manager.allocRegWithoutTracking(&.{}); + const reg = try self.register_manager.allocReg(null, &.{}); try self.genSetReg(src, ty, reg, mcv); return reg; } @@ -2228,7 +2228,7 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { switch (mc_arg) { .none => continue, .register => |reg| { - try self.register_manager.getRegWithoutTracking(reg); + try self.register_manager.getReg(reg, null); try self.genSetReg(arg.src, arg.ty, reg, arg_mcv); }, .stack_offset => { @@ -2370,7 +2370,7 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { .compare_flags_signed => unreachable, .compare_flags_unsigned => unreachable, .register => |reg| { - try self.register_manager.getRegWithoutTracking(reg); + try self.register_manager.getReg(reg, null); try self.genSetReg(arg.src, arg.ty, reg, arg_mcv); }, .stack_offset => { @@ -2433,7 +2433,7 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { .compare_flags_signed => unreachable, .compare_flags_unsigned => unreachable, .register => |reg| { - try self.register_manager.getRegWithoutTracking(reg); + try self.register_manager.getReg(reg, null); try self.genSetReg(arg.src, arg.ty, reg, arg_mcv); }, .stack_offset => { @@ -2486,7 +2486,7 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { .register => |reg| { // TODO prevent this macho if block to be generated for all archs switch (arch) { - .x86_64, .aarch64 => try self.register_manager.getRegWithoutTracking(reg), + .x86_64, .aarch64 => try self.register_manager.getReg(reg, null), else => unreachable, } try self.genSetReg(arg.src, arg.ty, reg, arg_mcv); @@ -3190,7 +3190,7 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { const arg = inst.args[i]; const arg_mcv = try self.resolveInst(arg); - try self.register_manager.getRegWithoutTracking(reg); + try self.register_manager.getReg(reg, null); try self.genSetReg(inst.base.src, arg.ty, reg, arg_mcv); } @@ -3223,7 +3223,7 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { const arg = inst.args[i]; const arg_mcv = try self.resolveInst(arg); - try self.register_manager.getRegWithoutTracking(reg); + try self.register_manager.getReg(reg, null); try self.genSetReg(inst.base.src, arg.ty, reg, arg_mcv); } @@ -3258,7 +3258,7 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { const arg = inst.args[i]; const arg_mcv = try self.resolveInst(arg); - try self.register_manager.getRegWithoutTracking(reg); + try self.register_manager.getReg(reg, null); try self.genSetReg(inst.base.src, arg.ty, reg, arg_mcv); } @@ -3291,7 +3291,7 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { const arg = inst.args[i]; const arg_mcv = try self.resolveInst(arg); - try self.register_manager.getRegWithoutTracking(reg); + try self.register_manager.getReg(reg, null); try self.genSetReg(inst.base.src, arg.ty, reg, arg_mcv); } |
