src/share/vm/interpreter/bytecodeInterpreter.hpp
Print this page
rev 4899 : 8019519: PPC64 (part 105): C interpreter: implement support for jvmti early return.
@@ -64,31 +64,30 @@
typedef class BytecodeInterpreter* interpreterState;
struct call_message {
- class Method* _callee; /* method to call during call_method request */
- address _callee_entry_point; /* address to jump to for call_method request */
- int _bcp_advance; /* size of the invoke bytecode operation */
+ class Method* _callee; // method to call during call_method request
+ address _callee_entry_point; // address to jump to for call_method request
+ int _bcp_advance; // size of the invoke bytecode operation
};
struct osr_message {
- address _osr_buf; /* the osr buffer */
- address _osr_entry; /* the entry to the osr method */
+ address _osr_buf; // the osr buffer
+ address _osr_entry; // the entry to the osr method
};
struct osr_result {
- nmethod* nm; /* osr nmethod */
- address return_addr; /* osr blob return address */
+ nmethod* nm; // osr nmethod
+ address return_addr; // osr blob return address
};
// Result returned to frame manager
union frame_manager_message {
- call_message _to_call; /* describes callee */
- Bytecodes::Code _return_kind; /* i_return, a_return, ... */
- osr_message _osr; /* describes the osr */
- osr_result _osr_result; /* result of OSR request */
+ call_message _to_call; // describes callee
+ osr_message _osr; // describes the osr
+ osr_result _osr_result; // result of OSR request
};
class BytecodeInterpreter : StackObj {
friend class SharedRuntime;
friend class AbstractInterpreterGenerator;
@@ -113,11 +112,12 @@
call_method, // request for new frame from interpreter, manager responds with method_entry
return_from_method, // request from interpreter to unwind, manager responds with method_continue
more_monitors, // need a new monitor
throwing_exception, // unwind stack and rethrow
popping_frame, // unwind call and retry call
- do_osr // request this invocation be OSR's
+ do_osr, // request this invocation be OSR's
+ early_return // early return as commanded by jvmti
};
private:
JavaThread* _thread; // the vm's java thread pointer
address _bcp; // instruction pointer
@@ -214,12 +214,10 @@
inline void set_osr_buf(address buf) { _result._osr._osr_buf = buf; }
inline void set_osr_entry(address entry) { _result._osr._osr_entry = entry; }
inline int bcp_advance() { return _result._to_call._bcp_advance; }
inline void set_bcp_advance(int count) { _result._to_call._bcp_advance = count; }
-inline void set_return_kind(Bytecodes::Code kind) { _result._return_kind = kind; }
-
inline interpreterState prev() { return _prev_link; }
inline intptr_t* stack() { return _stack; }
inline void set_stack(intptr_t* new_stack) { _stack = new_stack; }