| Index: src/ia32/lithium-ia32.cc | 
| diff --git a/src/ia32/lithium-ia32.cc b/src/ia32/lithium-ia32.cc | 
| index ebcf1b637c222cd654fbe8e4a7ade4aef537132d..77f5706c6f803c07c63d9ccf44794c049375d6bd 100644 | 
| --- a/src/ia32/lithium-ia32.cc | 
| +++ b/src/ia32/lithium-ia32.cc | 
| @@ -808,11 +808,17 @@ LInstruction* LChunkBuilder::DoArithmeticD(Token::Value op, | 
| ASSERT(instr->representation().IsDouble()); | 
| ASSERT(instr->left()->representation().IsDouble()); | 
| ASSERT(instr->right()->representation().IsDouble()); | 
| -  LOperand* left = UseRegisterAtStart(instr->BetterLeftOperand()); | 
| -  LOperand* right = UseRegisterAtStart(instr->BetterRightOperand()); | 
| -  LArithmeticD* result = new(zone()) LArithmeticD(op, left, right); | 
| -  if (op == Token::MOD) return MarkAsCall(DefineSameAsFirst(result), instr); | 
| -  return DefineSameAsFirst(result); | 
| +  if (op == Token::MOD) { | 
| +    LOperand* left = UseRegisterAtStart(instr->BetterLeftOperand()); | 
| +    LOperand* right = UseRegisterAtStart(instr->BetterRightOperand()); | 
| +    LArithmeticD* result = new(zone()) LArithmeticD(op, left, right); | 
| +    return MarkAsCall(DefineSameAsFirst(result), instr); | 
| +  } else { | 
| +    LOperand* left = UseRegisterAtStart(instr->BetterLeftOperand()); | 
| +    LOperand* right = UseRegisterAtStart(instr->BetterRightOperand()); | 
| +    LArithmeticD* result = new(zone()) LArithmeticD(op, left, right); | 
| +    return DefineSameAsFirst(result); | 
| +  } | 
| } | 
|  | 
|  | 
|  |