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 #if V8_TARGET_ARCH_PPC | 5 #if V8_TARGET_ARCH_PPC |
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 2408 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2419 PushOperands(scratch, r3, r3, scratch); | 2419 PushOperands(scratch, r3, r3, scratch); |
2420 PushOperand(key->value()); | 2420 PushOperand(key->value()); |
2421 | 2421 |
2422 // Stack here: | 2422 // Stack here: |
2423 // - home_object | 2423 // - home_object |
2424 // - this (receiver) | 2424 // - this (receiver) |
2425 // - this (receiver) <-- LoadFromSuper will pop here and below. | 2425 // - this (receiver) <-- LoadFromSuper will pop here and below. |
2426 // - home_object | 2426 // - home_object |
2427 // - key | 2427 // - key |
2428 CallRuntimeWithOperands(Runtime::kLoadFromSuper); | 2428 CallRuntimeWithOperands(Runtime::kLoadFromSuper); |
| 2429 PrepareForBailoutForId(prop->LoadId(), TOS_REG); |
2429 | 2430 |
2430 // Replace home_object with target function. | 2431 // Replace home_object with target function. |
2431 __ StoreP(r3, MemOperand(sp, kPointerSize)); | 2432 __ StoreP(r3, MemOperand(sp, kPointerSize)); |
2432 | 2433 |
2433 // Stack here: | 2434 // Stack here: |
2434 // - target function | 2435 // - target function |
2435 // - this (receiver) | 2436 // - this (receiver) |
2436 EmitCall(expr); | 2437 EmitCall(expr); |
2437 } | 2438 } |
2438 | 2439 |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2476 PushOperands(scratch, r3, r3, scratch); | 2477 PushOperands(scratch, r3, r3, scratch); |
2477 VisitForStackValue(prop->key()); | 2478 VisitForStackValue(prop->key()); |
2478 | 2479 |
2479 // Stack here: | 2480 // Stack here: |
2480 // - home_object | 2481 // - home_object |
2481 // - this (receiver) | 2482 // - this (receiver) |
2482 // - this (receiver) <-- LoadKeyedFromSuper will pop here and below. | 2483 // - this (receiver) <-- LoadKeyedFromSuper will pop here and below. |
2483 // - home_object | 2484 // - home_object |
2484 // - key | 2485 // - key |
2485 CallRuntimeWithOperands(Runtime::kLoadKeyedFromSuper); | 2486 CallRuntimeWithOperands(Runtime::kLoadKeyedFromSuper); |
| 2487 PrepareForBailoutForId(prop->LoadId(), TOS_REG); |
2486 | 2488 |
2487 // Replace home_object with target function. | 2489 // Replace home_object with target function. |
2488 __ StoreP(r3, MemOperand(sp, kPointerSize)); | 2490 __ StoreP(r3, MemOperand(sp, kPointerSize)); |
2489 | 2491 |
2490 // Stack here: | 2492 // Stack here: |
2491 // - target function | 2493 // - target function |
2492 // - this (receiver) | 2494 // - this (receiver) |
2493 EmitCall(expr); | 2495 EmitCall(expr); |
2494 } | 2496 } |
2495 | 2497 |
(...skipping 1439 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3935 | 3937 |
3936 DCHECK(Assembler::IsCrSet(Assembler::instr_at(cmp_address))); | 3938 DCHECK(Assembler::IsCrSet(Assembler::instr_at(cmp_address))); |
3937 | 3939 |
3938 DCHECK(interrupt_address == | 3940 DCHECK(interrupt_address == |
3939 isolate->builtins()->OnStackReplacement()->entry()); | 3941 isolate->builtins()->OnStackReplacement()->entry()); |
3940 return ON_STACK_REPLACEMENT; | 3942 return ON_STACK_REPLACEMENT; |
3941 } | 3943 } |
3942 } // namespace internal | 3944 } // namespace internal |
3943 } // namespace v8 | 3945 } // namespace v8 |
3944 #endif // V8_TARGET_ARCH_PPC | 3946 #endif // V8_TARGET_ARCH_PPC |
OLD | NEW |