diff options
-rw-r--r-- | compiler/dex/quick/arm/assemble_arm.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/compiler/dex/quick/arm/assemble_arm.cc b/compiler/dex/quick/arm/assemble_arm.cc index 8ba56dfa0e..2d69d935ca 100644 --- a/compiler/dex/quick/arm/assemble_arm.cc +++ b/compiler/dex/quick/arm/assemble_arm.cc @@ -1122,6 +1122,12 @@ AssemblerStatus ArmMir2Lir::AssembleInstructions(uintptr_t start_addr) { lir->operands[1] = 0; lir->target = 0; SetupResourceMasks(lir); + /* + * Because we just added this new instruction after the current one, + * advance lir so that this new instruction won't be checked for displacement + * overflow until the next pass (when its base offset will be properly established). + */ + lir = new_inst; res = kRetryAll; } else { lir->operands[1] = delta >> 1; |