Commit af77b5a8 authored by whesse@chromium.org's avatar whesse@chromium.org

Add MarkAsCall to the LArithmeticD::MOD instruction, that calls a C function, on ia32 platform

Review URL: http://codereview.chromium.org/6596105

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7021 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 6b069023
...@@ -870,10 +870,18 @@ LInstruction* LChunkBuilder::DoArithmeticD(Token::Value op, ...@@ -870,10 +870,18 @@ LInstruction* LChunkBuilder::DoArithmeticD(Token::Value op,
ASSERT(instr->representation().IsDouble()); ASSERT(instr->representation().IsDouble());
ASSERT(instr->left()->representation().IsDouble()); ASSERT(instr->left()->representation().IsDouble());
ASSERT(instr->right()->representation().IsDouble()); ASSERT(instr->right()->representation().IsDouble());
LOperand* left = UseRegisterAtStart(instr->left()); if (op == Token::MOD) {
LOperand* right = UseRegisterAtStart(instr->right()); LOperand* left = UseFixedDouble(instr->left(), xmm2);
LArithmeticD* result = new LArithmeticD(op, left, right); LOperand* right = UseFixedDouble(instr->right(), xmm1);
return DefineSameAsFirst(result); LArithmeticD* result = new LArithmeticD(op, left, right);
return MarkAsCall(DefineFixedDouble(result, xmm1), instr);
} else {
LOperand* left = UseRegisterAtStart(instr->left());
LOperand* right = UseRegisterAtStart(instr->right());
LArithmeticD* result = new LArithmeticD(op, left, right);
return DefineSameAsFirst(result);
}
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment