| Index: src/compiler/ppc/code-generator-ppc.cc
|
| diff --git a/src/compiler/ppc/code-generator-ppc.cc b/src/compiler/ppc/code-generator-ppc.cc
|
| index c633394cbb9dba9ed60dfd6f7b4b29d56e3eadb9..f74a5add8d237acd76952f1681460eba01d4f967 100644
|
| --- a/src/compiler/ppc/code-generator-ppc.cc
|
| +++ b/src/compiler/ppc/code-generator-ppc.cc
|
| @@ -610,14 +610,6 @@ void CodeGenerator::AssembleDeconstructActivationRecord(int stack_param_delta) {
|
| if (sp_slot_delta > 0) {
|
| __ Add(sp, sp, sp_slot_delta * kPointerSize, r0);
|
| }
|
| - if (frame()->needs_frame()) {
|
| - if (FLAG_enable_embedded_constant_pool) {
|
| - __ Pop(r0, fp, kConstantPoolRegister);
|
| - } else {
|
| - __ Pop(r0, fp);
|
| - }
|
| - __ mtlr(r0);
|
| - }
|
| frame_access_state()->SetFrameAccessToDefault();
|
| }
|
|
|
| @@ -628,6 +620,15 @@ void CodeGenerator::AssemblePrepareTailCall(int stack_param_delta) {
|
| __ Add(sp, sp, sp_slot_delta * kPointerSize, r0);
|
| frame_access_state()->IncreaseSPDelta(-sp_slot_delta);
|
| }
|
| + if (frame()->needs_frame()) {
|
| + if (FLAG_enable_embedded_constant_pool) {
|
| + __ LoadP(kConstantPoolRegister,
|
| + MemOperand(fp, StandardFrameConstants::kConstantPoolOffset));
|
| + }
|
| + __ LoadP(r0, MemOperand(fp, StandardFrameConstants::kCallerPCOffset));
|
| + __ LoadP(fp, MemOperand(fp, StandardFrameConstants::kCallerFPOffset));
|
| + __ mtlr(r0);
|
| + }
|
| frame_access_state()->SetFrameAccessToSP();
|
| }
|
|
|
|
|