Index: src/arm/macro-assembler-arm.cc |
=================================================================== |
--- src/arm/macro-assembler-arm.cc (revision 4448) |
+++ src/arm/macro-assembler-arm.cc (working copy) |
@@ -117,18 +117,20 @@ |
// ldr ip, [pc, #...] |
// blx ip |
- // The two instructions (ldr and blx) could be separated by a literal |
- // pool and the code would still work. The issue comes from the |
- // patching code which expect the ldr to be just above the blx. |
- BlockConstPoolFor(2); |
- // Statement positions are expected to be recorded when the target |
- // address is loaded. The mov method will automatically record |
- // positions when pc is the target, since this is not the case here |
- // we have to do it explicitly. |
- WriteRecordedPositions(); |
+ { |
+ // The two instructions (ldr and blx) could be separated by a constant |
+ // pool and the code would still work. The issue comes from the |
+ // patching code which expect the ldr to be just above the blx. |
+ BlockConstPoolScope block_const_pool(this); |
+ // Statement positions are expected to be recorded when the target |
+ // address is loaded. The mov method will automatically record |
+ // positions when pc is the target, since this is not the case here |
+ // we have to do it explicitly. |
+ WriteRecordedPositions(); |
- mov(ip, Operand(target, rmode), LeaveCC, cond); |
- blx(ip, cond); |
+ mov(ip, Operand(target, rmode), LeaveCC, cond); |
+ blx(ip, cond); |
+ } |
ASSERT(kCallTargetAddressOffset == 2 * kInstrSize); |
#else |