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 1089 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1100 compiler::Node* context); | 1100 compiler::Node* context); |
1101 | 1101 |
1102 compiler::Node* Typeof(compiler::Node* value, compiler::Node* context); | 1102 compiler::Node* Typeof(compiler::Node* value, compiler::Node* context); |
1103 | 1103 |
1104 compiler::Node* InstanceOf(compiler::Node* object, compiler::Node* callable, | 1104 compiler::Node* InstanceOf(compiler::Node* object, compiler::Node* callable, |
1105 compiler::Node* context); | 1105 compiler::Node* context); |
1106 | 1106 |
1107 // TypedArray/ArrayBuffer helpers | 1107 // TypedArray/ArrayBuffer helpers |
1108 compiler::Node* IsDetachedBuffer(compiler::Node* buffer); | 1108 compiler::Node* IsDetachedBuffer(compiler::Node* buffer); |
1109 | 1109 |
| 1110 compiler::Node* ElementOffsetFromIndex(compiler::Node* index, |
| 1111 ElementsKind kind, ParameterMode mode, |
| 1112 int base_size = 0); |
| 1113 |
1110 private: | 1114 private: |
1111 friend class CodeStubArguments; | 1115 friend class CodeStubArguments; |
1112 | 1116 |
1113 enum ElementSupport { kOnlyProperties, kSupportElements }; | 1117 enum ElementSupport { kOnlyProperties, kSupportElements }; |
1114 | 1118 |
1115 void DescriptorLookupLinear(compiler::Node* unique_name, | 1119 void DescriptorLookupLinear(compiler::Node* unique_name, |
1116 compiler::Node* descriptors, compiler::Node* nof, | 1120 compiler::Node* descriptors, compiler::Node* nof, |
1117 Label* if_found, Variable* var_name_index, | 1121 Label* if_found, Variable* var_name_index, |
1118 Label* if_not_found); | 1122 Label* if_not_found); |
1119 compiler::Node* CallGetterIfAccessor(compiler::Node* value, | 1123 compiler::Node* CallGetterIfAccessor(compiler::Node* value, |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1160 void EmitElementLoad(compiler::Node* object, compiler::Node* elements, | 1164 void EmitElementLoad(compiler::Node* object, compiler::Node* elements, |
1161 compiler::Node* elements_kind, compiler::Node* key, | 1165 compiler::Node* elements_kind, compiler::Node* key, |
1162 compiler::Node* is_jsarray_condition, Label* if_hole, | 1166 compiler::Node* is_jsarray_condition, Label* if_hole, |
1163 Label* rebox_double, Variable* var_double_value, | 1167 Label* rebox_double, Variable* var_double_value, |
1164 Label* unimplemented_elements_kind, Label* out_of_bounds, | 1168 Label* unimplemented_elements_kind, Label* out_of_bounds, |
1165 Label* miss); | 1169 Label* miss); |
1166 void BranchIfPrototypesHaveNoElements(compiler::Node* receiver_map, | 1170 void BranchIfPrototypesHaveNoElements(compiler::Node* receiver_map, |
1167 Label* definitely_no_elements, | 1171 Label* definitely_no_elements, |
1168 Label* possibly_elements); | 1172 Label* possibly_elements); |
1169 | 1173 |
1170 compiler::Node* ElementOffsetFromIndex(compiler::Node* index, | |
1171 ElementsKind kind, ParameterMode mode, | |
1172 int base_size = 0); | |
1173 | |
1174 compiler::Node* AllocateRawAligned(compiler::Node* size_in_bytes, | 1174 compiler::Node* AllocateRawAligned(compiler::Node* size_in_bytes, |
1175 AllocationFlags flags, | 1175 AllocationFlags flags, |
1176 compiler::Node* top_address, | 1176 compiler::Node* top_address, |
1177 compiler::Node* limit_address); | 1177 compiler::Node* limit_address); |
1178 compiler::Node* AllocateRawUnaligned(compiler::Node* size_in_bytes, | 1178 compiler::Node* AllocateRawUnaligned(compiler::Node* size_in_bytes, |
1179 AllocationFlags flags, | 1179 AllocationFlags flags, |
1180 compiler::Node* top_adddress, | 1180 compiler::Node* top_adddress, |
1181 compiler::Node* limit_address); | 1181 compiler::Node* limit_address); |
1182 // Allocate and return a JSArray of given total size in bytes with header | 1182 // Allocate and return a JSArray of given total size in bytes with header |
1183 // fields initialized. | 1183 // fields initialized. |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1265 } | 1265 } |
1266 #else | 1266 #else |
1267 #define CSA_SLOW_ASSERT(x) | 1267 #define CSA_SLOW_ASSERT(x) |
1268 #endif | 1268 #endif |
1269 | 1269 |
1270 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); | 1270 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); |
1271 | 1271 |
1272 } // namespace internal | 1272 } // namespace internal |
1273 } // namespace v8 | 1273 } // namespace v8 |
1274 #endif // V8_CODE_STUB_ASSEMBLER_H_ | 1274 #endif // V8_CODE_STUB_ASSEMBLER_H_ |
OLD | NEW |