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

Side by Side Diff: src/code-stub-assembler.h

Issue 2403483002: [stubs] Port KeyedStoreIC dispatcher to TurboFan (Closed)
Patch Set: addressed comments Created 4 years, 2 months 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 unified diff | Download patch
« no previous file with comments | « src/code-factory.cc ('k') | src/code-stub-assembler.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 the V8 project authors. All rights reserved. 1 // Copyright 2016 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_CODE_STUB_ASSEMBLER_H_ 5 #ifndef V8_CODE_STUB_ASSEMBLER_H_
6 #define V8_CODE_STUB_ASSEMBLER_H_ 6 #define V8_CODE_STUB_ASSEMBLER_H_
7 7
8 #include <functional> 8 #include <functional>
9 9
10 #include "src/compiler/code-assembler.h" 10 #include "src/compiler/code-assembler.h"
(...skipping 786 matching lines...) Expand 10 before | Expand all | Expand 10 after
797 // Checks monomorphic case. Returns {feedback} entry of the vector. 797 // Checks monomorphic case. Returns {feedback} entry of the vector.
798 compiler::Node* TryMonomorphicCase(compiler::Node* slot, 798 compiler::Node* TryMonomorphicCase(compiler::Node* slot,
799 compiler::Node* vector, 799 compiler::Node* vector,
800 compiler::Node* receiver_map, 800 compiler::Node* receiver_map,
801 Label* if_handler, Variable* var_handler, 801 Label* if_handler, Variable* var_handler,
802 Label* if_miss); 802 Label* if_miss);
803 void HandlePolymorphicCase(compiler::Node* receiver_map, 803 void HandlePolymorphicCase(compiler::Node* receiver_map,
804 compiler::Node* feedback, Label* if_handler, 804 compiler::Node* feedback, Label* if_handler,
805 Variable* var_handler, Label* if_miss, 805 Variable* var_handler, Label* if_miss,
806 int unroll_count); 806 int unroll_count);
807 void HandleKeyedStorePolymorphicCase(compiler::Node* receiver_map,
808 compiler::Node* feedback,
809 Label* if_handler, Variable* var_handler,
810 Label* if_transition_handler,
811 Variable* var_transition_map_cell,
812 Label* if_miss);
807 813
808 compiler::Node* StubCachePrimaryOffset(compiler::Node* name, 814 compiler::Node* StubCachePrimaryOffset(compiler::Node* name,
809 compiler::Node* map); 815 compiler::Node* map);
810 816
811 compiler::Node* StubCacheSecondaryOffset(compiler::Node* name, 817 compiler::Node* StubCacheSecondaryOffset(compiler::Node* name,
812 compiler::Node* seed); 818 compiler::Node* seed);
813 819
814 // This enum is used here as a replacement for StubCache::Table to avoid 820 // This enum is used here as a replacement for StubCache::Table to avoid
815 // including stub cache header. 821 // including stub cache header.
816 enum StubCacheTable : int; 822 enum StubCacheTable : int;
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
879 compiler::Node* CopyElementsOnWrite(compiler::Node* object, 885 compiler::Node* CopyElementsOnWrite(compiler::Node* object,
880 compiler::Node* elements, 886 compiler::Node* elements,
881 ElementsKind kind, compiler::Node* length, 887 ElementsKind kind, compiler::Node* length,
882 ParameterMode mode, Label* bailout); 888 ParameterMode mode, Label* bailout);
883 889
884 void LoadIC(const LoadICParameters* p); 890 void LoadIC(const LoadICParameters* p);
885 void LoadGlobalIC(const LoadICParameters* p); 891 void LoadGlobalIC(const LoadICParameters* p);
886 void KeyedLoadIC(const LoadICParameters* p); 892 void KeyedLoadIC(const LoadICParameters* p);
887 void KeyedLoadICGeneric(const LoadICParameters* p); 893 void KeyedLoadICGeneric(const LoadICParameters* p);
888 void StoreIC(const StoreICParameters* p); 894 void StoreIC(const StoreICParameters* p);
895 void KeyedStoreIC(const StoreICParameters* p, LanguageMode language_mode);
889 896
890 void TransitionElementsKind(compiler::Node* object, compiler::Node* map, 897 void TransitionElementsKind(compiler::Node* object, compiler::Node* map,
891 ElementsKind from_kind, ElementsKind to_kind, 898 ElementsKind from_kind, ElementsKind to_kind,
892 bool is_jsarray, Label* bailout); 899 bool is_jsarray, Label* bailout);
893 900
894 void TrapAllocationMemento(compiler::Node* object, Label* memento_found); 901 void TrapAllocationMemento(compiler::Node* object, Label* memento_found);
895 902
896 compiler::Node* PageFromAddress(compiler::Node* address); 903 compiler::Node* PageFromAddress(compiler::Node* address);
897 904
898 // Get the enumerable length from |map| and return the result as a Smi. 905 // Get the enumerable length from |map| and return the result as a Smi.
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
1053 static const int kElementLoopUnrollThreshold = 8; 1060 static const int kElementLoopUnrollThreshold = 8;
1054 }; 1061 };
1055 1062
1056 #define CSA_ASSERT(x) Assert((x), #x, __FILE__, __LINE__) 1063 #define CSA_ASSERT(x) Assert((x), #x, __FILE__, __LINE__)
1057 1064
1058 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); 1065 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags);
1059 1066
1060 } // namespace internal 1067 } // namespace internal
1061 } // namespace v8 1068 } // namespace v8
1062 #endif // V8_CODE_STUB_ASSEMBLER_H_ 1069 #endif // V8_CODE_STUB_ASSEMBLER_H_
OLDNEW
« no previous file with comments | « src/code-factory.cc ('k') | src/code-stub-assembler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698