commit e3160ec573882108e2b51cefcf3abc5b346f70c0 (tree)
parent 0728847ce74aace8fe8e2a8f61da09002cd4ad7e
Author: Jakub Konka <kubkon@jakubkonka.com>
Date: Thu, 5 May 2022 21:35:59 +0200
x64: mul_with_overflow: cannot reuse operand if not the result
Diffstat:
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/src/arch/x86_64/CodeGen.zig b/src/arch/x86_64/CodeGen.zig
@@ -1496,11 +1496,8 @@ fn airMulWithOverflow(self: *Self, inst: Air.Inst.Index) !void {
rhs.freezeIfRegister(&self.register_manager);
defer rhs.unfreezeIfRegister(&self.register_manager);
- // TODO check if we could reuse rhs instead, and swap the values out.
const dst_reg: Register = blk: {
- if (self.reuseOperand(inst, bin_op.lhs, 0, lhs)) {
- if (lhs.isRegister()) break :blk lhs.register;
- }
+ if (lhs.isRegister()) break :blk lhs.register;
break :blk try self.copyToTmpRegister(ty, lhs);
};
self.register_manager.freezeRegs(&.{dst_reg});