am 900a3afd: Jit: Fix register usage bug - Issue 2518825 native crash running ARMv5te JIT

Merge commit '900a3afd0e8e0d88426b21447d601ee67e17b642' into dalvik-dev

* commit '900a3afd0e8e0d88426b21447d601ee67e17b642':
  Jit: Fix register usage bug - Issue 2518825 native crash running ARMv5te JIT
diff --git a/vm/compiler/codegen/arm/CodegenDriver.c b/vm/compiler/codegen/arm/CodegenDriver.c
index 1e0a1d8..33a8fb5 100644
--- a/vm/compiler/codegen/arm/CodegenDriver.c
+++ b/vm/compiler/codegen/arm/CodegenDriver.c
@@ -565,6 +565,16 @@
     loadWordDisp(cUnit, r0, offsetof(Object, clazz), r0);
     opReg(cUnit, kOpBlx, r2);
     dvmCompilerClobberCallRegs(cUnit);
+
+    /*
+     * Using fixed registers here, and counting on r4 and r7 being
+     * preserved across the above call.  Tell the register allocation
+     * utilities about the regs we are using directly
+     */
+    dvmCompilerLockTemp(cUnit, regPtr);   // r4PC
+    dvmCompilerLockTemp(cUnit, regIndex); // r7
+    dvmCompilerLockTemp(cUnit, r0);
+
     /* Bad? - roll back and re-execute if so */
     genRegImmCheck(cUnit, kArmCondEq, r0, 0, mir->offset, pcrLabel);