| ... | ... | @@ -352,15 +352,15 @@ pub fn RegisterManager( |
| 352 | 352 | ) AllocateRegistersError!void { |
| 353 | 353 | log.debug("getReg {} for inst {?}", .{ regAtTrackedIndex(tracked_index), inst }); |
| 354 | 354 | if (!self.isRegIndexFree(tracked_index)) { |
| 355 | | self.markRegIndexAllocated(tracked_index); |
| 356 | | |
| 357 | 355 | // Move the instruction that was previously there to a |
| 358 | 356 | // stack allocation. |
| 359 | | const spilled_inst = self.registers[tracked_index]; |
| 360 | | if (inst) |tracked_inst| self.registers[tracked_index] = tracked_inst; |
| 361 | | try self.getFunction().spillInstruction(regAtTrackedIndex(tracked_index), spilled_inst); |
| 362 | | if (inst == null) self.freeRegIndex(tracked_index); |
| 363 | | } else self.getRegIndexAssumeFree(tracked_index, inst); |
| 357 | try self.getFunction().spillInstruction( |
| 358 | regAtTrackedIndex(tracked_index), |
| 359 | self.registers[tracked_index], |
| 360 | ); |
| 361 | self.freeRegIndex(tracked_index); |
| 362 | } |
| 363 | self.getRegIndexAssumeFree(tracked_index, inst); |
| 364 | 364 | } |
| 365 | 365 | pub fn getReg(self: *Self, reg: Register, inst: ?Air.Inst.Index) AllocateRegistersError!void { |
| 366 | 366 | log.debug("getting reg: {}", .{reg}); |