summaryrefslogtreecommitdiffstats
path: root/vm/mterp/portable/entry.c
diff options
context:
space:
mode:
Diffstat (limited to 'vm/mterp/portable/entry.c')
-rw-r--r--vm/mterp/portable/entry.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/vm/mterp/portable/entry.c b/vm/mterp/portable/entry.c
index 66989597b..9c7c2d62d 100644
--- a/vm/mterp/portable/entry.c
+++ b/vm/mterp/portable/entry.c
@@ -29,11 +29,32 @@ bool INTERP_FUNC_NAME(Thread* self, InterpState* interpState)
const Method* methodToCall;
bool methodCallRange;
+
#if defined(THREADED_INTERP)
/* static computed goto table */
DEFINE_GOTO_TABLE(handlerTable);
#endif
+#if defined(WITH_JIT)
+#if 0
+ LOGD("*DebugInterp - entrypoint is %d, tgt is 0x%x, %s\n",
+ interpState->entryPoint,
+ interpState->pc,
+ interpState->method->name);
+#endif
+
+#if INTERP_TYPE == INTERP_DBG
+ /* Check to see if we've got a trace selection request. If we do,
+ * but something is amiss, revert to the fast interpreter.
+ */
+ if (dvmJitCheckTraceRequest(self,interpState)) {
+ interpState->nextMode = INTERP_STD;
+ //LOGD("** something wrong, exiting\n");
+ return true;
+ }
+#endif
+#endif
+
/* copy state in */
curMethod = interpState->method;
pc = interpState->pc;