| ... | ... | @@ -2029,6 +2029,7 @@ fn binOpImmediate( |
| 2029 | 2029 | defer if (new_lhs_lock) |reg| self.register_manager.unlockReg(reg); |
| 2030 | 2030 | |
| 2031 | 2031 | const dest_reg = switch (mir_tag) { |
| 2032 | .cmp => undefined, // cmp has no destination register |
| 2032 | 2033 | else => if (metadata) |md| blk: { |
| 2033 | 2034 | if (lhs_is_register and self.reuseOperand( |
| 2034 | 2035 | md.inst, |
| ... | ... | @@ -2148,6 +2149,7 @@ fn binOpRegister( |
| 2148 | 2149 | defer if (new_rhs_lock) |reg| self.register_manager.unlockReg(reg); |
| 2149 | 2150 | |
| 2150 | 2151 | const dest_reg = switch (mir_tag) { |
| 2152 | .cmp => undefined, // cmp has no destination register |
| 2151 | 2153 | else => if (metadata) |md| blk: { |
| 2152 | 2154 | if (lhs_is_register and self.reuseOperand(md.inst, md.lhs, 0, lhs)) { |
| 2153 | 2155 | break :blk lhs_reg; |
| ... | ... | @@ -3064,6 +3066,10 @@ fn processDeath(self: *Self, inst: Air.Inst.Index) void { |
| 3064 | 3066 | .register => |reg| { |
| 3065 | 3067 | self.register_manager.freeReg(reg); |
| 3066 | 3068 | }, |
| 3069 | .register_with_overflow => |rwo| { |
| 3070 | self.register_manager.freeReg(rwo.reg); |
| 3071 | self.compare_flags_inst = null; |
| 3072 | }, |
| 3067 | 3073 | .compare_flags_signed, .compare_flags_unsigned => { |
| 3068 | 3074 | self.compare_flags_inst = null; |
| 3069 | 3075 | }, |