• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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