| Index: src/code-stub-assembler.h
|
| diff --git a/src/code-stub-assembler.h b/src/code-stub-assembler.h
|
| index de07aa60033e287200be13ac8da77824b155940e..2a68c37c6ef50812ede7f90f2700c4bdca742fb8 100644
|
| --- a/src/code-stub-assembler.h
|
| +++ b/src/code-stub-assembler.h
|
| @@ -861,33 +861,6 @@ class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler {
|
| compiler::Node* callable,
|
| compiler::Node* object);
|
|
|
| - // Load/StoreIC helpers.
|
| - struct LoadICParameters {
|
| - LoadICParameters(compiler::Node* context, compiler::Node* receiver,
|
| - compiler::Node* name, compiler::Node* slot,
|
| - compiler::Node* vector)
|
| - : context(context),
|
| - receiver(receiver),
|
| - name(name),
|
| - slot(slot),
|
| - vector(vector) {}
|
| -
|
| - compiler::Node* context;
|
| - compiler::Node* receiver;
|
| - compiler::Node* name;
|
| - compiler::Node* slot;
|
| - compiler::Node* vector;
|
| - };
|
| -
|
| - struct StoreICParameters : public LoadICParameters {
|
| - StoreICParameters(compiler::Node* context, compiler::Node* receiver,
|
| - compiler::Node* name, compiler::Node* value,
|
| - compiler::Node* slot, compiler::Node* vector)
|
| - : LoadICParameters(context, receiver, name, slot, vector),
|
| - value(value) {}
|
| - compiler::Node* value;
|
| - };
|
| -
|
| // Load type feedback vector from the stub caller's frame.
|
| compiler::Node* LoadTypeFeedbackVectorForStub();
|
|
|
| @@ -898,43 +871,6 @@ class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler {
|
|
|
| compiler::Node* LoadReceiverMap(compiler::Node* receiver);
|
|
|
| - // Checks monomorphic case. Returns {feedback} entry of the vector.
|
| - compiler::Node* TryMonomorphicCase(compiler::Node* slot,
|
| - compiler::Node* vector,
|
| - compiler::Node* receiver_map,
|
| - Label* if_handler, Variable* var_handler,
|
| - Label* if_miss);
|
| - void HandlePolymorphicCase(compiler::Node* receiver_map,
|
| - compiler::Node* feedback, Label* if_handler,
|
| - Variable* var_handler, Label* if_miss,
|
| - int unroll_count);
|
| - void HandleKeyedStorePolymorphicCase(compiler::Node* receiver_map,
|
| - compiler::Node* feedback,
|
| - Label* if_handler, Variable* var_handler,
|
| - Label* if_transition_handler,
|
| - Variable* var_transition_map_cell,
|
| - Label* if_miss);
|
| -
|
| - compiler::Node* StubCachePrimaryOffset(compiler::Node* name,
|
| - compiler::Node* map);
|
| -
|
| - compiler::Node* StubCacheSecondaryOffset(compiler::Node* name,
|
| - compiler::Node* seed);
|
| -
|
| - // This enum is used here as a replacement for StubCache::Table to avoid
|
| - // including stub cache header.
|
| - enum StubCacheTable : int;
|
| -
|
| - void TryProbeStubCacheTable(StubCache* stub_cache, StubCacheTable table_id,
|
| - compiler::Node* entry_offset,
|
| - compiler::Node* name, compiler::Node* map,
|
| - Label* if_handler, Variable* var_handler,
|
| - Label* if_miss);
|
| -
|
| - void TryProbeStubCache(StubCache* stub_cache, compiler::Node* receiver,
|
| - compiler::Node* name, Label* if_handler,
|
| - Variable* var_handler, Label* if_miss);
|
| -
|
| // Extends properties backing store by JSObject::kFieldsAdded elements.
|
| void ExtendPropertiesBackingStore(compiler::Node* object);
|
|
|
| @@ -991,14 +927,6 @@ class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler {
|
| ElementsKind kind, compiler::Node* length,
|
| ParameterMode mode, Label* bailout);
|
|
|
| - void LoadIC(const LoadICParameters* p);
|
| - void LoadICProtoArray(const LoadICParameters* p, compiler::Node* handler);
|
| - void LoadGlobalIC(const LoadICParameters* p);
|
| - void KeyedLoadIC(const LoadICParameters* p);
|
| - void KeyedLoadICGeneric(const LoadICParameters* p);
|
| - void StoreIC(const StoreICParameters* p);
|
| - void KeyedStoreIC(const StoreICParameters* p, LanguageMode language_mode);
|
| -
|
| void TransitionElementsKind(compiler::Node* object, compiler::Node* map,
|
| ElementsKind from_kind, ElementsKind to_kind,
|
| bool is_jsarray, Label* bailout);
|
| @@ -1124,84 +1052,26 @@ class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler {
|
| int base_size = 0);
|
|
|
| protected:
|
| - void HandleStoreICHandlerCase(const StoreICParameters* p,
|
| - compiler::Node* handler, Label* miss);
|
| -
|
| - private:
|
| - friend class CodeStubArguments;
|
| -
|
| - enum ElementSupport { kOnlyProperties, kSupportElements };
|
| -
|
| void DescriptorLookupLinear(compiler::Node* unique_name,
|
| compiler::Node* descriptors, compiler::Node* nof,
|
| Label* if_found, Variable* var_name_index,
|
| Label* if_not_found);
|
| +
|
| compiler::Node* CallGetterIfAccessor(compiler::Node* value,
|
| compiler::Node* details,
|
| compiler::Node* context,
|
| compiler::Node* receiver,
|
| Label* if_bailout);
|
|
|
| - void HandleLoadICHandlerCase(
|
| - const LoadICParameters* p, compiler::Node* handler, Label* miss,
|
| - ElementSupport support_elements = kOnlyProperties);
|
| -
|
| - void HandleLoadICSmiHandlerCase(const LoadICParameters* p,
|
| - compiler::Node* holder,
|
| - compiler::Node* smi_handler, Label* miss,
|
| - ElementSupport support_elements);
|
| -
|
| - void HandleLoadICProtoHandler(const LoadICParameters* p,
|
| - compiler::Node* handler, Variable* var_holder,
|
| - Variable* var_smi_handler,
|
| - Label* if_smi_handler, Label* miss);
|
| -
|
| - compiler::Node* EmitLoadICProtoArrayCheck(const LoadICParameters* p,
|
| - compiler::Node* handler,
|
| - compiler::Node* handler_length,
|
| - compiler::Node* handler_flags,
|
| - Label* miss);
|
| -
|
| - void CheckPrototype(compiler::Node* prototype_cell, compiler::Node* name,
|
| - Label* miss);
|
| -
|
| - void NameDictionaryNegativeLookup(compiler::Node* object,
|
| - compiler::Node* name, Label* miss);
|
| -
|
| - // If |transition| is nullptr then the normal field store is generated or
|
| - // transitioning store otherwise.
|
| - void HandleStoreFieldAndReturn(compiler::Node* handler_word,
|
| - compiler::Node* holder,
|
| - Representation representation,
|
| - compiler::Node* value,
|
| - compiler::Node* transition, Label* miss);
|
| -
|
| - // If |transition| is nullptr then the normal field store is generated or
|
| - // transitioning store otherwise.
|
| - void HandleStoreICSmiHandlerCase(compiler::Node* handler_word,
|
| - compiler::Node* holder,
|
| - compiler::Node* value,
|
| - compiler::Node* transition, Label* miss);
|
| -
|
| - void HandleStoreICProtoHandler(const StoreICParameters* p,
|
| - compiler::Node* handler, Label* miss);
|
| -
|
| compiler::Node* TryToIntptr(compiler::Node* key, Label* miss);
|
| - void EmitFastElementsBoundsCheck(compiler::Node* object,
|
| - compiler::Node* elements,
|
| - compiler::Node* intptr_index,
|
| - compiler::Node* is_jsarray_condition,
|
| - Label* miss);
|
| - void EmitElementLoad(compiler::Node* object, compiler::Node* elements,
|
| - compiler::Node* elements_kind, compiler::Node* key,
|
| - compiler::Node* is_jsarray_condition, Label* if_hole,
|
| - Label* rebox_double, Variable* var_double_value,
|
| - Label* unimplemented_elements_kind, Label* out_of_bounds,
|
| - Label* miss);
|
| +
|
| void BranchIfPrototypesHaveNoElements(compiler::Node* receiver_map,
|
| Label* definitely_no_elements,
|
| Label* possibly_elements);
|
|
|
| + private:
|
| + friend class CodeStubArguments;
|
| +
|
| compiler::Node* AllocateRawAligned(compiler::Node* size_in_bytes,
|
| AllocationFlags flags,
|
| compiler::Node* top_address,
|
|
|