< prev index next >
src/cpu/s390/vm/s390.ad
Print this page
*** 1,8 ****
//
// Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
! // Copyright (c) 2016 SAP SE. All rights reserved.
// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
//
// This code is free software; you can redistribute it and/or modify it
// under the terms of the GNU General Public License version 2 only, as
// published by the Free Software Foundation.
--- 1,8 ----
//
// Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
! // Copyright (c) 2017, SAP SE. All rights reserved.
// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
//
// This code is free software; you can redistribute it and/or modify it
// under the terms of the GNU General Public License version 2 only, as
// published by the Free Software Foundation.
*** 908,927 ****
// If this does safepoint polling, then do it here.
bool need_polling = do_polling() && C->is_method_compilation();
// Pop frame, restore return_pc, and all stuff needed by interpreter.
- // Pop frame by add instead of load (a penny saved is a penny got :-).
int frame_size_in_bytes = Assembler::align((C->frame_slots() << LogBytesPerInt), frame::alignment_in_bytes);
! int retPC_offset = 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, frame_size_in_bytes);
! } else {
! __ add2reg(Z_SP, frame_size_in_bytes);
! __ restore_return_pc();
! }
if (StackReservedPages > 0 && C->has_reserved_stack_access()) {
__ reserved_stack_check(Z_R14);
}
--- 908,919 ----
// If this does safepoint polling, then do it here.
bool need_polling = do_polling() && C->is_method_compilation();
// Pop frame, restore return_pc, and all stuff needed by interpreter.
int frame_size_in_bytes = Assembler::align((C->frame_slots() << LogBytesPerInt), frame::alignment_in_bytes);
! __ pop_frame_restore_retPC(frame_size_in_bytes);
if (StackReservedPages > 0 && C->has_reserved_stack_access()) {
__ reserved_stack_check(Z_R14);
}
< prev index next >