| Index: src/compiler/x64/instruction-selector-x64.cc
|
| diff --git a/src/compiler/x64/instruction-selector-x64.cc b/src/compiler/x64/instruction-selector-x64.cc
|
| index bf6b170e414b1eb568fb727e20ed69550ff512e8..f0b982d087b83335c4d73941104ee04ae2522b04 100644
|
| --- a/src/compiler/x64/instruction-selector-x64.cc
|
| +++ b/src/compiler/x64/instruction-selector-x64.cc
|
| @@ -941,8 +941,11 @@ void InstructionSelector::VisitCall(Node* node) {
|
| for (NodeVectorRIter input = buffer.pushed_nodes.rbegin();
|
| input != buffer.pushed_nodes.rend(); input++) {
|
| // TODO(titzer): handle pushing double parameters.
|
| - Emit(kX64Push, NULL,
|
| - g.CanBeImmediate(*input) ? g.UseImmediate(*input) : g.Use(*input));
|
| + InstructionOperand* value =
|
| + g.CanBeImmediate(*input)
|
| + ? g.UseImmediate(*input)
|
| + : FLAG_intel_atom ? g.UseRegister(*input) : g.Use(*input);
|
| + Emit(kX64Push, NULL, value);
|
| }
|
|
|
| // Select the appropriate opcode based on the call type.
|
|
|