From 6c444480dc55d4d0e3a99e441ce0804663bf05b4 Mon Sep 17 00:00:00 2001 From: David Srbecky Date: Wed, 17 Oct 2018 15:15:19 +0100 Subject: Count transitions from interpreter to intrinsic. Remove the special cases for intrinsic, and copy the needed counting from the slow path to the fast path as well. Test: test.py -b -r --host -t 638 Change-Id: I68a867c0b84234ed79bd32de29238e65f5ffa200 --- runtime/interpreter/interpreter_common.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/runtime/interpreter/interpreter_common.h b/runtime/interpreter/interpreter_common.h index 3c5abe124e..26bfba9ffc 100644 --- a/runtime/interpreter/interpreter_common.h +++ b/runtime/interpreter/interpreter_common.h @@ -182,11 +182,12 @@ static ALWAYS_INLINE bool DoInvoke(Thread* self, } if (is_mterp && !is_range && called_method->IsIntrinsic()) { - if (type == kDirect || type == kStatic || type == kVirtual) { - if (MterpHandleIntrinsic(&shadow_frame, called_method, inst, inst_data, - shadow_frame.GetResultRegister())) { - return !self->IsExceptionPending(); + if (MterpHandleIntrinsic(&shadow_frame, called_method, inst, inst_data, + shadow_frame.GetResultRegister())) { + if (jit != nullptr && sf_method != nullptr) { + jit->NotifyInterpreterToCompiledCodeTransition(self, sf_method); } + return !self->IsExceptionPending(); } } -- cgit v1.2.3-59-g8ed1b