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 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
256 compiler::Node* object, compiler::Node* index, int additional_offset = 0, | 256 compiler::Node* object, compiler::Node* index, int additional_offset = 0, |
257 ParameterMode parameter_mode = INTEGER_PARAMETERS); | 257 ParameterMode parameter_mode = INTEGER_PARAMETERS); |
258 // Load an array element from a FixedArray, untag it and return it as Word32. | 258 // Load an array element from a FixedArray, untag it and return it as Word32. |
259 compiler::Node* LoadAndUntagToWord32FixedArrayElement( | 259 compiler::Node* LoadAndUntagToWord32FixedArrayElement( |
260 compiler::Node* object, compiler::Node* index, int additional_offset = 0, | 260 compiler::Node* object, compiler::Node* index, int additional_offset = 0, |
261 ParameterMode parameter_mode = INTEGER_PARAMETERS); | 261 ParameterMode parameter_mode = INTEGER_PARAMETERS); |
262 // Load an array element from a FixedDoubleArray. | 262 // Load an array element from a FixedDoubleArray. |
263 compiler::Node* LoadFixedDoubleArrayElement( | 263 compiler::Node* LoadFixedDoubleArrayElement( |
264 compiler::Node* object, compiler::Node* index, MachineType machine_type, | 264 compiler::Node* object, compiler::Node* index, MachineType machine_type, |
265 int additional_offset = 0, | 265 int additional_offset = 0, |
266 ParameterMode parameter_mode = INTEGER_PARAMETERS); | 266 ParameterMode parameter_mode = INTEGER_PARAMETERS, |
| 267 Label* if_hole = nullptr); |
| 268 |
| 269 // Load Float64 value by |base| + |offset| address. If the value is a double |
| 270 // hole then jump to |if_hole|. If |machine_type| is None then only the hole |
| 271 // check is generated. |
| 272 compiler::Node* LoadDoubleWithHoleCheck( |
| 273 compiler::Node* base, compiler::Node* offset, Label* if_hole, |
| 274 MachineType machine_type = MachineType::Float64()); |
267 | 275 |
268 // Context manipulation | 276 // Context manipulation |
269 compiler::Node* LoadNativeContext(compiler::Node* context); | 277 compiler::Node* LoadNativeContext(compiler::Node* context); |
270 | 278 |
271 compiler::Node* LoadJSArrayElementsMap(ElementsKind kind, | 279 compiler::Node* LoadJSArrayElementsMap(ElementsKind kind, |
272 compiler::Node* native_context); | 280 compiler::Node* native_context); |
273 | 281 |
274 // Store the floating point value of a HeapNumber. | 282 // Store the floating point value of a HeapNumber. |
275 compiler::Node* StoreHeapNumberValue(compiler::Node* object, | 283 compiler::Node* StoreHeapNumberValue(compiler::Node* object, |
276 compiler::Node* value); | 284 compiler::Node* value); |
(...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
644 compiler::Node* SmiShiftBitsConstant(); | 652 compiler::Node* SmiShiftBitsConstant(); |
645 | 653 |
646 static const int kElementLoopUnrollThreshold = 8; | 654 static const int kElementLoopUnrollThreshold = 8; |
647 }; | 655 }; |
648 | 656 |
649 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); | 657 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); |
650 | 658 |
651 } // namespace internal | 659 } // namespace internal |
652 } // namespace v8 | 660 } // namespace v8 |
653 #endif // V8_CODE_STUB_ASSEMBLER_H_ | 661 #endif // V8_CODE_STUB_ASSEMBLER_H_ |
OLD | NEW |