| 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 cef16c2faa09ad8085c9110d7e34aae5a7000a8d..38ec63122cee8c79f06ec3c04c8f29d087a0e43c 100644
|
| --- a/src/compiler/arm/code-generator-arm.cc
|
| +++ b/src/compiler/arm/code-generator-arm.cc
|
| @@ -1204,8 +1204,15 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction(
|
| }
|
| case kArmPush:
|
| if (instr->InputAt(0)->IsFPRegister()) {
|
| - __ vpush(i.InputDoubleRegister(0));
|
| - frame_access_state()->IncreaseSPDelta(kDoubleSize / kPointerSize);
|
| + LocationOperand* op = LocationOperand::cast(instr->InputAt(0));
|
| + if (op->representation() == MachineRepresentation::kFloat64) {
|
| + __ vpush(i.InputFloat64Register(0));
|
| + frame_access_state()->IncreaseSPDelta(kDoubleSize / kPointerSize);
|
| + } else {
|
| + DCHECK_EQ(MachineRepresentation::kFloat32, op->representation());
|
| + __ vpush(i.InputFloat32Register(0));
|
| + frame_access_state()->IncreaseSPDelta(1);
|
| + }
|
| } else {
|
| __ push(i.InputRegister(0));
|
| frame_access_state()->IncreaseSPDelta(1);
|
|
|