< prev index next > src/hotspot/cpu/s390/continuationFreezeThaw_s390.inline.hpp
Print this page
return sender_cb != nullptr
? frame(sender_sp, sender_sp, nullptr, sender_pc, sender_cb, slot == -1 ? nullptr : sender_cb->oop_map_for_slot(slot, sender_pc))
: frame(sender_sp, sender_pc, sender_sp);
}
- template<typename FKind> frame FreezeBase::new_heap_frame(frame& f, frame& caller) {
+ template<typename FKind> frame FreezeBase::new_heap_frame(frame& f, frame& caller, int size_adjust) {
assert(FKind::is_instance(f), "");
intptr_t *sp, *fp;
if (FKind::interpreted) {
intptr_t locals_offset = *f.addr_at(_z_ijava_idx(locals));
// the maximal expression stack and the expression stack in the heap frame is trimmed.
assert(hf.fp() == hf.interpreter_frame_esp() + (f.fp() - f.interpreter_frame_esp()), "");
assert(hf.fp() <= (intptr_t*)hf.at(_z_ijava_idx(locals)), "");
}
- inline void FreezeBase::patch_pd(frame& hf, const frame& caller) {
+ inline void FreezeBase::patch_pd(frame& hf, const frame& caller, bool is_bottom_frame) {
if (caller.is_interpreted_frame()) {
assert(!caller.is_empty(), "");
patch_callee_link_relative(caller, caller.fp());
}
#ifdef ASSERT
inline frame ThawBase::new_entry_frame() {
intptr_t* sp = _cont.entrySP();
return frame(sp, _cont.entryPC(), sp, _cont.entryFP());
}
- template<typename FKind> frame ThawBase::new_stack_frame(const frame& hf, frame& caller, bool bottom) {
+ template<typename FKind> frame ThawBase::new_stack_frame(const frame& hf, frame& caller, bool bottom, int size_adjust) {
assert(FKind::is_instance(hf), "");
assert(is_aligned(caller.fp(), frame::frame_alignment), PTR_FORMAT, p2i(caller.fp()));
// caller.sp() can be unaligned. This is fixed below.
if (FKind::interpreted) {
< prev index next >