Point fixes after OSR change.

- ldr -> ldrb in osr stub for arm32
- disable 570-checker-osr for tracing
- don't osr proxy methods.

Change-Id: I9c713c9b7eab86ca9beb75f228fb3b76185621ef
diff --git a/runtime/arch/arm/quick_entrypoints_arm.S b/runtime/arch/arm/quick_entrypoints_arm.S
index b3a2979..949ad99 100644
--- a/runtime/arch/arm/quick_entrypoints_arm.S
+++ b/runtime/arch/arm/quick_entrypoints_arm.S
@@ -458,10 +458,10 @@
     bl     memcpy                          @ memcpy (dest r0, src r1, bytes r2)
     bl     .Losr_entry                     @ Call the method
     ldr    r11, [sp, #4]                   @ Restore saved stack pointer
-    ldr    r10, [sp, #8]                   @ Restire JValue result
+    ldr    r10, [sp, #8]                   @ Restore JValue result
     mov    sp, r11                         @ Restore stack pointer.
     ldr    r4, [sp, #36]                   @ load shorty
-    ldr    r4, [r4, #0]                    @ load return type
+    ldrb   r4, [r4, #0]                    @ load return type
     cmp    r4, #68                         @ Test if result type char == 'D'.
     beq    .Losr_fp_result
     cmp    r4, #70                         @ Test if result type char == 'F'.
diff --git a/runtime/jit/jit.cc b/runtime/jit/jit.cc
index 3e152e1..54b65e6 100644
--- a/runtime/jit/jit.cc
+++ b/runtime/jit/jit.cc
@@ -284,6 +284,10 @@
     return false;
   }
 
+  // Get the actual Java method if this method is from a proxy class. The compiler
+  // and the JIT code cache do not expect methods from proxy classes.
+  method = method->GetInterfaceMethodIfProxy(sizeof(void*));
+
   // Cheap check if the method has been compiled already. That's an indicator that we should
   // osr into it.
   if (!jit->GetCodeCache()->ContainsPc(method->GetEntryPointFromQuickCompiledCode())) {
diff --git a/test/Android.run-test.mk b/test/Android.run-test.mk
index a8938fa..e6ffd2e 100644
--- a/test/Android.run-test.mk
+++ b/test/Android.run-test.mk
@@ -401,13 +401,14 @@
 
 # 137:
 # This test unrolls and expects managed frames, but tracing means we run the interpreter.
-# 802:
+# 802 and 570-checker-osr:
 # This test dynamically enables tracing to force a deoptimization. This makes the test meaningless
 # when already tracing, and writes an error message that we do not want to check for.
 TEST_ART_BROKEN_TRACING_RUN_TESTS := \
   087-gc-after-link \
   137-cfi \
   141-class-unload \
+  570-checker-osr \
   802-deoptimization
 
 ifneq (,$(filter trace stream,$(TRACE_TYPES)))