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/Assemble.cc b/src/compiler/codegen/arm/Assemble.cc
index d9dd8c4..54e0aaf 100644
--- a/src/compiler/codegen/arm/Assemble.cc
+++ b/src/compiler/codegen/arm/Assemble.cc
@@ -1039,9 +1039,9 @@
              &iterator);
         if (tabRec == NULL) break;
         alignBuffer(cUnit->codeBuffer, tabRec->offset);
-        cUnit->codeBuffer.reserve(cUnit->codeBuffer.size() + (tabRec->size/2));
-        memcpy(&cUnit->codeBuffer[tabRec->offset/2],
-              (char*)tabRec->table, tabRec->size);
+        for (int i = 0; i < (tabRec->size / 2) ; i++) {
+            cUnit->codeBuffer.push_back( tabRec->table[i]);
+        }
     }
 }