Index: src/ppc/full-codegen-ppc.cc |
diff --git a/src/ppc/full-codegen-ppc.cc b/src/ppc/full-codegen-ppc.cc |
index 39d6dae918abcad8d62e61f5fc55883a3f214722..4c59978072c01749f262c8ee72616f1c46caad51 100644 |
--- a/src/ppc/full-codegen-ppc.cc |
+++ b/src/ppc/full-codegen-ppc.cc |
@@ -402,6 +402,7 @@ void FullCodeGenerator::EmitBackEdgeBookkeeping(IterationStatement* stmt, |
EmitProfilingCounterDecrement(weight); |
{ |
Assembler::BlockTrampolinePoolScope block_trampoline_pool(masm_); |
+ Assembler::BlockConstantPoolEntrySharingScope prevent_entry_sharing(masm_); |
// BackEdgeTable::PatchAt manipulates this sequence. |
__ cmpi(r6, Operand::Zero()); |
__ bc_short(ge, &ok); |
@@ -474,7 +475,7 @@ void FullCodeGenerator::EmitReturnSequence() { |
// With 64bit we may need nop() instructions to ensure we have |
// enough space to SetDebugBreakAtReturn() |
if (is_int16(sp_delta)) { |
- masm_->nop(); |
+ if (!FLAG_enable_embedded_constant_pool) masm_->nop(); |
masm_->nop(); |
} |
#endif |
@@ -2263,6 +2264,10 @@ void FullCodeGenerator::EmitGeneratorResume( |
__ bne(&slow_resume, cr0); |
__ LoadP(ip, FieldMemOperand(r7, JSFunction::kCodeEntryOffset)); |
{ |
+ ConstantPoolUnavailableScope constant_pool_unavailable(masm_); |
+ if (FLAG_enable_embedded_constant_pool) { |
+ __ LoadConstantPoolPointerRegisterFromCodeTargetAddress(ip); |
+ } |
__ LoadP(r5, FieldMemOperand(r4, JSGeneratorObject::kContinuationOffset)); |
__ SmiUntag(r5); |
__ add(ip, ip, r5); |