/*--- end of opcodes ---*/
#ifndef THREADED_INTERP
} // end of "switch"
} // end of "while"
#endif
bail:
ILOGD("|-- Leaving interpreter loop"); // note "curMethod" may be NULL
interpState->retval = retval;
return false;
bail_switch:
/*
* The standard interpreter currently doesn't set or care about the
* "debugIsMethodEntry" value, so setting this is only of use if we're
* switching between two "debug" interpreters, which we never do.
*
* TODO: figure out if preserving this makes any sense.
*/
#if defined(WITH_PROFILER) || defined(WITH_DEBUGGER)
# if INTERP_TYPE == INTERP_DBG
interpState->debugIsMethodEntry = debugIsMethodEntry;
# else
interpState->debugIsMethodEntry = false;
# endif
#endif
/* export state changes */
interpState->method = curMethod;
interpState->pc = pc;
interpState->fp = fp;
/* debugTrackedRefStart doesn't change */
interpState->retval = retval; /* need for _entryPoint=ret */
interpState->nextMode =
(INTERP_TYPE == INTERP_STD) ? INTERP_DBG : INTERP_STD;
LOGVV(" meth='%s.%s' pc=0x%x fp=%p\n",
curMethod->clazz->descriptor, curMethod->name,
pc - curMethod->insns, fp);
return true;
}