| ... | ... | @@ -1208,14 +1208,16 @@ fn load(self: *Self, dst_mcv: MCValue, ptr: MCValue, ptr_ty: Type) InnerError!vo |
| 1208 | 1208 | .register => { |
| 1209 | 1209 | return self.fail("TODO implement loading from MCValue.register", .{}); |
| 1210 | 1210 | }, |
| 1211 | | .memory => |addr| { |
| 1211 | .memory, |
| 1212 | .stack_offset, |
| 1213 | => { |
| 1212 | 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 | 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 | } |
| 1221 | 1223 | |