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/arm64/frames-arm64.h" | 7 #include "src/arm64/frames-arm64.h" |
8 #include "src/assembler.h" | 8 #include "src/assembler.h" |
9 #include "src/base/bits.h" | 9 #include "src/base/bits.h" |
10 #include "src/base/division-by-constant.h" | 10 #include "src/base/division-by-constant.h" |
(...skipping 1763 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1774 | 1774 |
1775 | 1775 |
1776 void MacroAssembler::AssertNotSmi(Register object, BailoutReason reason) { | 1776 void MacroAssembler::AssertNotSmi(Register object, BailoutReason reason) { |
1777 if (emit_debug_code()) { | 1777 if (emit_debug_code()) { |
1778 STATIC_ASSERT(kSmiTag == 0); | 1778 STATIC_ASSERT(kSmiTag == 0); |
1779 Tst(object, kSmiTagMask); | 1779 Tst(object, kSmiTagMask); |
1780 Check(ne, reason); | 1780 Check(ne, reason); |
1781 } | 1781 } |
1782 } | 1782 } |
1783 | 1783 |
| 1784 void MacroAssembler::AssertFixedArray(Register object) { |
| 1785 if (emit_debug_code()) { |
| 1786 AssertNotSmi(object, kOperandIsASmiAndNotAFixedArray); |
| 1787 |
| 1788 UseScratchRegisterScope temps(this); |
| 1789 Register temp = temps.AcquireX(); |
| 1790 |
| 1791 CompareObjectType(object, temp, temp, FIXED_ARRAY_TYPE); |
| 1792 Check(eq, kOperandIsNotAFixedArray); |
| 1793 } |
| 1794 } |
1784 | 1795 |
1785 void MacroAssembler::AssertFunction(Register object) { | 1796 void MacroAssembler::AssertFunction(Register object) { |
1786 if (emit_debug_code()) { | 1797 if (emit_debug_code()) { |
1787 AssertNotSmi(object, kOperandIsASmiAndNotAFunction); | 1798 AssertNotSmi(object, kOperandIsASmiAndNotAFunction); |
1788 | 1799 |
1789 UseScratchRegisterScope temps(this); | 1800 UseScratchRegisterScope temps(this); |
1790 Register temp = temps.AcquireX(); | 1801 Register temp = temps.AcquireX(); |
1791 | 1802 |
1792 CompareObjectType(object, temp, temp, JS_FUNCTION_TYPE); | 1803 CompareObjectType(object, temp, temp, JS_FUNCTION_TYPE); |
1793 Check(eq, kOperandIsNotAFunction); | 1804 Check(eq, kOperandIsNotAFunction); |
(...skipping 2975 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4769 } | 4780 } |
4770 | 4781 |
4771 | 4782 |
4772 #undef __ | 4783 #undef __ |
4773 | 4784 |
4774 | 4785 |
4775 } // namespace internal | 4786 } // namespace internal |
4776 } // namespace v8 | 4787 } // namespace v8 |
4777 | 4788 |
4778 #endif // V8_TARGET_ARCH_ARM64 | 4789 #endif // V8_TARGET_ARCH_ARM64 |
OLD | NEW |