Index: src/compiler/ia32/code-generator-ia32.cc |
diff --git a/src/compiler/ia32/code-generator-ia32.cc b/src/compiler/ia32/code-generator-ia32.cc |
index 593bf9545afcfc4750b6dec147e1baa9a267aa6f..27033d66e051e899022baa6ba02fcb30fa7f8d8a 100644 |
--- a/src/compiler/ia32/code-generator-ia32.cc |
+++ b/src/compiler/ia32/code-generator-ia32.cc |
@@ -875,7 +875,10 @@ void CodeGenerator::AssembleArchInstruction(Instruction* instr) { |
break; |
} |
case kIA32Push: |
- if (HasImmediateInput(instr, 0)) { |
+ if (instr->InputAt(0)->IsDoubleRegister()) { |
+ __ sub(esp, Immediate(kDoubleSize)); |
+ __ movsd(Operand(esp, 0), i.InputDoubleRegister(0)); |
+ } else if (HasImmediateInput(instr, 0)) { |
__ push(i.InputImmediate(0)); |
} else { |
__ push(i.InputOperand(0)); |