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