OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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_ |
OLD | NEW |