Mercurial > hg > truffle
diff src/share/vm/interpreter/bytecodeInterpreter.hpp @ 14909:4ca6dc0799b6
Backout jdk9 merge
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Tue, 01 Apr 2014 13:57:07 +0200 |
parents | bfd9d884693d |
children | 52b4284cb496 |
line wrap: on
line diff
--- a/src/share/vm/interpreter/bytecodeInterpreter.hpp Tue Apr 01 14:09:03 2014 +0200 +++ b/src/share/vm/interpreter/bytecodeInterpreter.hpp Tue Apr 01 13:57:07 2014 +0200 @@ -66,26 +66,27 @@ 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 - osr_message _osr; // describes the osr - osr_result _osr_result; // result of OSR request + 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 */ }; class BytecodeInterpreter : StackObj { @@ -114,8 +115,7 @@ 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 - early_return // early return as commanded by jvmti + do_osr // request this invocation be OSR's }; private: @@ -216,6 +216,8 @@ 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; }