Index: src/arm/lithium-codegen-arm.cc |
diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc |
index 02fac88c8ba9216cd4b9163b3140610fe641380c..738084af030a3cdab9b94619a296a583f01a91a1 100644 |
--- a/src/arm/lithium-codegen-arm.cc |
+++ b/src/arm/lithium-codegen-arm.cc |
@@ -5734,7 +5734,6 @@ void LCodeGen::DoArrayLiteral(LArrayLiteral* instr) { |
// Boilerplate already exists, constant elements are never accessed. |
// Pass an empty fixed array. |
__ mov(r1, Operand(isolate()->factory()->empty_fixed_array())); |
- __ Push(r3, r2, r1); |
// Pick the right runtime function or stub to call. |
int length = instr->hydrogen()->length(); |
@@ -5745,8 +5744,10 @@ void LCodeGen::DoArrayLiteral(LArrayLiteral* instr) { |
FastCloneShallowArrayStub stub(mode, DONT_TRACK_ALLOCATION_SITE, length); |
CallCode(stub.GetCode(isolate()), RelocInfo::CODE_TARGET, instr); |
} else if (instr->hydrogen()->depth() > 1) { |
+ __ Push(r3, r2, r1); |
CallRuntime(Runtime::kCreateArrayLiteral, 3, instr); |
} else if (length > FastCloneShallowArrayStub::kMaximumClonedLength) { |
+ __ Push(r3, r2, r1); |
CallRuntime(Runtime::kCreateArrayLiteralShallow, 3, instr); |
} else { |
FastCloneShallowArrayStub::Mode mode = |