Index: src/x64/code-stubs-x64.cc |
diff --git a/src/x64/code-stubs-x64.cc b/src/x64/code-stubs-x64.cc |
index fc8813987992160e49e6c3328d27de5cfa0f6b8a..d62aafe57303109e24b73f23b6b220ffbeb03404 100644 |
--- a/src/x64/code-stubs-x64.cc |
+++ b/src/x64/code-stubs-x64.cc |
@@ -2949,14 +2949,6 @@ void StubFailureTrampolineStub::Generate(MacroAssembler* masm) { |
__ jmp(rcx); // Return to IC Miss stub, continuation still on stack. |
} |
- |
-void KeyedLoadICTrampolineStub::Generate(MacroAssembler* masm) { |
- __ EmitLoadTypeFeedbackVector(LoadWithVectorDescriptor::VectorRegister()); |
- KeyedLoadICStub stub(isolate()); |
- stub.GenerateForTrampoline(masm); |
-} |
- |
- |
static void HandleArrayCases(MacroAssembler* masm, Register feedback, |
Register receiver_map, Register scratch1, |
Register scratch2, Register scratch3, |
@@ -3028,76 +3020,6 @@ static void HandleMonomorphicCase(MacroAssembler* masm, Register receiver, |
__ jmp(handler); |
} |
- |
-void KeyedLoadICStub::Generate(MacroAssembler* masm) { |
- GenerateImpl(masm, false); |
-} |
- |
- |
-void KeyedLoadICStub::GenerateForTrampoline(MacroAssembler* masm) { |
- GenerateImpl(masm, true); |
-} |
- |
- |
-void KeyedLoadICStub::GenerateImpl(MacroAssembler* masm, bool in_frame) { |
- Register receiver = LoadWithVectorDescriptor::ReceiverRegister(); // rdx |
- Register key = LoadWithVectorDescriptor::NameRegister(); // rcx |
- Register vector = LoadWithVectorDescriptor::VectorRegister(); // rbx |
- Register slot = LoadWithVectorDescriptor::SlotRegister(); // rax |
- Register feedback = rdi; |
- Register integer_slot = r8; |
- Register receiver_map = r9; |
- |
- __ SmiToInteger32(integer_slot, slot); |
- __ movp(feedback, FieldOperand(vector, integer_slot, times_pointer_size, |
- FixedArray::kHeaderSize)); |
- |
- // Try to quickly handle the monomorphic case without knowing for sure |
- // if we have a weak cell in feedback. We do know it's safe to look |
- // at WeakCell::kValueOffset. |
- Label try_array, load_smi_map, compare_map; |
- Label not_array, miss; |
- HandleMonomorphicCase(masm, receiver, receiver_map, feedback, vector, |
- integer_slot, &compare_map, &load_smi_map, &try_array); |
- |
- __ bind(&try_array); |
- // Is it a fixed array? |
- __ CompareRoot(FieldOperand(feedback, 0), Heap::kFixedArrayMapRootIndex); |
- __ j(not_equal, ¬_array); |
- |
- // We have a polymorphic element handler. |
- Label polymorphic, try_poly_name; |
- __ bind(&polymorphic); |
- HandleArrayCases(masm, feedback, receiver_map, integer_slot, r11, r15, true, |
- &miss); |
- |
- __ bind(¬_array); |
- // Is it generic? |
- __ CompareRoot(feedback, Heap::kmegamorphic_symbolRootIndex); |
- __ j(not_equal, &try_poly_name); |
- Handle<Code> megamorphic_stub = |
- KeyedLoadIC::ChooseMegamorphicStub(masm->isolate(), GetExtraICState()); |
- __ jmp(megamorphic_stub, RelocInfo::CODE_TARGET); |
- |
- __ bind(&try_poly_name); |
- // We might have a name in feedback, and a fixed array in the next slot. |
- __ cmpp(key, feedback); |
- __ j(not_equal, &miss); |
- // If the name comparison succeeded, we know we have a fixed array with |
- // at least one map/handler pair. |
- __ movp(feedback, FieldOperand(vector, integer_slot, times_pointer_size, |
- FixedArray::kHeaderSize + kPointerSize)); |
- HandleArrayCases(masm, feedback, receiver_map, integer_slot, r11, r15, false, |
- &miss); |
- |
- __ bind(&miss); |
- KeyedLoadIC::GenerateMiss(masm); |
- |
- __ bind(&load_smi_map); |
- __ LoadRoot(receiver_map, Heap::kHeapNumberMapRootIndex); |
- __ jmp(&compare_map); |
-} |
- |
void KeyedStoreICTrampolineStub::Generate(MacroAssembler* masm) { |
__ EmitLoadTypeFeedbackVector(StoreWithVectorDescriptor::VectorRegister()); |
KeyedStoreICStub stub(isolate(), state()); |