< prev index next >

src/hotspot/share/runtime/continuationEntry.cpp

Print this page
*** 34,20 ***
--- 34,27 ---
  #include "runtime/stackFrameStream.inline.hpp"
  #include "runtime/stackWatermarkSet.inline.hpp"
  #include "runtime/stubRoutines.hpp"
  
  int ContinuationEntry::_return_pc_offset = 0;
+ int ContinuationEntry::_thaw_call_pc_offset = 0;
+ int ContinuationEntry::_cleanup_offset = 0;
  address ContinuationEntry::_return_pc = nullptr;
+ address ContinuationEntry::_thaw_call_pc = nullptr;
+ address ContinuationEntry::_cleanup_pc = nullptr;
  nmethod* ContinuationEntry::_enter_special = nullptr;
  int ContinuationEntry::_interpreted_entry_offset = 0;
  
  void ContinuationEntry::set_enter_code(nmethod* nm, int interpreted_entry_offset) {
    assert(_return_pc_offset != 0, "");
    _return_pc = nm->code_begin() + _return_pc_offset;
+   _thaw_call_pc = nm->code_begin() + _thaw_call_pc_offset;
+   _cleanup_pc = nm->code_begin() + _cleanup_offset;
  
    _enter_special = nm;
    _interpreted_entry_offset = interpreted_entry_offset;
+ 
    assert(_enter_special->code_contains(compiled_entry()),    "entry not in enterSpecial");
    assert(_enter_special->code_contains(interpreted_entry()), "entry not in enterSpecial");
    assert(interpreted_entry() < compiled_entry(), "unexpected code layout");
  }
  
< prev index next >