OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 #if V8_TARGET_ARCH_ARM64 | 5 #if V8_TARGET_ARCH_ARM64 |
6 | 6 |
7 #include "src/base/bits.h" | 7 #include "src/base/bits.h" |
8 #include "src/base/division-by-constant.h" | 8 #include "src/base/division-by-constant.h" |
9 #include "src/bootstrapper.h" | 9 #include "src/bootstrapper.h" |
10 #include "src/codegen.h" | 10 #include "src/codegen.h" |
(...skipping 1618 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1629 UseScratchRegisterScope temps(this); | 1629 UseScratchRegisterScope temps(this); |
1630 Register temp = temps.AcquireX(); | 1630 Register temp = temps.AcquireX(); |
1631 | 1631 |
1632 CompareObjectType(object, temp, temp, JS_BOUND_FUNCTION_TYPE); | 1632 CompareObjectType(object, temp, temp, JS_BOUND_FUNCTION_TYPE); |
1633 Check(eq, kOperandIsNotABoundFunction); | 1633 Check(eq, kOperandIsNotABoundFunction); |
1634 } | 1634 } |
1635 } | 1635 } |
1636 | 1636 |
1637 void MacroAssembler::AssertGeneratorObject(Register object) { | 1637 void MacroAssembler::AssertGeneratorObject(Register object) { |
1638 if (emit_debug_code()) { | 1638 if (emit_debug_code()) { |
| 1639 Label ok; |
1639 AssertNotSmi(object, kOperandIsASmiAndNotAGeneratorObject); | 1640 AssertNotSmi(object, kOperandIsASmiAndNotAGeneratorObject); |
1640 | 1641 |
1641 UseScratchRegisterScope temps(this); | 1642 UseScratchRegisterScope temps(this); |
1642 Register temp = temps.AcquireX(); | 1643 Register temp = temps.AcquireX(); |
1643 | 1644 |
1644 CompareObjectType(object, temp, temp, JS_GENERATOR_OBJECT_TYPE); | 1645 CompareObjectType(object, temp, temp, JS_GENERATOR_OBJECT_TYPE); |
| 1646 B(eq, &ok); |
| 1647 CompareObjectType(object, temp, temp, JS_ASYNC_GENERATOR_OBJECT_TYPE); |
1645 Check(eq, kOperandIsNotAGeneratorObject); | 1648 Check(eq, kOperandIsNotAGeneratorObject); |
| 1649 Bind(&ok); |
1646 } | 1650 } |
1647 } | 1651 } |
1648 | 1652 |
1649 void MacroAssembler::AssertReceiver(Register object) { | 1653 void MacroAssembler::AssertReceiver(Register object) { |
1650 if (emit_debug_code()) { | 1654 if (emit_debug_code()) { |
1651 AssertNotSmi(object, kOperandIsASmiAndNotAReceiver); | 1655 AssertNotSmi(object, kOperandIsASmiAndNotAReceiver); |
1652 | 1656 |
1653 UseScratchRegisterScope temps(this); | 1657 UseScratchRegisterScope temps(this); |
1654 Register temp = temps.AcquireX(); | 1658 Register temp = temps.AcquireX(); |
1655 | 1659 |
(...skipping 3001 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4657 } | 4661 } |
4658 | 4662 |
4659 | 4663 |
4660 #undef __ | 4664 #undef __ |
4661 | 4665 |
4662 | 4666 |
4663 } // namespace internal | 4667 } // namespace internal |
4664 } // namespace v8 | 4668 } // namespace v8 |
4665 | 4669 |
4666 #endif // V8_TARGET_ARCH_ARM64 | 4670 #endif // V8_TARGET_ARCH_ARM64 |
OLD | NEW |