authorgravatar for joachim.schmidt557@outlook.comJoachim Schmidt <joachim.schmidt557@outlook.com> 2022-01-29 13:03:53+01:00
committergravatar for joachim.schmidt557@outlook.comJoachim Schmidt <joachim.schmidt557@outlook.com> 2022-01-30 10:16:17+01:00
log1fd41af356da74e35a9facf8f3c5d665887f8a1e
tree6ced70c11efe1a136c804c68f757cc73fb9773b4
parent2a1727e93c4ea654cc8f3295728a9dd378eb044e
signaturelock-open Commit is signed but in an unrecognized format.

stage2 RISCV64: Move to new regalloc freeze API


1 files changed, 7 insertions(+), 5 deletions(-)

src/arch/riscv64/CodeGen.zig+7-5
...@@ -1208,14 +1208,16 @@ fn load(self: *Self, dst_mcv: MCValue, ptr: MCValue, ptr_ty: Type) InnerError!vo...@@ -1208,14 +1208,16 @@ fn load(self: *Self, dst_mcv: MCValue, ptr: MCValue, ptr_ty: Type) InnerError!vo
1208 .register => {1208 .register => {
1209 return self.fail("TODO implement loading from MCValue.register", .{});1209 return self.fail("TODO implement loading from MCValue.register", .{});
1210 },1210 },
1211 .memory => |addr| {1211 .memory,
1212 .stack_offset,
1213 => {
1212 const reg = try self.register_manager.allocReg(null, &.{});1214 const reg = try self.register_manager.allocReg(null, &.{});
1213 try self.genSetReg(ptr_ty, reg, .{ .memory = addr });1215 self.register_manager.freezeRegs(&.{reg});
1216 defer self.register_manager.unfreezeRegs(&.{reg});
1217
1218 try self.genSetReg(ptr_ty, reg, ptr);
1214 try self.load(dst_mcv, .{ .register = reg }, ptr_ty);1219 try self.load(dst_mcv, .{ .register = reg }, ptr_ty);
1215 },1220 },
1216 .stack_offset => {
1217 return self.fail("TODO implement loading from MCValue.stack_offset", .{});
1218 },
1219 }1221 }
1220}1222}
12211223