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