Move JNI compiler tests to use pure JNI.

Implement JNI upcalls for x86.
Fix off by 1 bug in JNI calling convention for x86.
Fix bugs in ARM JNI upcalls.
Straw man JNI invoke nonvirtual implementations.
Match va_start with va_end in JNI internals.

Change-Id: I64d62eca41ac726ae0d007c1f41d2193db5be82e
diff --git a/src/jni_compiler.cc b/src/jni_compiler.cc
index 440dda5..077e7bb 100644
--- a/src/jni_compiler.cc
+++ b/src/jni_compiler.cc
@@ -59,7 +59,7 @@
     // Check handle offset is within frame
     CHECK_LT(handle_offset.Uint32Value(), frame_size);
     jni_asm->LoadRef(jni_conv.InterproceduralScratchRegister(),
-                     mr_conv.MethodRegister(), Method::ClassOffset());
+                     mr_conv.MethodRegister(), Method::DeclaringClassOffset());
     jni_asm->ValidateRef(jni_conv.InterproceduralScratchRegister(), false);
     jni_asm->StoreRef(handle_offset, jni_conv.InterproceduralScratchRegister());
     jni_conv.Next();  // handlerized so move to next argument