Index: src/arm/lithium-codegen-arm.cc |
diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc |
index a61e4c0c5144e21f6f062b550f142ead8caa88e4..e0633d5420bcd6b35041a20e14c8aa876853c9af 100644 |
--- a/src/arm/lithium-codegen-arm.cc |
+++ b/src/arm/lithium-codegen-arm.cc |
@@ -4754,7 +4754,7 @@ void LCodeGen::DoDeferredAllocateObject(LAllocateObject* instr) { |
void LCodeGen::DoArrayLiteral(LArrayLiteral* instr) { |
- Heap* heap = isolate()->heap(); |
+ Handle<FixedArray> literals(instr->environment()->closure()->literals()); |
ElementsKind boilerplate_elements_kind = |
instr->hydrogen()->boilerplate_elements_kind(); |
@@ -4774,12 +4774,12 @@ void LCodeGen::DoArrayLiteral(LArrayLiteral* instr) { |
DeoptimizeIf(ne, instr->environment()); |
} |
- __ ldr(r3, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset)); |
- __ ldr(r3, FieldMemOperand(r3, JSFunction::kLiteralsOffset)); |
+ // Set up the parameters to the stub/runtime call. |
+ __ LoadHeapObject(r3, literals); |
__ mov(r2, Operand(Smi::FromInt(instr->hydrogen()->literal_index()))); |
// Boilerplate already exists, constant elements are never accessed. |
// Pass an empty fixed array. |
- __ mov(r1, Operand(Handle<FixedArray>(heap->empty_fixed_array()))); |
+ __ mov(r1, Operand(isolate()->factory()->empty_fixed_array())); |
__ Push(r3, r2, r1); |
// Pick the right runtime function or stub to call. |