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)))