Index: src/arm64/code-stubs-arm64.cc |
diff --git a/src/arm64/code-stubs-arm64.cc b/src/arm64/code-stubs-arm64.cc |
index c34b41ad48bd19fca798df1d83c8d342d0bdf8ad..5039c27be3e1c7c27f5c155285e91d08f5fb694e 100644 |
--- a/src/arm64/code-stubs-arm64.cc |
+++ b/src/arm64/code-stubs-arm64.cc |
@@ -4178,76 +4178,6 @@ void RecordWriteStub::Generate(MacroAssembler* masm) { |
} |
-void StoreArrayLiteralElementStub::Generate(MacroAssembler* masm) { |
- // x0 value element value to store |
- // x3 index_smi element index as smi |
- // sp[0] array_index_smi array literal index in function as smi |
- // sp[1] array array literal |
- |
- Register value = x0; |
- Register index_smi = x3; |
- |
- Register array = x1; |
- Register array_map = x2; |
- Register array_index_smi = x4; |
- __ PeekPair(array_index_smi, array, 0); |
- __ Ldr(array_map, FieldMemOperand(array, JSObject::kMapOffset)); |
- |
- Label double_elements, smi_element, fast_elements, slow_elements; |
- Register bitfield2 = x10; |
- __ Ldrb(bitfield2, FieldMemOperand(array_map, Map::kBitField2Offset)); |
- |
- // Jump if array's ElementsKind is not FAST*_SMI_ELEMENTS, FAST_ELEMENTS or |
- // FAST_HOLEY_ELEMENTS. |
- STATIC_ASSERT(FAST_SMI_ELEMENTS == 0); |
- STATIC_ASSERT(FAST_HOLEY_SMI_ELEMENTS == 1); |
- STATIC_ASSERT(FAST_ELEMENTS == 2); |
- STATIC_ASSERT(FAST_HOLEY_ELEMENTS == 3); |
- __ Cmp(bitfield2, Map::kMaximumBitField2FastHoleyElementValue); |
- __ B(hi, &double_elements); |
- |
- __ JumpIfSmi(value, &smi_element); |
- |
- // Jump if array's ElementsKind is not FAST_ELEMENTS or FAST_HOLEY_ELEMENTS. |
- __ Tbnz(bitfield2, MaskToBit(FAST_ELEMENTS << Map::ElementsKindBits::kShift), |
- &fast_elements); |
- |
- // Store into the array literal requires an elements transition. Call into |
- // the runtime. |
- __ Bind(&slow_elements); |
- __ Push(array, index_smi, value); |
- __ Ldr(x10, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset)); |
- __ Ldr(x11, FieldMemOperand(x10, JSFunction::kLiteralsOffset)); |
- __ Push(x11, array_index_smi); |
- __ TailCallRuntime(Runtime::kStoreArrayLiteralElement, 5, 1); |
- |
- // Array literal has ElementsKind of FAST_*_ELEMENTS and value is an object. |
- __ Bind(&fast_elements); |
- __ Ldr(x10, FieldMemOperand(array, JSObject::kElementsOffset)); |
- __ Add(x11, x10, Operand::UntagSmiAndScale(index_smi, kPointerSizeLog2)); |
- __ Add(x11, x11, FixedArray::kHeaderSize - kHeapObjectTag); |
- __ Str(value, MemOperand(x11)); |
- // Update the write barrier for the array store. |
- __ RecordWrite(x10, x11, value, kLRHasNotBeenSaved, kDontSaveFPRegs, |
- EMIT_REMEMBERED_SET, OMIT_SMI_CHECK); |
- __ Ret(); |
- |
- // Array literal has ElementsKind of FAST_*_SMI_ELEMENTS or FAST_*_ELEMENTS, |
- // and value is Smi. |
- __ Bind(&smi_element); |
- __ Ldr(x10, FieldMemOperand(array, JSObject::kElementsOffset)); |
- __ Add(x11, x10, Operand::UntagSmiAndScale(index_smi, kPointerSizeLog2)); |
- __ Str(value, FieldMemOperand(x11, FixedArray::kHeaderSize)); |
- __ Ret(); |
- |
- __ Bind(&double_elements); |
- __ Ldr(x10, FieldMemOperand(array, JSObject::kElementsOffset)); |
- __ StoreNumberToDoubleElements(value, index_smi, x10, x11, d0, |
- &slow_elements); |
- __ Ret(); |
-} |
- |
- |
void StubFailureTrampolineStub::Generate(MacroAssembler* masm) { |
CEntryStub ces(isolate(), 1, kSaveFPRegs); |
__ Call(ces.GetCode(), RelocInfo::CODE_TARGET); |