< prev index next >
src/cpu/s390/vm/c1_LIRAssembler_s390.cpp
Print this page
*** 1137,1154 ****
AddressLiteral pp(os::get_polling_page());
__ load_const_optimized(Z_R1_scratch, pp);
// Pop the frame before the safepoint code.
! int retPC_offset = initial_frame_size_in_bytes() + _z_abi16(return_pc);
! if (Displacement::is_validDisp(retPC_offset)) {
! __ z_lg(Z_R14, retPC_offset, Z_SP);
! __ add2reg(Z_SP, initial_frame_size_in_bytes());
! } else {
! __ add2reg(Z_SP, initial_frame_size_in_bytes());
! __ restore_return_pc();
! }
if (StackReservedPages > 0 && compilation()->has_reserved_stack_access()) {
__ reserved_stack_check(Z_R14);
}
--- 1137,1147 ----
AddressLiteral pp(os::get_polling_page());
__ load_const_optimized(Z_R1_scratch, pp);
// Pop the frame before the safepoint code.
! __ pop_frame_restore_retPC(initial_frame_size_in_bytes());
if (StackReservedPages > 0 && compilation()->has_reserved_stack_access()) {
__ reserved_stack_check(Z_R14);
}
< prev index next >