Index: src/x64/lithium-x64.cc |
diff --git a/src/x64/lithium-x64.cc b/src/x64/lithium-x64.cc |
index 662cfce6a037ff77b3b7d58c695ded2b24923524..3a7366e324699dfdfb8ae6b3f42760298b0984e0 100644 |
--- a/src/x64/lithium-x64.cc |
+++ b/src/x64/lithium-x64.cc |
@@ -760,16 +760,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 = NULL; |
if (op == Token::MOD) { |
- right = UseFixedDouble(instr->BetterRightOperand(), xmm1); |
+ LOperand* left = UseRegisterAtStart(instr->BetterLeftOperand()); |
+ LOperand* right = UseFixedDouble(instr->BetterRightOperand(), xmm1); |
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); |
} |
- right = UseRegisterAtStart(instr->BetterRightOperand()); |
- LArithmeticD* result = new(zone()) LArithmeticD(op, left, right); |
- return DefineSameAsFirst(result); |
} |