summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--compiler/dex/quick/arm/assemble_arm.cc6
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;