Register temp handling fix

In general, compiler routines that generate code don't need to worry
about register management - the underlying utilites will take care of
it.  However, when generating an invoke sequence specific registers must
be used to conform to the calling convention.  To prevent the normal
utilities from allocating these fixed registers, oatLockAllTemps() is
called to mark the registers as in use.  However, oatLockAllTemps() did
just that - it locked all of the temps, not just those used for arguments.

This change renames oatLockAllTemps() to oatLockCallTemps() and restricts
the locking to the argument registers.

Change-Id: Id4183ce89e2672bcf2873d31aa60bd80c91c5a72
diff --git a/src/compiler/codegen/arm/Thumb2/Gen.cc b/src/compiler/codegen/arm/Thumb2/Gen.cc
index 16adae7..699a561 100644
--- a/src/compiler/codegen/arm/Thumb2/Gen.cc
+++ b/src/compiler/codegen/arm/Thumb2/Gen.cc
@@ -760,7 +760,7 @@
     oatFlushAllRegs(cUnit);
     assert(art::Monitor::kLwShapeThin == 0);
     loadValueDirectFixed(cUnit, rlSrc, r1);  // Get obj
-    oatLockAllTemps(cUnit);  // Prepare for explicit register usage
+    oatLockCallTemps(cUnit);  // Prepare for explicit register usage
     genNullCheck(cUnit, rlSrc.sRegLow, r1, mir->offset, NULL);
     loadWordDisp(cUnit, rSELF, Thread::IdOffset().Int32Value(), r3);
     newLIR3(cUnit, kThumb2Ldrex, r2, r1,
@@ -811,7 +811,7 @@
     assert(art::Monitor::kLwShapeThin == 0);
     oatFlushAllRegs(cUnit);
     loadValueDirectFixed(cUnit, rlSrc, r1);  // Get obj
-    oatLockAllTemps(cUnit);  // Prepare for explicit register usage
+    oatLockCallTemps(cUnit);  // Prepare for explicit register usage
     genNullCheck(cUnit, rlSrc.sRegLow, r1, mir->offset, NULL);
     loadWordDisp(cUnit, r1, OFFSETOF_MEMBER(Object, monitor_), r2); // Get lock
     loadWordDisp(cUnit, rSELF, Thread::IdOffset().Int32Value(), r3);