src/share/vm/interpreter/bytecodeInterpreter.hpp

Print this page
rev 4869 : 8019519: PPC64 (part 105): C interpreter: implement support for jvmti early return.


  98 friend class frame;
  99 friend class VMStructs;
 100 
 101 public:
 102     enum messages {
 103          no_request = 0,            // unused
 104          initialize,                // Perform one time interpreter initializations (assumes all switches set)
 105          // status message to C++ interpreter
 106          method_entry,              // initial method entry to interpreter
 107          method_resume,             // frame manager response to return_from_method request (assuming a frame to resume)
 108          deopt_resume,              // returning from a native call into a deopted frame
 109          deopt_resume2,             // deopt resume as a result of a PopFrame
 110          got_monitors,              // frame manager response to more_monitors request
 111          rethrow_exception,         // unwinding and throwing exception
 112          // requests to frame manager from C++ interpreter
 113          call_method,               // request for new frame from interpreter, manager responds with method_entry
 114          return_from_method,        // request from interpreter to unwind, manager responds with method_continue
 115          more_monitors,             // need a new monitor
 116          throwing_exception,        // unwind stack and rethrow
 117          popping_frame,             // unwind call and retry call
 118          do_osr                     // request this invocation be OSR's

 119     };
 120 
 121 private:
 122     JavaThread*           _thread;        // the vm's java thread pointer
 123     address               _bcp;           // instruction pointer
 124     intptr_t*             _locals;        // local variable pointer
 125     ConstantPoolCache*    _constants;     // constant pool cache
 126     Method*               _method;        // method being executed
 127     DataLayout*           _mdx;           // compiler profiling data for current bytecode
 128     intptr_t*             _stack;         // expression stack
 129     messages              _msg;           // frame manager <-> interpreter message
 130     frame_manager_message _result;        // result to frame manager
 131     interpreterState      _prev_link;     // previous interpreter state
 132     oop                   _oop_temp;      // mirror for interpreted native, null otherwise
 133     intptr_t*             _stack_base;    // base of expression stack
 134     intptr_t*             _stack_limit;   // limit of expression stack
 135     BasicObjectLock*      _monitor_base;  // base of monitors on the native stack
 136 
 137 
 138 public:




  98 friend class frame;
  99 friend class VMStructs;
 100 
 101 public:
 102     enum messages {
 103          no_request = 0,            // unused
 104          initialize,                // Perform one time interpreter initializations (assumes all switches set)
 105          // status message to C++ interpreter
 106          method_entry,              // initial method entry to interpreter
 107          method_resume,             // frame manager response to return_from_method request (assuming a frame to resume)
 108          deopt_resume,              // returning from a native call into a deopted frame
 109          deopt_resume2,             // deopt resume as a result of a PopFrame
 110          got_monitors,              // frame manager response to more_monitors request
 111          rethrow_exception,         // unwinding and throwing exception
 112          // requests to frame manager from C++ interpreter
 113          call_method,               // request for new frame from interpreter, manager responds with method_entry
 114          return_from_method,        // request from interpreter to unwind, manager responds with method_continue
 115          more_monitors,             // need a new monitor
 116          throwing_exception,        // unwind stack and rethrow
 117          popping_frame,             // unwind call and retry call
 118          do_osr,                    // request this invocation be OSR's
 119          early_return               // early return as commanded by jvmti
 120     };
 121 
 122 private:
 123     JavaThread*           _thread;        // the vm's java thread pointer
 124     address               _bcp;           // instruction pointer
 125     intptr_t*             _locals;        // local variable pointer
 126     ConstantPoolCache*    _constants;     // constant pool cache
 127     Method*               _method;        // method being executed
 128     DataLayout*           _mdx;           // compiler profiling data for current bytecode
 129     intptr_t*             _stack;         // expression stack
 130     messages              _msg;           // frame manager <-> interpreter message
 131     frame_manager_message _result;        // result to frame manager
 132     interpreterState      _prev_link;     // previous interpreter state
 133     oop                   _oop_temp;      // mirror for interpreted native, null otherwise
 134     intptr_t*             _stack_base;    // base of expression stack
 135     intptr_t*             _stack_limit;   // limit of expression stack
 136     BasicObjectLock*      _monitor_base;  // base of monitors on the native stack
 137 
 138 
 139 public: