Chromium Code Reviews| Index: src/arm/lithium-arm.cc |
| diff --git a/src/arm/lithium-arm.cc b/src/arm/lithium-arm.cc |
| index b5b05886cb7bebce99bc6521f4e8d41dfc3af475..e75ab4b770dc7dcf59aac6777eb11fce6c892686 100644 |
| --- a/src/arm/lithium-arm.cc |
| +++ b/src/arm/lithium-arm.cc |
| @@ -1239,11 +1239,12 @@ LInstruction* LChunkBuilder::DoDiv(HDiv* instr) { |
| if (instr->representation().IsDouble()) { |
| return DoArithmeticD(Token::DIV, instr); |
| } else if (instr->representation().IsInteger32()) { |
| - // The temporary operand is necessary to ensure that right is not allocated |
| - // into edx. |
| - FixedTemp(r1); |
| + // TODO(karlklose) The fixed register allocation |
|
Søren Thygesen Gjesse
2011/01/13 08:28:38
Please open a bug to track this, and change to TOD
Karl Klose
2011/01/13 13:52:31
Done.
|
| + // is needed because we call GenericBinaryOpStub from |
| + // the generated code, which requires registers r0 |
| + // and r1 to be used. |
| LOperand* value = UseFixed(instr->left(), r0); |
| - LOperand* divisor = UseRegister(instr->right()); |
| + LOperand* divisor = UseFixed(instr->right(), r1); |
| return AssignEnvironment(DefineFixed(new LDivI(value, divisor), r0)); |
| } else { |
| return DoArithmeticT(Token::DIV, instr); |