Index: src/compiler/arm/code-generator-arm.cc |
diff --git a/src/compiler/arm/code-generator-arm.cc b/src/compiler/arm/code-generator-arm.cc |
index e9a4a5aaf6f4fa7a348a8da57b6d484c0f350fef..722f5378729daec6352b00d99a2cc098d75cbbcf 100644 |
--- a/src/compiler/arm/code-generator-arm.cc |
+++ b/src/compiler/arm/code-generator-arm.cc |
@@ -814,7 +814,12 @@ void CodeGenerator::AssembleArchInstruction(Instruction* instr) { |
break; |
} |
case kArmPush: |
- __ Push(i.InputRegister(0)); |
+ if (instr->InputAt(0)->IsDoubleRegister()) { |
+ __ vstr(i.InputDoubleRegister(0), MemOperand(sp, -kDoubleSize)); |
+ __ sub(sp, sp, Operand(kDoubleSize)); |
+ } else { |
+ __ Push(i.InputRegister(0)); |
+ } |
DCHECK_EQ(LeaveCC, i.OutputSBit()); |
break; |
case kArmPoke: { |