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 #if V8_TARGET_ARCH_ARM | 5 #if V8_TARGET_ARCH_ARM |
6 | 6 |
7 #include "src/ast/scopes.h" | 7 #include "src/ast/scopes.h" |
8 #include "src/code-factory.h" | 8 #include "src/code-factory.h" |
9 #include "src/code-stubs.h" | 9 #include "src/code-stubs.h" |
10 #include "src/codegen.h" | 10 #include "src/codegen.h" |
(...skipping 2411 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2422 PushOperand(scratch); | 2422 PushOperand(scratch); |
2423 PushOperand(key->value()); | 2423 PushOperand(key->value()); |
2424 | 2424 |
2425 // Stack here: | 2425 // Stack here: |
2426 // - home_object | 2426 // - home_object |
2427 // - this (receiver) | 2427 // - this (receiver) |
2428 // - this (receiver) <-- LoadFromSuper will pop here and below. | 2428 // - this (receiver) <-- LoadFromSuper will pop here and below. |
2429 // - home_object | 2429 // - home_object |
2430 // - key | 2430 // - key |
2431 CallRuntimeWithOperands(Runtime::kLoadFromSuper); | 2431 CallRuntimeWithOperands(Runtime::kLoadFromSuper); |
| 2432 PrepareForBailoutForId(prop->LoadId(), TOS_REG); |
2432 | 2433 |
2433 // Replace home_object with target function. | 2434 // Replace home_object with target function. |
2434 __ str(r0, MemOperand(sp, kPointerSize)); | 2435 __ str(r0, MemOperand(sp, kPointerSize)); |
2435 | 2436 |
2436 // Stack here: | 2437 // Stack here: |
2437 // - target function | 2438 // - target function |
2438 // - this (receiver) | 2439 // - this (receiver) |
2439 EmitCall(expr); | 2440 EmitCall(expr); |
2440 } | 2441 } |
2441 | 2442 |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2482 PushOperand(scratch); | 2483 PushOperand(scratch); |
2483 VisitForStackValue(prop->key()); | 2484 VisitForStackValue(prop->key()); |
2484 | 2485 |
2485 // Stack here: | 2486 // Stack here: |
2486 // - home_object | 2487 // - home_object |
2487 // - this (receiver) | 2488 // - this (receiver) |
2488 // - this (receiver) <-- LoadKeyedFromSuper will pop here and below. | 2489 // - this (receiver) <-- LoadKeyedFromSuper will pop here and below. |
2489 // - home_object | 2490 // - home_object |
2490 // - key | 2491 // - key |
2491 CallRuntimeWithOperands(Runtime::kLoadKeyedFromSuper); | 2492 CallRuntimeWithOperands(Runtime::kLoadKeyedFromSuper); |
| 2493 PrepareForBailoutForId(prop->LoadId(), TOS_REG); |
2492 | 2494 |
2493 // Replace home_object with target function. | 2495 // Replace home_object with target function. |
2494 __ str(r0, MemOperand(sp, kPointerSize)); | 2496 __ str(r0, MemOperand(sp, kPointerSize)); |
2495 | 2497 |
2496 // Stack here: | 2498 // Stack here: |
2497 // - target function | 2499 // - target function |
2498 // - this (receiver) | 2500 // - this (receiver) |
2499 EmitCall(expr); | 2501 EmitCall(expr); |
2500 } | 2502 } |
2501 | 2503 |
(...skipping 1523 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4025 DCHECK(interrupt_address == | 4027 DCHECK(interrupt_address == |
4026 isolate->builtins()->OnStackReplacement()->entry()); | 4028 isolate->builtins()->OnStackReplacement()->entry()); |
4027 return ON_STACK_REPLACEMENT; | 4029 return ON_STACK_REPLACEMENT; |
4028 } | 4030 } |
4029 | 4031 |
4030 | 4032 |
4031 } // namespace internal | 4033 } // namespace internal |
4032 } // namespace v8 | 4034 } // namespace v8 |
4033 | 4035 |
4034 #endif // V8_TARGET_ARCH_ARM | 4036 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |