Index: src/mips/lithium-mips.cc |
diff --git a/src/mips/lithium-mips.cc b/src/mips/lithium-mips.cc |
index 889e99700c2774ab89e3861809bbc9387d047415..422545475ef6849d36d0ac4191f70a864d46deef 100644 |
--- a/src/mips/lithium-mips.cc |
+++ b/src/mips/lithium-mips.cc |
@@ -1360,15 +1360,10 @@ LInstruction* LChunkBuilder::DoDiv(HDiv* instr) { |
if (instr->representation().IsDouble()) { |
return DoArithmeticD(Token::DIV, instr); |
} else if (instr->representation().IsInteger32()) { |
- // TODO(1042) The fixed register allocation |
- // is needed because we call TypeRecordingBinaryOpStub from |
- // the generated code, which requires registers a0 |
- // and a1 to be used. We should remove that |
- // when we provide a native implementation. |
- LOperand* dividend = UseFixed(instr->left(), a0); |
- LOperand* divisor = UseFixed(instr->right(), a1); |
- return AssignEnvironment(AssignPointerMap( |
- DefineFixed(new(zone()) LDivI(dividend, divisor), v0))); |
+ LOperand* dividend = UseRegister(instr->left()); |
+ LOperand* divisor = UseRegister(instr->right()); |
+ LDivI* div = new(zone()) LDivI(dividend, divisor); |
+ return AssignEnvironment(DefineAsRegister(div)); |
} else { |
return DoArithmeticT(Token::DIV, instr); |
} |