From e3160ec573882108e2b51cefcf3abc5b346f70c0 Mon Sep 17 00:00:00 2001 From: Jakub Konka Date: Thu, 5 May 2022 21:35:59 +0200 Subject: [PATCH] x64: mul_with_overflow: cannot reuse operand if not the result --- src/arch/x86_64/CodeGen.zig | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/arch/x86_64/CodeGen.zig b/src/arch/x86_64/CodeGen.zig index 6a6e6ad6cb..767a67bf92 100644 --- 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});