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); |
} |