--- old/src/cpu/s390/vm/c1_LIRAssembler_s390.cpp 2017-06-30 12:45:26.157942000 +0200 +++ new/src/cpu/s390/vm/c1_LIRAssembler_s390.cpp 2017-06-30 12:45:25.948940000 +0200 @@ -1139,14 +1139,7 @@ __ 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(); - } + __ pop_frame_restore_retPC(initial_frame_size_in_bytes()); if (StackReservedPages > 0 && compilation()->has_reserved_stack_access()) { __ reserved_stack_check(Z_R14);