Index: src/ia32/code-stubs-ia32.cc |
diff --git a/src/ia32/code-stubs-ia32.cc b/src/ia32/code-stubs-ia32.cc |
index 6d1041966feee3ff13c5d242a5380fe5feac645b..e28197bd78793d7abdc80fa1f7fd046f8901fdba 100644 |
--- a/src/ia32/code-stubs-ia32.cc |
+++ b/src/ia32/code-stubs-ia32.cc |
@@ -4117,91 +4117,6 @@ void RecordWriteStub::CheckNeedsToInformIncrementalMarker( |
} |
-void StoreArrayLiteralElementStub::Generate(MacroAssembler* masm) { |
- // ----------- S t a t e ------------- |
- // -- eax : element value to store |
- // -- ecx : element index as smi |
- // -- esp[0] : return address |
- // -- esp[4] : array literal index in function |
- // -- esp[8] : array literal |
- // clobbers ebx, edx, edi |
- // ----------------------------------- |
- |
- Label element_done; |
- Label double_elements; |
- Label smi_element; |
- Label slow_elements; |
- Label slow_elements_from_double; |
- Label fast_elements; |
- |
- // Get array literal index, array literal and its map. |
- __ mov(edx, Operand(esp, 1 * kPointerSize)); |
- __ mov(ebx, Operand(esp, 2 * kPointerSize)); |
- __ mov(edi, FieldOperand(ebx, JSObject::kMapOffset)); |
- |
- __ CheckFastElements(edi, &double_elements); |
- |
- // Check for FAST_*_SMI_ELEMENTS or FAST_*_ELEMENTS elements |
- __ JumpIfSmi(eax, &smi_element); |
- __ CheckFastSmiElements(edi, &fast_elements, Label::kNear); |
- |
- // Store into the array literal requires a elements transition. Call into |
- // the runtime. |
- |
- __ bind(&slow_elements); |
- __ pop(edi); // Pop return address and remember to put back later for tail |
- // call. |
- __ push(ebx); |
- __ push(ecx); |
- __ push(eax); |
- __ mov(ebx, Operand(ebp, JavaScriptFrameConstants::kFunctionOffset)); |
- __ push(FieldOperand(ebx, JSFunction::kLiteralsOffset)); |
- __ push(edx); |
- __ push(edi); // Return return address so that tail call returns to right |
- // place. |
- __ TailCallRuntime(Runtime::kStoreArrayLiteralElement, 5, 1); |
- |
- __ bind(&slow_elements_from_double); |
- __ pop(edx); |
- __ jmp(&slow_elements); |
- |
- // Array literal has ElementsKind of FAST_*_ELEMENTS and value is an object. |
- __ bind(&fast_elements); |
- __ mov(ebx, FieldOperand(ebx, JSObject::kElementsOffset)); |
- __ lea(ecx, FieldOperand(ebx, ecx, times_half_pointer_size, |
- FixedArrayBase::kHeaderSize)); |
- __ mov(Operand(ecx, 0), eax); |
- // Update the write barrier for the array store. |
- __ RecordWrite(ebx, ecx, eax, |
- kDontSaveFPRegs, |
- EMIT_REMEMBERED_SET, |
- OMIT_SMI_CHECK); |
- __ ret(0); |
- |
- // Array literal has ElementsKind of FAST_*_SMI_ELEMENTS or FAST_*_ELEMENTS, |
- // and value is Smi. |
- __ bind(&smi_element); |
- __ mov(ebx, FieldOperand(ebx, JSObject::kElementsOffset)); |
- __ mov(FieldOperand(ebx, ecx, times_half_pointer_size, |
- FixedArrayBase::kHeaderSize), eax); |
- __ ret(0); |
- |
- // Array literal has ElementsKind of FAST_*_DOUBLE_ELEMENTS. |
- __ bind(&double_elements); |
- |
- __ push(edx); |
- __ mov(edx, FieldOperand(ebx, JSObject::kElementsOffset)); |
- __ StoreNumberToDoubleElements(eax, |
- edx, |
- ecx, |
- edi, |
- xmm0, |
- &slow_elements_from_double); |
- __ pop(edx); |
- __ ret(0); |
-} |
- |
- |
void StubFailureTrampolineStub::Generate(MacroAssembler* masm) { |
CEntryStub ces(isolate(), 1, kSaveFPRegs); |
__ call(ces.GetCode(), RelocInfo::CODE_TARGET); |