Various bug fixes.

The most amusing fix was the wierd NaN test failure.  After spending way
too much time debugging, it turned out to be a missing comma in the argument
list of the test launcher.

Change-Id: I76253575d7fbe2c2c260f1839a517c1b93dc9224
diff --git a/src/compiler/codegen/arm/Thumb2/Gen.cc b/src/compiler/codegen/arm/Thumb2/Gen.cc
index 2239bd9..992eca6 100644
--- a/src/compiler/codegen/arm/Thumb2/Gen.cc
+++ b/src/compiler/codegen/arm/Thumb2/Gen.cc
@@ -342,7 +342,7 @@
     loadValueDirectFixed(cUnit, rlSrc, r0);
     loadWordDisp(cUnit, rSELF,
                  OFFSETOF_MEMBER(Thread, pArtHandleFillArrayDataNoThrow), rLR);
-    // Materialize a pointer to the switch table
+    // Materialize a pointer to the fill data image
     newLIR3(cUnit, kThumb2AdrST, r1, 0, (intptr_t)tabRec);
     opReg(cUnit, kOpBlx, rLR);
     oatClobberCallRegs(cUnit);
@@ -1358,11 +1358,6 @@
     oatFlushAllRegs(cUnit);   /* Send everything to home location */
     loadWordDisp(cUnit, rSELF, funcOffset, rLR);
     loadValueDirectWideFixed(cUnit, rlSrc1, r0, r1);
-    if (rlShift.wide) {
-        LOG(WARNING) << "Invalid RegLocation size - dataflow problem";
-        LOG(WARNING) << "   sReg[" << rlShift.sRegLow << "]";
-        rlShift.wide = false;
-    }
     loadValueDirect(cUnit, rlShift, r2);
     opReg(cUnit, kOpBlx, rLR);
     oatClobberCallRegs(cUnit);