| Index: src/arm/full-codegen-arm.cc
|
| diff --git a/src/arm/full-codegen-arm.cc b/src/arm/full-codegen-arm.cc
|
| index c221a4835136ba89054a80207a49f07d223636c2..49850ba7831decddf5d8649c1d22e386cc60c00f 100644
|
| --- a/src/arm/full-codegen-arm.cc
|
| +++ b/src/arm/full-codegen-arm.cc
|
| @@ -2194,12 +2194,21 @@ void FullCodeGenerator::EmitGeneratorResume(Expression *generator,
|
| __ cmp(r3, Operand(0));
|
| __ b(ne, &slow_resume);
|
| __ ldr(r3, FieldMemOperand(r4, JSFunction::kCodeEntryOffset));
|
| - __ ldr(r2, FieldMemOperand(r1, JSGeneratorObject::kContinuationOffset));
|
| - __ SmiUntag(r2);
|
| - __ add(r3, r3, r2);
|
| - __ mov(r2, Operand(Smi::FromInt(JSGeneratorObject::kGeneratorExecuting)));
|
| - __ str(r2, FieldMemOperand(r1, JSGeneratorObject::kContinuationOffset));
|
| - __ Jump(r3);
|
| +
|
| + { ConstantPoolUnavailableScope constant_pool_unavailable(masm_);
|
| + if (FLAG_enable_ool_constant_pool) {
|
| + // Load the new code object's constant pool pointer.
|
| + __ ldr(pp,
|
| + MemOperand(r3, Code::kConstantPoolOffset - Code::kHeaderSize));
|
| + }
|
| +
|
| + __ ldr(r2, FieldMemOperand(r1, JSGeneratorObject::kContinuationOffset));
|
| + __ SmiUntag(r2);
|
| + __ add(r3, r3, r2);
|
| + __ mov(r2, Operand(Smi::FromInt(JSGeneratorObject::kGeneratorExecuting)));
|
| + __ str(r2, FieldMemOperand(r1, JSGeneratorObject::kContinuationOffset));
|
| + __ Jump(r3);
|
| + }
|
| __ bind(&slow_resume);
|
| }
|
|
|
|
|