Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(45)

Unified Diff: src/code-stub-assembler.h

Issue 2507733002: [refactoring] Pull AccessorAssembler out of CodeStubAssembler (Closed)
Patch Set: Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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,

Powered by Google App Engine
This is Rietveld 408576698