< prev index next >

src/hotspot/share/runtime/vframe.hpp

Print this page

        

*** 48,57 **** --- 48,59 ---- // - externalVFrame // - entryVFrame ; special frame created when calling Java from C // - BasicLock + class javaVFrame; + class vframe: public ResourceObj { protected: frame _fr; // Raw frame behind the virtual frame. RegisterMap _reg_map; // Register map for the raw frame (used to handle callee-saved registers). JavaThread* _thread; // The thread owning the raw frame.
*** 72,81 **** --- 74,84 ---- // ???? Does this need to be a copy? frame* frame_pointer() { return &_fr; } const RegisterMap* register_map() const { return &_reg_map; } JavaThread* thread() const { return _thread; } + oop continuation() const { return _reg_map.cont(); } // Returns the sender vframe virtual vframe* sender() const; // Returns the next javaVFrame on the stack (skipping all other kinds of frame)
*** 99,108 **** --- 102,112 ---- virtual void print_value() const; virtual void print(); #endif }; + class MonitorInfo; class javaVFrame: public vframe { public: // JVM state virtual Method* method() const = 0;
*** 290,302 **** --- 294,308 ---- int _vframe_id; // Cached information Method* _method; int _bci; + Handle _cont; // the current frame's continuation // Should VM activations be ignored or not bool _stop_at_java_call_stub; + Handle _continuation_scope; // stop at bottom of continuation with this scope bool fill_in_compiled_inlined_sender(); void fill_from_compiled_frame(int decode_offset); void fill_from_compiled_native_frame();
*** 309,324 **** --- 315,332 ---- DEBUG_ONLY(void found_bad_method_frame() const;) public: // Constructor inline vframeStreamCommon(JavaThread* thread); + inline vframeStreamCommon(RegisterMap reg_map); // Accessors Method* method() const { return _method; } int bci() const { return _bci; } inline intptr_t* frame_id() const; address frame_pc() const { return _frame.pc(); } + oop continuation() const { return _cont(); } CodeBlob* cb() const { return _frame.cb(); } CompiledMethod* nm() const { assert( cb() != NULL && cb()->is_compiled(), "usage"); return (CompiledMethod*) cb();
*** 348,357 **** --- 356,369 ---- class vframeStream : public vframeStreamCommon { public: // Constructors vframeStream(JavaThread* thread, bool stop_at_java_call_stub = false); + vframeStream(JavaThread* thread, Handle continuation_scope, bool stop_at_java_call_stub = false); + // top_frame may not be at safepoint, start with sender vframeStream(JavaThread* thread, frame top_frame, bool stop_at_java_call_stub = false); + + vframeStream(Handle continuation); }; #endif // SHARE_RUNTIME_VFRAME_HPP
< prev index next >