diff --git a/src/compiler/ia32/instruction-selector-ia32.cc b/src/compiler/ia32/instruction-selector-ia32.cc index 3852c05bbca..d1e789dff94 100644 --- a/src/compiler/ia32/instruction-selector-ia32.cc +++ b/src/compiler/ia32/instruction-selector-ia32.cc @@ -535,9 +535,10 @@ void VisitDiv(InstructionSelector* selector, Node* node, ArchOpcode opcode) { void VisitMod(InstructionSelector* selector, Node* node, ArchOpcode opcode) { IA32OperandGenerator g(selector); + InstructionOperand temps[] = {g.TempRegister(eax)}; selector->Emit(opcode, g.DefineAsFixed(node, edx), g.UseFixed(node->InputAt(0), eax), - g.UseUnique(node->InputAt(1))); + g.UseUnique(node->InputAt(1)), arraysize(temps), temps); } void EmitLea(InstructionSelector* selector, Node* result, Node* index, diff --git a/src/compiler/x64/instruction-selector-x64.cc b/src/compiler/x64/instruction-selector-x64.cc index ecb99f34f46..edcf62a5ecb 100644 --- a/src/compiler/x64/instruction-selector-x64.cc +++ b/src/compiler/x64/instruction-selector-x64.cc @@ -793,9 +793,10 @@ void VisitDiv(InstructionSelector* selector, Node* node, ArchOpcode opcode) { void VisitMod(InstructionSelector* selector, Node* node, ArchOpcode opcode) { X64OperandGenerator g(selector); - selector->Emit(opcode, g.DefineAsFixed(node, rdx), - g.UseFixed(node->InputAt(0), rax), - g.UseUniqueRegister(node->InputAt(1))); + InstructionOperand temps[] = {g.TempRegister(rax)}; + selector->Emit( + opcode, g.DefineAsFixed(node, rdx), g.UseFixed(node->InputAt(0), rax), + g.UseUniqueRegister(node->InputAt(1)), arraysize(temps), temps); } } // namespace