Index: src/mips/lithium-codegen-mips.cc |
diff --git a/src/mips/lithium-codegen-mips.cc b/src/mips/lithium-codegen-mips.cc |
index 60df710dbf119e043db163cc13a01e6fae54e156..a992799502210acc6cfb3445617ed97afcbb6b8b 100644 |
--- a/src/mips/lithium-codegen-mips.cc |
+++ b/src/mips/lithium-codegen-mips.cc |
@@ -4522,7 +4522,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(); |
@@ -4543,12 +4543,13 @@ void LCodeGen::DoArrayLiteral(LArrayLiteral* instr) { |
a2, |
Operand(boilerplate_elements_kind)); |
} |
- __ lw(a3, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset)); |
- __ lw(a3, FieldMemOperand(a3, JSFunction::kLiteralsOffset)); |
+ |
+ // Set up the parameters to the stub/runtime call. |
+ __ LoadHeapObject(a3, literals); |
__ li(a2, Operand(Smi::FromInt(instr->hydrogen()->literal_index()))); |
// Boilerplate already exists, constant elements are never accessed. |
// Pass an empty fixed array. |
- __ li(a1, Operand(Handle<FixedArray>(heap->empty_fixed_array()))); |
+ __ li(a1, Operand(isolate()->factory()->empty_fixed_array())); |
__ Push(a3, a2, a1); |
// Pick the right runtime function or stub to call. |