OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 <limits.h> // For LONG_MIN, LONG_MAX. | 5 #include <limits.h> // For LONG_MIN, LONG_MAX. |
6 | 6 |
7 #include "src/v8.h" | 7 #include "src/v8.h" |
8 | 8 |
9 #if V8_TARGET_ARCH_ARM | 9 #if V8_TARGET_ARCH_ARM |
10 | 10 |
(...skipping 3866 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3877 ldr(scratch1, FieldMemOperand(current, Map::kBitField2Offset)); | 3877 ldr(scratch1, FieldMemOperand(current, Map::kBitField2Offset)); |
3878 DecodeField<Map::ElementsKindBits>(scratch1); | 3878 DecodeField<Map::ElementsKindBits>(scratch1); |
3879 cmp(scratch1, Operand(DICTIONARY_ELEMENTS)); | 3879 cmp(scratch1, Operand(DICTIONARY_ELEMENTS)); |
3880 b(eq, found); | 3880 b(eq, found); |
3881 ldr(current, FieldMemOperand(current, Map::kPrototypeOffset)); | 3881 ldr(current, FieldMemOperand(current, Map::kPrototypeOffset)); |
3882 cmp(current, Operand(factory->null_value())); | 3882 cmp(current, Operand(factory->null_value())); |
3883 b(ne, &loop_again); | 3883 b(ne, &loop_again); |
3884 } | 3884 } |
3885 | 3885 |
3886 | 3886 |
| 3887 void MacroAssembler::OSRDropVectorFromStack(int unoptimized_slot_count, |
| 3888 Register scratch0, |
| 3889 Register scratch1) { |
| 3890 if (unoptimized_slot_count > 0) { |
| 3891 Label loop_start; |
| 3892 add(scratch0, fp, Operand(JavaScriptFrameConstants::kFeedbackVectorOffset)); |
| 3893 bind(&loop_start); |
| 3894 ldr(scratch1, MemOperand(scratch0, -1 * kPointerSize)); |
| 3895 str(scratch1, MemOperand(scratch0, 0)); |
| 3896 sub(scratch0, scratch0, Operand(kPointerSize)); |
| 3897 cmp(scratch0, sp); |
| 3898 b(gt, &loop_start); |
| 3899 } |
| 3900 add(sp, sp, Operand(kPointerSize)); |
| 3901 } |
| 3902 |
| 3903 |
3887 #ifdef DEBUG | 3904 #ifdef DEBUG |
3888 bool AreAliased(Register reg1, | 3905 bool AreAliased(Register reg1, |
3889 Register reg2, | 3906 Register reg2, |
3890 Register reg3, | 3907 Register reg3, |
3891 Register reg4, | 3908 Register reg4, |
3892 Register reg5, | 3909 Register reg5, |
3893 Register reg6, | 3910 Register reg6, |
3894 Register reg7, | 3911 Register reg7, |
3895 Register reg8) { | 3912 Register reg8) { |
3896 int n_of_valid_regs = reg1.is_valid() + reg2.is_valid() + | 3913 int n_of_valid_regs = reg1.is_valid() + reg2.is_valid() + |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3975 } | 3992 } |
3976 } | 3993 } |
3977 if (mag.shift > 0) mov(result, Operand(result, ASR, mag.shift)); | 3994 if (mag.shift > 0) mov(result, Operand(result, ASR, mag.shift)); |
3978 add(result, result, Operand(dividend, LSR, 31)); | 3995 add(result, result, Operand(dividend, LSR, 31)); |
3979 } | 3996 } |
3980 | 3997 |
3981 } // namespace internal | 3998 } // namespace internal |
3982 } // namespace v8 | 3999 } // namespace v8 |
3983 | 4000 |
3984 #endif // V8_TARGET_ARCH_ARM | 4001 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |