< prev index next > src/hotspot/share/runtime/continuationEntry.cpp
Print this page
#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 >