| Index: src/arm/full-codegen-arm.cc
|
| ===================================================================
|
| --- src/arm/full-codegen-arm.cc (revision 4459)
|
| +++ src/arm/full-codegen-arm.cc (working copy)
|
| @@ -199,12 +199,9 @@
|
| Label check_exit_codesize;
|
| masm_->bind(&check_exit_codesize);
|
| #endif
|
| -
|
| - { // NOLINT
|
| - // Make sure that the constant pool is not emitted inside of the return
|
| - // sequence.
|
| - Assembler::BlockConstPoolScope block_const_pool(masm_);
|
| -
|
| + // Make sure that the constant pool is not emitted inside of the return
|
| + // sequence.
|
| + { Assembler::BlockConstPoolScope block_const_pool(masm_);
|
| // Here we use masm_-> instead of the __ macro to avoid the code coverage
|
| // tool from instrumenting as we rely on the code size here.
|
| int32_t sp_delta = (scope()->num_parameters() + 1) * kPointerSize;
|
| @@ -703,7 +700,12 @@
|
| __ push(ip);
|
| __ mov(r2, Operand(var->name()));
|
| Handle<Code> ic(Builtins::builtin(Builtins::LoadIC_Initialize));
|
| - __ Call(ic, RelocInfo::CODE_TARGET_CONTEXT);
|
| + { Assembler::BlockConstPoolScope block_const_pool(masm_);
|
| + __ Call(ic, RelocInfo::CODE_TARGET_CONTEXT);
|
| + // A B instruction following the call signals that the load was inlined.
|
| + // Ensure that there is not a B instruction here.
|
| + __ nop();
|
| + }
|
| DropAndApply(1, context, r0);
|
|
|
| } else if (slot != NULL && slot->type() == Slot::LOOKUP) {
|
| @@ -1001,7 +1003,12 @@
|
| Literal* key = prop->key()->AsLiteral();
|
| __ mov(r2, Operand(key->handle()));
|
| Handle<Code> ic(Builtins::builtin(Builtins::LoadIC_Initialize));
|
| - __ Call(ic, RelocInfo::CODE_TARGET);
|
| + { Assembler::BlockConstPoolScope block_const_pool(masm_);
|
| + __ Call(ic, RelocInfo::CODE_TARGET);
|
| + // A B instruction following the call signals that the load was inlined.
|
| + // Ensure that there is not a B instruction here.
|
| + __ nop();
|
| + }
|
| }
|
|
|
|
|
| @@ -1438,7 +1445,12 @@
|
| Handle<Code> ic(Builtins::builtin(Builtins::LoadIC_Initialize));
|
| // Use a regular load, not a contextual load, to avoid a reference
|
| // error.
|
| - __ Call(ic, RelocInfo::CODE_TARGET);
|
| + { Assembler::BlockConstPoolScope block_const_pool(masm_);
|
| + __ Call(ic, RelocInfo::CODE_TARGET);
|
| + // A B instruction following the call signals that the load was
|
| + // inlined. Ensure that there is not a B instruction here.
|
| + __ nop();
|
| + }
|
| __ str(r0, MemOperand(sp));
|
| } else if (proxy != NULL &&
|
| proxy->var()->slot() != NULL &&
|
|
|