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/codegen.h" | 8 #include "src/codegen.h" |
9 #include "src/debug/debug.h" | 9 #include "src/debug/debug.h" |
10 #include "src/deoptimizer.h" | 10 #include "src/deoptimizer.h" |
(...skipping 2779 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2790 __ Ldr(scratch, FieldMemOperand(spread_map, Map::kPrototypeOffset)); | 2790 __ Ldr(scratch, FieldMemOperand(spread_map, Map::kPrototypeOffset)); |
2791 __ Ldr(scratch2, NativeContextMemOperand()); | 2791 __ Ldr(scratch2, NativeContextMemOperand()); |
2792 __ Ldr(scratch2, | 2792 __ Ldr(scratch2, |
2793 ContextMemOperand(scratch2, Context::INITIAL_ARRAY_PROTOTYPE_INDEX)); | 2793 ContextMemOperand(scratch2, Context::INITIAL_ARRAY_PROTOTYPE_INDEX)); |
2794 __ Cmp(scratch, scratch2); | 2794 __ Cmp(scratch, scratch2); |
2795 __ B(ne, &runtime_call); | 2795 __ B(ne, &runtime_call); |
2796 | 2796 |
2797 // Check that the ArrayPrototype hasn't been modified in a way that would | 2797 // Check that the ArrayPrototype hasn't been modified in a way that would |
2798 // affect iteration. | 2798 // affect iteration. |
2799 __ LoadRoot(scratch, Heap::kArrayIteratorProtectorRootIndex); | 2799 __ LoadRoot(scratch, Heap::kArrayIteratorProtectorRootIndex); |
2800 __ Ldr(scratch, FieldMemOperand(scratch, Cell::kValueOffset)); | 2800 __ Ldr(scratch, FieldMemOperand(scratch, PropertyCell::kValueOffset)); |
2801 __ Cmp(scratch, Smi::FromInt(Isolate::kProtectorValid)); | 2801 __ Cmp(scratch, Smi::FromInt(Isolate::kProtectorValid)); |
2802 __ B(ne, &runtime_call); | 2802 __ B(ne, &runtime_call); |
2803 | 2803 |
2804 // Check that the map of the initial array iterator hasn't changed. | 2804 // Check that the map of the initial array iterator hasn't changed. |
2805 __ Ldr(scratch2, NativeContextMemOperand()); | 2805 __ Ldr(scratch2, NativeContextMemOperand()); |
2806 __ Ldr(scratch, | 2806 __ Ldr(scratch, |
2807 ContextMemOperand(scratch2, | 2807 ContextMemOperand(scratch2, |
2808 Context::INITIAL_ARRAY_ITERATOR_PROTOTYPE_INDEX)); | 2808 Context::INITIAL_ARRAY_ITERATOR_PROTOTYPE_INDEX)); |
2809 __ Ldr(scratch, FieldMemOperand(scratch, HeapObject::kMapOffset)); | 2809 __ Ldr(scratch, FieldMemOperand(scratch, HeapObject::kMapOffset)); |
2810 __ Ldr(scratch2, | 2810 __ Ldr(scratch2, |
(...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3227 __ Unreachable(); | 3227 __ Unreachable(); |
3228 } | 3228 } |
3229 } | 3229 } |
3230 | 3230 |
3231 #undef __ | 3231 #undef __ |
3232 | 3232 |
3233 } // namespace internal | 3233 } // namespace internal |
3234 } // namespace v8 | 3234 } // namespace v8 |
3235 | 3235 |
3236 #endif // V8_TARGET_ARCH_ARM | 3236 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |