aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoachimschmidt557 <joachim.schmidt557@outlook.com>2022-01-29 13:03:53 +0100
committerjoachimschmidt557 <joachim.schmidt557@outlook.com>2022-01-30 10:16:17 +0100
commit1fd41af356da74e35a9facf8f3c5d665887f8a1e (patch)
tree6ced70c11efe1a136c804c68f757cc73fb9773b4
parent2a1727e93c4ea654cc8f3295728a9dd378eb044e (diff)
downloadzig-1fd41af356da74e35a9facf8f3c5d665887f8a1e.tar.gz
zig-1fd41af356da74e35a9facf8f3c5d665887f8a1e.zip
stage2 RISCV64: Move to new regalloc freeze API
-rw-r--r--src/arch/riscv64/CodeGen.zig12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/arch/riscv64/CodeGen.zig b/src/arch/riscv64/CodeGen.zig
index eb99d479c2..330e821d4b 100644
--- a/src/arch/riscv64/CodeGen.zig
+++ b/src/arch/riscv64/CodeGen.zig
@@ -1208,14 +1208,16 @@ fn load(self: *Self, dst_mcv: MCValue, ptr: MCValue, ptr_ty: Type) InnerError!vo
.register => {
return self.fail("TODO implement loading from MCValue.register", .{});
},
- .memory => |addr| {
+ .memory,
+ .stack_offset,
+ => {
const reg = try self.register_manager.allocReg(null, &.{});
- try self.genSetReg(ptr_ty, reg, .{ .memory = addr });
+ self.register_manager.freezeRegs(&.{reg});
+ defer self.register_manager.unfreezeRegs(&.{reg});
+
+ try self.genSetReg(ptr_ty, reg, ptr);
try self.load(dst_mcv, .{ .register = reg }, ptr_ty);
},
- .stack_offset => {
- return self.fail("TODO implement loading from MCValue.stack_offset", .{});
- },
}
}