ART: Enable Jit Profiling in Mterp for arm/arm64
Adds the hooks for branch profiling to arm and arm64. The
other Jit profiling modes are handled in common code.
Stubbed out support for on-stack replacement.
Change-Id: Ic298a81139108c3d7f1325b59d97e14a9de08de6
diff --git a/runtime/interpreter/interpreter.cc b/runtime/interpreter/interpreter.cc
index 3eff7fc..903c200 100644
--- a/runtime/interpreter/interpreter.cc
+++ b/runtime/interpreter/interpreter.cc
@@ -322,8 +322,14 @@
const instrumentation::Instrumentation* const instrumentation =
Runtime::Current()->GetInstrumentation();
while (true) {
- if (instrumentation->IsActive() || !Runtime::Current()->IsStarted()) {
- // TODO: allow JIT profiling instrumentation. Now, just punt on all instrumentation.
+ // Mterp does not support all instrumentation.
+ bool unhandled_instrumentation;
+ if ((kRuntimeISA == kArm64) || (kRuntimeISA == kArm)) {
+ unhandled_instrumentation = instrumentation->NonJitProfilingActive();
+ } else {
+ unhandled_instrumentation = instrumentation->IsActive();
+ }
+ if (unhandled_instrumentation || !Runtime::Current()->IsStarted()) {
#if !defined(__clang__)
return ExecuteGotoImpl<false, false>(self, code_item, shadow_frame, result_register);
#else