| Index: src/compiler/ia32/instruction-selector-ia32.cc
|
| diff --git a/src/compiler/ia32/instruction-selector-ia32.cc b/src/compiler/ia32/instruction-selector-ia32.cc
|
| index e237ebf693952bee46be9e82011daa129e7d2e50..0c939ec7567e128a65b55ec67663ae49f5c33c5e 100644
|
| --- a/src/compiler/ia32/instruction-selector-ia32.cc
|
| +++ b/src/compiler/ia32/instruction-selector-ia32.cc
|
| @@ -737,8 +737,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(kIA32Push, 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(kIA32Push, NULL, value);
|
| }
|
|
|
| // Select the appropriate opcode based on the call type.
|
|
|