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 1100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1111 compiler::Node* InstanceOf(compiler::Node* object, compiler::Node* callable, | 1111 compiler::Node* InstanceOf(compiler::Node* object, compiler::Node* callable, |
1112 compiler::Node* context); | 1112 compiler::Node* context); |
1113 | 1113 |
1114 // TypedArray/ArrayBuffer helpers | 1114 // TypedArray/ArrayBuffer helpers |
1115 compiler::Node* IsDetachedBuffer(compiler::Node* buffer); | 1115 compiler::Node* IsDetachedBuffer(compiler::Node* buffer); |
1116 | 1116 |
1117 compiler::Node* ElementOffsetFromIndex(compiler::Node* index, | 1117 compiler::Node* ElementOffsetFromIndex(compiler::Node* index, |
1118 ElementsKind kind, ParameterMode mode, | 1118 ElementsKind kind, ParameterMode mode, |
1119 int base_size = 0); | 1119 int base_size = 0); |
1120 | 1120 |
| 1121 protected: |
| 1122 void HandleStoreICHandlerCase(const StoreICParameters* p, |
| 1123 compiler::Node* handler, Label* miss); |
| 1124 |
1121 private: | 1125 private: |
1122 friend class CodeStubArguments; | 1126 friend class CodeStubArguments; |
1123 | 1127 |
1124 enum ElementSupport { kOnlyProperties, kSupportElements }; | 1128 enum ElementSupport { kOnlyProperties, kSupportElements }; |
1125 | 1129 |
1126 void DescriptorLookupLinear(compiler::Node* unique_name, | 1130 void DescriptorLookupLinear(compiler::Node* unique_name, |
1127 compiler::Node* descriptors, compiler::Node* nof, | 1131 compiler::Node* descriptors, compiler::Node* nof, |
1128 Label* if_found, Variable* var_name_index, | 1132 Label* if_found, Variable* var_name_index, |
1129 Label* if_not_found); | 1133 Label* if_not_found); |
1130 compiler::Node* CallGetterIfAccessor(compiler::Node* value, | 1134 compiler::Node* CallGetterIfAccessor(compiler::Node* value, |
(...skipping 21 matching lines...) Expand all Loading... |
1152 compiler::Node* holder, | 1156 compiler::Node* holder, |
1153 Representation representation, | 1157 Representation representation, |
1154 compiler::Node* value, | 1158 compiler::Node* value, |
1155 bool transition_to_field, Label* miss); | 1159 bool transition_to_field, Label* miss); |
1156 | 1160 |
1157 void HandleStoreICSmiHandlerCase(compiler::Node* handler_word, | 1161 void HandleStoreICSmiHandlerCase(compiler::Node* handler_word, |
1158 compiler::Node* holder, | 1162 compiler::Node* holder, |
1159 compiler::Node* value, | 1163 compiler::Node* value, |
1160 bool transition_to_field, Label* miss); | 1164 bool transition_to_field, Label* miss); |
1161 | 1165 |
1162 void HandleStoreICHandlerCase(const StoreICParameters* p, | |
1163 compiler::Node* handler, Label* miss); | |
1164 | |
1165 compiler::Node* TryToIntptr(compiler::Node* key, Label* miss); | 1166 compiler::Node* TryToIntptr(compiler::Node* key, Label* miss); |
1166 void EmitFastElementsBoundsCheck(compiler::Node* object, | 1167 void EmitFastElementsBoundsCheck(compiler::Node* object, |
1167 compiler::Node* elements, | 1168 compiler::Node* elements, |
1168 compiler::Node* intptr_index, | 1169 compiler::Node* intptr_index, |
1169 compiler::Node* is_jsarray_condition, | 1170 compiler::Node* is_jsarray_condition, |
1170 Label* miss); | 1171 Label* miss); |
1171 void EmitElementLoad(compiler::Node* object, compiler::Node* elements, | 1172 void EmitElementLoad(compiler::Node* object, compiler::Node* elements, |
1172 compiler::Node* elements_kind, compiler::Node* key, | 1173 compiler::Node* elements_kind, compiler::Node* key, |
1173 compiler::Node* is_jsarray_condition, Label* if_hole, | 1174 compiler::Node* is_jsarray_condition, Label* if_hole, |
1174 Label* rebox_double, Variable* var_double_value, | 1175 Label* rebox_double, Variable* var_double_value, |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1278 } | 1279 } |
1279 #else | 1280 #else |
1280 #define CSA_SLOW_ASSERT(csa, x) ((void)0) | 1281 #define CSA_SLOW_ASSERT(csa, x) ((void)0) |
1281 #endif | 1282 #endif |
1282 | 1283 |
1283 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); | 1284 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); |
1284 | 1285 |
1285 } // namespace internal | 1286 } // namespace internal |
1286 } // namespace v8 | 1287 } // namespace v8 |
1287 #endif // V8_CODE_STUB_ASSEMBLER_H_ | 1288 #endif // V8_CODE_STUB_ASSEMBLER_H_ |
OLD | NEW |