1/*--- end of opcodes ---*/
2
3#ifndef THREADED_INTERP
4        } // end of "switch"
5    } // end of "while"
6#endif
7
8bail:
9    ILOGD("|-- Leaving interpreter loop");      // note "curMethod" may be NULL
10
11    interpState->retval = retval;
12    return false;
13
14bail_switch:
15    /*
16     * The standard interpreter currently doesn't set or care about the
17     * "debugIsMethodEntry" value, so setting this is only of use if we're
18     * switching between two "debug" interpreters, which we never do.
19     *
20     * TODO: figure out if preserving this makes any sense.
21     */
22#if defined(WITH_PROFILER) || defined(WITH_DEBUGGER)
23# if INTERP_TYPE == INTERP_DBG
24    interpState->debugIsMethodEntry = debugIsMethodEntry;
25# else
26    interpState->debugIsMethodEntry = false;
27# endif
28#endif
29
30    /* export state changes */
31    interpState->method = curMethod;
32    interpState->pc = pc;
33    interpState->fp = fp;
34    /* debugTrackedRefStart doesn't change */
35    interpState->retval = retval;   /* need for _entryPoint=ret */
36    interpState->nextMode =
37        (INTERP_TYPE == INTERP_STD) ? INTERP_DBG : INTERP_STD;
38    LOGVV(" meth='%s.%s' pc=0x%x fp=%p\n",
39        curMethod->clazz->descriptor, curMethod->name,
40        pc - curMethod->insns, fp);
41    return true;
42}
43
44