Index: src/x64/code-stubs-x64.cc |
diff --git a/src/x64/code-stubs-x64.cc b/src/x64/code-stubs-x64.cc |
index f96fda6ad2dbff450f0df1b3670c7a3e3833576c..7480f9cff143bac2e6a2e7cc648018bc57d6f192 100644 |
--- a/src/x64/code-stubs-x64.cc |
+++ b/src/x64/code-stubs-x64.cc |
@@ -4034,85 +4034,6 @@ void RecordWriteStub::CheckNeedsToInformIncrementalMarker( |
} |
-void StoreArrayLiteralElementStub::Generate(MacroAssembler* masm) { |
- // ----------- S t a t e ------------- |
- // -- rax : element value to store |
- // -- rcx : element index as smi |
- // -- rsp[0] : return address |
- // -- rsp[8] : array literal index in function |
- // -- rsp[16] : array literal |
- // clobbers rbx, rdx, rdi |
- // ----------------------------------- |
- |
- Label element_done; |
- Label double_elements; |
- Label smi_element; |
- Label slow_elements; |
- Label fast_elements; |
- |
- // Get array literal index, array literal and its map. |
- StackArgumentsAccessor args(rsp, 2, ARGUMENTS_DONT_CONTAIN_RECEIVER); |
- __ movp(rdx, args.GetArgumentOperand(1)); |
- __ movp(rbx, args.GetArgumentOperand(0)); |
- __ movp(rdi, FieldOperand(rbx, JSObject::kMapOffset)); |
- |
- __ CheckFastElements(rdi, &double_elements); |
- |
- // FAST_*_SMI_ELEMENTS or FAST_*_ELEMENTS |
- __ JumpIfSmi(rax, &smi_element); |
- __ CheckFastSmiElements(rdi, &fast_elements); |
- |
- // Store into the array literal requires a elements transition. Call into |
- // the runtime. |
- |
- __ bind(&slow_elements); |
- __ PopReturnAddressTo(rdi); |
- __ Push(rbx); |
- __ Push(rcx); |
- __ Push(rax); |
- __ movp(rbx, Operand(rbp, JavaScriptFrameConstants::kFunctionOffset)); |
- __ Push(FieldOperand(rbx, JSFunction::kLiteralsOffset)); |
- __ Push(rdx); |
- __ PushReturnAddressFrom(rdi); |
- __ TailCallRuntime(Runtime::kStoreArrayLiteralElement, 5, 1); |
- |
- // Array literal has ElementsKind of FAST_*_ELEMENTS and value is an object. |
- __ bind(&fast_elements); |
- __ SmiToInteger32(kScratchRegister, rcx); |
- __ movp(rbx, FieldOperand(rbx, JSObject::kElementsOffset)); |
- __ leap(rcx, FieldOperand(rbx, kScratchRegister, times_pointer_size, |
- FixedArrayBase::kHeaderSize)); |
- __ movp(Operand(rcx, 0), rax); |
- // Update the write barrier for the array store. |
- __ RecordWrite(rbx, rcx, rax, |
- 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); |
- __ SmiToInteger32(kScratchRegister, rcx); |
- __ movp(rbx, FieldOperand(rbx, JSObject::kElementsOffset)); |
- __ movp(FieldOperand(rbx, kScratchRegister, times_pointer_size, |
- FixedArrayBase::kHeaderSize), rax); |
- __ ret(0); |
- |
- // Array literal has ElementsKind of FAST_DOUBLE_ELEMENTS. |
- __ bind(&double_elements); |
- |
- __ movp(r9, FieldOperand(rbx, JSObject::kElementsOffset)); |
- __ SmiToInteger32(r11, rcx); |
- __ StoreNumberToDoubleElements(rax, |
- r9, |
- r11, |
- xmm0, |
- &slow_elements); |
- __ ret(0); |
-} |
- |
- |
void StubFailureTrampolineStub::Generate(MacroAssembler* masm) { |
CEntryStub ces(isolate(), 1, kSaveFPRegs); |
__ Call(ces.GetCode(), RelocInfo::CODE_TARGET); |