Fix the jni compiler's handling of byte and short return values in x86.

gcc uses byte/short operations to populate return values of these types,
so the sign extension is lost. The jni compiler needs to manually sign
extend the values again since they're treated like words in the system.

With this change, all the run_test tests are working.

Change-Id: If691087ebd79b0d608e44ff8273ed25d46dd6b4a
diff --git a/src/oat/utils/arm/assembler_arm.h b/src/oat/utils/arm/assembler_arm.h
index e4ccfd8..ae7bfb4 100644
--- a/src/oat/utils/arm/assembler_arm.h
+++ b/src/oat/utils/arm/assembler_arm.h
@@ -516,6 +516,9 @@
 
   virtual void MemoryBarrier(ManagedRegister scratch);
 
+  // Sign extension
+  virtual void SignExtend(ManagedRegister mreg, size_t size);
+
   // Exploit fast access in managed code to Thread::Current()
   virtual void GetCurrentThread(ManagedRegister tr);
   virtual void GetCurrentThread(FrameOffset dest_offset,