[jdk7u]: What is or should be the difference between BytecodeInterpreter::run and BytecodeInterpreter::runWithChecks

Francis ANDRE francis.andre.kampbell at orange.fr
Sat Oct 19 06:04:54 PDT 2013


Hi

ON a WXP/Cygwin/jdk7u platform with CC_INTERP as true, the hotspot does not 
compile or link because of the alternate definition of the method
  BytecodeInterpreter::run and BytecodeInterpreter::runWIthCheck

#if defined(VM_JVMTI)
void
BytecodeInterpreter::runWithChecks(interpreterState istate) {
#else
void
BytecodeInterpreter::run(interpreterState istate) {
#endif

   // In order to simplify some tests based on switches set at runtime
   // we invoke the interpreter a single time after switches are enabled
   // and set simpler to to test variables rather than method calls or complex
   // boolean expressions.

   static int initialized = 0;
   static int checkit = 0;
...
...

while elsewhere, both run and runWIthChecks are referenced as for example

   // Allow c++ interpreter to do one initialization now that switches are set, etc.
   BytecodeInterpreter start_msg(BytecodeInterpreter::initialize);
   if (JvmtiExport::can_post_interpreter_events())
     BytecodeInterpreter::runWithChecks(&start_msg);
   else
     BytecodeInterpreter::run(&start_msg);


So, should both run and runWithChecks exist at the same time or should they be 
conditionned by VM_JVMTI?

Francis


More information about the hotspot-runtime-dev mailing list