| 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 |