1 /*--- end of opcodes ---*/ 2 3 #ifndef THREADED_INTERP 4 } // end of "switch" 5 } // end of "while" 6 #endif 7 8 bail: 9 ILOGD("|-- Leaving interpreter loop"); // note "curMethod" may be NULL 10 11 interpState->retval = retval; 12 return false; 13 14 bail_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 INTERP_TYPE == INTERP_DBG 23 interpState->debugIsMethodEntry = debugIsMethodEntry; 24 #else 25 interpState->debugIsMethodEntry = false; 26 #endif 27 28 /* export state changes */ 29 interpState->method = curMethod; 30 interpState->pc = pc; 31 interpState->fp = fp; 32 /* debugTrackedRefStart doesn't change */ 33 interpState->retval = retval; /* need for _entryPoint=ret */ 34 interpState->nextMode = 35 (INTERP_TYPE == INTERP_STD) ? INTERP_DBG : INTERP_STD; 36 LOGVV(" meth='%s.%s' pc=0x%x fp=%p\n", 37 curMethod->clazz->descriptor, curMethod->name, 38 pc - curMethod->insns, fp); 39 return true; 40 } 41