Fix for 2892472 jit spew: No free temp registers

Neglected some register allocation hygene, which caused a
problem on armv5te builds.

Change-Id: I666b39b88822c4d3d3d7f0e84386aca2920bb9f1
diff --git a/vm/compiler/codegen/arm/CodegenDriver.c b/vm/compiler/codegen/arm/CodegenDriver.c
index cd0f18d..79019a0 100644
--- a/vm/compiler/codegen/arm/CodegenDriver.c
+++ b/vm/compiler/codegen/arm/CodegenDriver.c
@@ -41,6 +41,8 @@
     ArmLIR *target = newLIR0(cUnit, kArmPseudoTargetLabel);
     target->defMask = ENCODE_ALL;
     branchOver->generic.target = (LIR *)target;
+    dvmCompilerFreeTemp(cUnit, regCardBase);
+    dvmCompilerFreeTemp(cUnit, regCardNo);
 }
 
 static bool genConversionCall(CompilationUnit *cUnit, MIR *mir, void *funct,
@@ -574,6 +576,9 @@
                      scale, kWord);
     HEAP_ACCESS_SHADOW(false);
 
+    dvmCompilerFreeTemp(cUnit, regPtr);
+    dvmCompilerFreeTemp(cUnit, regIndex);
+
     /* NOTE: marking card here based on object head */
     markCard(cUnit, r0, r1);
 }
@@ -1543,6 +1548,7 @@
                 /* NOTE: marking card based on field address */
                 markCard(cUnit, rlSrc.lowReg, tReg);
             }
+            dvmCompilerFreeTemp(cUnit, tReg);
 
             break;
         }