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 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
299 } | 299 } |
300 | 300 |
301 void BranchIfFloat64IsNaN(Node* value, Label* if_true, Label* if_false) { | 301 void BranchIfFloat64IsNaN(Node* value, Label* if_true, Label* if_false) { |
302 Branch(Float64Equal(value, value), if_false, if_true); | 302 Branch(Float64Equal(value, value), if_false, if_true); |
303 } | 303 } |
304 | 304 |
305 // Branches to {if_true} if ToBoolean applied to {value} yields true, | 305 // Branches to {if_true} if ToBoolean applied to {value} yields true, |
306 // otherwise goes to {if_false}. | 306 // otherwise goes to {if_false}. |
307 void BranchIfToBooleanIsTrue(Node* value, Label* if_true, Label* if_false); | 307 void BranchIfToBooleanIsTrue(Node* value, Label* if_true, Label* if_false); |
308 | 308 |
309 void BranchIfSimd128Equal(Node* lhs, Node* lhs_map, Node* rhs, Node* rhs_map, | |
310 Label* if_equal, Label* if_notequal); | |
311 void BranchIfSimd128Equal(Node* lhs, Node* rhs, Label* if_equal, | |
312 Label* if_notequal) { | |
313 BranchIfSimd128Equal(lhs, LoadMap(lhs), rhs, LoadMap(rhs), if_equal, | |
314 if_notequal); | |
315 } | |
316 | |
317 void BranchIfJSReceiver(Node* object, Label* if_true, Label* if_false); | 309 void BranchIfJSReceiver(Node* object, Label* if_true, Label* if_false); |
318 void BranchIfJSObject(Node* object, Label* if_true, Label* if_false); | 310 void BranchIfJSObject(Node* object, Label* if_true, Label* if_false); |
319 | 311 |
320 enum class FastJSArrayAccessMode { INBOUNDS_READ, ANY_ACCESS }; | 312 enum class FastJSArrayAccessMode { INBOUNDS_READ, ANY_ACCESS }; |
321 void BranchIfFastJSArray(Node* object, Node* context, | 313 void BranchIfFastJSArray(Node* object, Node* context, |
322 FastJSArrayAccessMode mode, Label* if_true, | 314 FastJSArrayAccessMode mode, Label* if_true, |
323 Label* if_false); | 315 Label* if_false); |
324 | 316 |
325 // Load value from current frame by given offset in bytes. | 317 // Load value from current frame by given offset in bytes. |
326 Node* LoadFromFrame(int offset, MachineType rep = MachineType::AnyTagged()); | 318 Node* LoadFromFrame(int offset, MachineType rep = MachineType::AnyTagged()); |
(...skipping 1063 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1390 } | 1382 } |
1391 #else | 1383 #else |
1392 #define CSA_SLOW_ASSERT(csa, x) ((void)0) | 1384 #define CSA_SLOW_ASSERT(csa, x) ((void)0) |
1393 #endif | 1385 #endif |
1394 | 1386 |
1395 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); | 1387 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); |
1396 | 1388 |
1397 } // namespace internal | 1389 } // namespace internal |
1398 } // namespace v8 | 1390 } // namespace v8 |
1399 #endif // V8_CODE_STUB_ASSEMBLER_H_ | 1391 #endif // V8_CODE_STUB_ASSEMBLER_H_ |
OLD | NEW |