Jni compiler should zero extend boolean and char return values.
This mostly fixes the emulator. It seems like there's some final issues
in browser.
Change-Id: I9a82db3c243a0994465106bf21ac6596af5bdf5a
diff --git a/src/oat/utils/arm/assembler_arm.cc b/src/oat/utils/arm/assembler_arm.cc
index e248d5f..55b6187 100644
--- a/src/oat/utils/arm/assembler_arm.cc
+++ b/src/oat/utils/arm/assembler_arm.cc
@@ -1651,6 +1651,10 @@
UNIMPLEMENTED(FATAL) << "no sign extension necessary for arm";
}
+void ArmAssembler::ZeroExtend(ManagedRegister /*mreg*/, size_t /*size*/) {
+ UNIMPLEMENTED(FATAL) << "no zero extension necessary for arm";
+}
+
void ArmAssembler::Move(ManagedRegister m_dst, ManagedRegister m_src, size_t /*size*/) {
ArmManagedRegister dst = m_dst.AsArm();
ArmManagedRegister src = m_src.AsArm();
diff --git a/src/oat/utils/arm/assembler_arm.h b/src/oat/utils/arm/assembler_arm.h
index ae7bfb4..31c3ab0 100644
--- a/src/oat/utils/arm/assembler_arm.h
+++ b/src/oat/utils/arm/assembler_arm.h
@@ -519,6 +519,9 @@
// Sign extension
virtual void SignExtend(ManagedRegister mreg, size_t size);
+ // Zero extension
+ virtual void ZeroExtend(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,