Chromium Code Reviews| Index: src/ia32/full-codegen-ia32.cc |
| diff --git a/src/ia32/full-codegen-ia32.cc b/src/ia32/full-codegen-ia32.cc |
| index c4c1e87a23d63375d64beb43d206e52ca8909e0c..01e5fa490f53198602993c4904171054c718588d 100644 |
| --- a/src/ia32/full-codegen-ia32.cc |
| +++ b/src/ia32/full-codegen-ia32.cc |
| @@ -1788,16 +1788,17 @@ void FullCodeGenerator::VisitArrayLiteral(ArrayLiteral* expr) { |
| } |
| if (!result_saved) { |
| - __ push(eax); |
| + __ push(eax); // array literal. |
| + __ push(Immediate(Smi::FromInt(expr->literal_index()))); |
| result_saved = true; |
| } |
| VisitForAccumulatorValue(subexpr); |
| - if (IsFastObjectElementsKind(constant_elements_kind)) { |
| + if (false && IsFastObjectElementsKind(constant_elements_kind)) { |
|
Michael Starzinger
2013/06/13 13:57:27
This "false" looks like a debugging left-over.
Sven Panne
2013/06/14 06:04:32
Done.
|
| // Fast-case array literal with ElementsKind of FAST_*_ELEMENTS, they |
| // cannot transition and don't need to call the runtime stub. |
| int offset = FixedArray::kHeaderSize + (i * kPointerSize); |
| - __ mov(ebx, Operand(esp, 0)); // Copy of array literal. |
| + __ mov(ebx, Operand(esp, kPointerSize)); // Copy of array literal. |
| __ mov(ebx, FieldOperand(ebx, JSObject::kElementsOffset)); |
| // Store the subexpression value in the array's elements. |
| __ mov(FieldOperand(ebx, offset), result_register()); |
| @@ -1808,10 +1809,7 @@ void FullCodeGenerator::VisitArrayLiteral(ArrayLiteral* expr) { |
| INLINE_SMI_CHECK); |
| } else { |
| // Store the subexpression value in the array's elements. |
| - __ mov(ebx, Operand(esp, 0)); // Copy of array literal. |
| - __ mov(edi, FieldOperand(ebx, JSObject::kMapOffset)); |
| __ mov(ecx, Immediate(Smi::FromInt(i))); |
| - __ mov(edx, Immediate(Smi::FromInt(expr->literal_index()))); |
| StoreArrayLiteralElementStub stub; |
| __ CallStub(&stub); |
| } |
| @@ -1820,6 +1818,7 @@ void FullCodeGenerator::VisitArrayLiteral(ArrayLiteral* expr) { |
| } |
| if (result_saved) { |
| + __ add(esp, Immediate(kPointerSize)); // literal index |
| context()->PlugTOS(); |
| } else { |
| context()->Plug(eax); |