< 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 >