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 && |