--- old/src/hotspot/share/runtime/thread.hpp 2019-03-11 14:27:22.878354094 +0100 +++ new/src/hotspot/share/runtime/thread.hpp 2019-03-11 14:27:22.666354097 +0100 @@ -443,6 +443,7 @@ is_definitely_current_thread = true }; + public: // Constructor Thread(); virtual ~Thread() = 0; // Thread is abstract. @@ -981,6 +982,7 @@ friend class VMStructs; friend class JVMCIVMStructs; friend class WhiteBox; + friend class VTBuffer; private: JavaThread* _next; // The next thread in the Threads list bool _on_thread_list; // Is set when this JavaThread is added to the Threads list @@ -1041,6 +1043,7 @@ // Used to pass back results to the interpreter or generated code running Java code. oop _vm_result; // oop result is GC-preserved Metadata* _vm_result_2; // non-oop result + oop _return_buffered_value; // buffered value being returned // See ReduceInitialCardMarks: this holds the precise space interval of // the most recent slow path allocation for which compiled code has @@ -1529,6 +1532,9 @@ Metadata* vm_result_2() const { return _vm_result_2; } void set_vm_result_2 (Metadata* x) { _vm_result_2 = x; } + oop return_buffered_value() const { return _return_buffered_value; } + void set_return_buffered_value(oop val) { _return_buffered_value = val; } + MemRegion deferred_card_mark() const { return _deferred_card_mark; } void set_deferred_card_mark(MemRegion mr) { _deferred_card_mark = mr; } @@ -1771,6 +1777,7 @@ static ByteSize callee_target_offset() { return byte_offset_of(JavaThread, _callee_target); } static ByteSize vm_result_offset() { return byte_offset_of(JavaThread, _vm_result); } static ByteSize vm_result_2_offset() { return byte_offset_of(JavaThread, _vm_result_2); } + static ByteSize return_buffered_value_offset() { return byte_offset_of(JavaThread, _return_buffered_value); } static ByteSize thread_state_offset() { return byte_offset_of(JavaThread, _thread_state); } static ByteSize saved_exception_pc_offset() { return byte_offset_of(JavaThread, _saved_exception_pc); } static ByteSize osthread_offset() { return byte_offset_of(JavaThread, _osthread); }