| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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 #include <assert.h> // For assert | 5 #include <assert.h> // For assert |
| 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_PPC | 8 #if V8_TARGET_ARCH_PPC |
| 9 | 9 |
| 10 #include "src/base/bits.h" | 10 #include "src/base/bits.h" |
| (...skipping 3433 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3444 b(&index_tag_ok); | 3444 b(&index_tag_ok); |
| 3445 bind(&index_tag_bad); | 3445 bind(&index_tag_bad); |
| 3446 Abort(kIndexIsTooLarge); | 3446 Abort(kIndexIsTooLarge); |
| 3447 bind(&index_tag_ok); | 3447 bind(&index_tag_ok); |
| 3448 #endif | 3448 #endif |
| 3449 | 3449 |
| 3450 LoadP(ip, FieldMemOperand(string, String::kLengthOffset)); | 3450 LoadP(ip, FieldMemOperand(string, String::kLengthOffset)); |
| 3451 cmp(index, ip); | 3451 cmp(index, ip); |
| 3452 Check(lt, kIndexIsTooLarge); | 3452 Check(lt, kIndexIsTooLarge); |
| 3453 | 3453 |
| 3454 DCHECK(Smi::FromInt(0) == 0); | 3454 DCHECK(Smi::kZero == 0); |
| 3455 cmpi(index, Operand::Zero()); | 3455 cmpi(index, Operand::Zero()); |
| 3456 Check(ge, kIndexIsNegative); | 3456 Check(ge, kIndexIsNegative); |
| 3457 | 3457 |
| 3458 SmiUntag(index, index); | 3458 SmiUntag(index, index); |
| 3459 } | 3459 } |
| 3460 | 3460 |
| 3461 | 3461 |
| 3462 void MacroAssembler::PrepareCallCFunction(int num_reg_arguments, | 3462 void MacroAssembler::PrepareCallCFunction(int num_reg_arguments, |
| 3463 int num_double_arguments, | 3463 int num_double_arguments, |
| 3464 Register scratch) { | 3464 Register scratch) { |
| (...skipping 356 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3821 beq(call_runtime); | 3821 beq(call_runtime); |
| 3822 | 3822 |
| 3823 LoadRoot(null_value, Heap::kNullValueRootIndex); | 3823 LoadRoot(null_value, Heap::kNullValueRootIndex); |
| 3824 b(&start); | 3824 b(&start); |
| 3825 | 3825 |
| 3826 bind(&next); | 3826 bind(&next); |
| 3827 LoadP(r4, FieldMemOperand(r5, HeapObject::kMapOffset)); | 3827 LoadP(r4, FieldMemOperand(r5, HeapObject::kMapOffset)); |
| 3828 | 3828 |
| 3829 // For all objects but the receiver, check that the cache is empty. | 3829 // For all objects but the receiver, check that the cache is empty. |
| 3830 EnumLength(r6, r4); | 3830 EnumLength(r6, r4); |
| 3831 CmpSmiLiteral(r6, Smi::FromInt(0), r0); | 3831 CmpSmiLiteral(r6, Smi::kZero, r0); |
| 3832 bne(call_runtime); | 3832 bne(call_runtime); |
| 3833 | 3833 |
| 3834 bind(&start); | 3834 bind(&start); |
| 3835 | 3835 |
| 3836 // Check that there are no elements. Register r5 contains the current JS | 3836 // Check that there are no elements. Register r5 contains the current JS |
| 3837 // object we've reached through the prototype chain. | 3837 // object we've reached through the prototype chain. |
| 3838 Label no_elements; | 3838 Label no_elements; |
| 3839 LoadP(r5, FieldMemOperand(r5, JSObject::kElementsOffset)); | 3839 LoadP(r5, FieldMemOperand(r5, JSObject::kElementsOffset)); |
| 3840 cmp(r5, empty_fixed_array_value); | 3840 cmp(r5, empty_fixed_array_value); |
| 3841 beq(&no_elements); | 3841 beq(&no_elements); |
| (...skipping 1033 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4875 } | 4875 } |
| 4876 if (mag.shift > 0) srawi(result, result, mag.shift); | 4876 if (mag.shift > 0) srawi(result, result, mag.shift); |
| 4877 ExtractBit(r0, dividend, 31); | 4877 ExtractBit(r0, dividend, 31); |
| 4878 add(result, result, r0); | 4878 add(result, result, r0); |
| 4879 } | 4879 } |
| 4880 | 4880 |
| 4881 } // namespace internal | 4881 } // namespace internal |
| 4882 } // namespace v8 | 4882 } // namespace v8 |
| 4883 | 4883 |
| 4884 #endif // V8_TARGET_ARCH_PPC | 4884 #endif // V8_TARGET_ARCH_PPC |
| OLD | NEW |