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 |
309 void BranchIfJSReceiver(Node* object, Label* if_true, Label* if_false); | 317 void BranchIfJSReceiver(Node* object, Label* if_true, Label* if_false); |
310 void BranchIfJSObject(Node* object, Label* if_true, Label* if_false); | 318 void BranchIfJSObject(Node* object, Label* if_true, Label* if_false); |
311 | 319 |
312 enum class FastJSArrayAccessMode { INBOUNDS_READ, ANY_ACCESS }; | 320 enum class FastJSArrayAccessMode { INBOUNDS_READ, ANY_ACCESS }; |
313 void BranchIfFastJSArray(Node* object, Node* context, | 321 void BranchIfFastJSArray(Node* object, Node* context, |
314 FastJSArrayAccessMode mode, Label* if_true, | 322 FastJSArrayAccessMode mode, Label* if_true, |
315 Label* if_false); | 323 Label* if_false); |
316 | 324 |
317 // Load value from current frame by given offset in bytes. | 325 // Load value from current frame by given offset in bytes. |
318 Node* LoadFromFrame(int offset, MachineType rep = MachineType::AnyTagged()); | 326 Node* LoadFromFrame(int offset, MachineType rep = MachineType::AnyTagged()); |
(...skipping 1063 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1382 } | 1390 } |
1383 #else | 1391 #else |
1384 #define CSA_SLOW_ASSERT(csa, x) ((void)0) | 1392 #define CSA_SLOW_ASSERT(csa, x) ((void)0) |
1385 #endif | 1393 #endif |
1386 | 1394 |
1387 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); | 1395 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); |
1388 | 1396 |
1389 } // namespace internal | 1397 } // namespace internal |
1390 } // namespace v8 | 1398 } // namespace v8 |
1391 #endif // V8_CODE_STUB_ASSEMBLER_H_ | 1399 #endif // V8_CODE_STUB_ASSEMBLER_H_ |
OLD | NEW |