OLD | NEW |
1 | 1 |
2 // Copyright 2012 the V8 project authors. All rights reserved. | 2 // Copyright 2012 the V8 project authors. All rights reserved. |
3 // Use of this source code is governed by a BSD-style license that can be | 3 // Use of this source code is governed by a BSD-style license that can be |
4 // found in the LICENSE file. | 4 // found in the LICENSE file. |
5 | 5 |
6 #include <limits.h> // For LONG_MIN, LONG_MAX. | 6 #include <limits.h> // For LONG_MIN, LONG_MAX. |
7 | 7 |
8 #if V8_TARGET_ARCH_MIPS | 8 #if V8_TARGET_ARCH_MIPS |
9 | 9 |
10 #include "src/base/bits.h" | 10 #include "src/base/bits.h" |
(...skipping 5105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5116 if (emit_debug_code()) { | 5116 if (emit_debug_code()) { |
5117 STATIC_ASSERT(kSmiTag == 0); | 5117 STATIC_ASSERT(kSmiTag == 0); |
5118 SmiTst(object, t8); | 5118 SmiTst(object, t8); |
5119 Check(ne, kOperandIsASmiAndNotAFunction, t8, Operand(zero_reg)); | 5119 Check(ne, kOperandIsASmiAndNotAFunction, t8, Operand(zero_reg)); |
5120 GetObjectType(object, t8, t8); | 5120 GetObjectType(object, t8, t8); |
5121 Check(eq, kOperandIsNotAFunction, t8, Operand(JS_FUNCTION_TYPE)); | 5121 Check(eq, kOperandIsNotAFunction, t8, Operand(JS_FUNCTION_TYPE)); |
5122 } | 5122 } |
5123 } | 5123 } |
5124 | 5124 |
5125 | 5125 |
5126 void MacroAssembler::AssertBoundFunction(Register object) { | |
5127 if (emit_debug_code()) { | |
5128 STATIC_ASSERT(kSmiTag == 0); | |
5129 SmiTst(object, t8); | |
5130 Check(ne, kOperandIsASmiAndNotABoundFunction, t8, Operand(zero_reg)); | |
5131 GetObjectType(object, t8, t8); | |
5132 Check(eq, kOperandIsNotABoundFunction, t8, Operand(JS_BOUND_FUNCTION_TYPE)); | |
5133 } | |
5134 } | |
5135 | |
5136 | |
5137 void MacroAssembler::AssertUndefinedOrAllocationSite(Register object, | 5126 void MacroAssembler::AssertUndefinedOrAllocationSite(Register object, |
5138 Register scratch) { | 5127 Register scratch) { |
5139 if (emit_debug_code()) { | 5128 if (emit_debug_code()) { |
5140 Label done_checking; | 5129 Label done_checking; |
5141 AssertNotSmi(object); | 5130 AssertNotSmi(object); |
5142 LoadRoot(scratch, Heap::kUndefinedValueRootIndex); | 5131 LoadRoot(scratch, Heap::kUndefinedValueRootIndex); |
5143 Branch(&done_checking, eq, object, Operand(scratch)); | 5132 Branch(&done_checking, eq, object, Operand(scratch)); |
5144 lw(t8, FieldMemOperand(object, HeapObject::kMapOffset)); | 5133 lw(t8, FieldMemOperand(object, HeapObject::kMapOffset)); |
5145 LoadRoot(scratch, Heap::kAllocationSiteMapRootIndex); | 5134 LoadRoot(scratch, Heap::kAllocationSiteMapRootIndex); |
5146 Assert(eq, kExpectedUndefinedOrCell, t8, Operand(scratch)); | 5135 Assert(eq, kExpectedUndefinedOrCell, t8, Operand(scratch)); |
(...skipping 617 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5764 if (mag.shift > 0) sra(result, result, mag.shift); | 5753 if (mag.shift > 0) sra(result, result, mag.shift); |
5765 srl(at, dividend, 31); | 5754 srl(at, dividend, 31); |
5766 Addu(result, result, Operand(at)); | 5755 Addu(result, result, Operand(at)); |
5767 } | 5756 } |
5768 | 5757 |
5769 | 5758 |
5770 } // namespace internal | 5759 } // namespace internal |
5771 } // namespace v8 | 5760 } // namespace v8 |
5772 | 5761 |
5773 #endif // V8_TARGET_ARCH_MIPS | 5762 #endif // V8_TARGET_ARCH_MIPS |
OLD | NEW |