< prev index next >

src/cpu/s390/vm/templateInterpreterGenerator_s390.cpp

Print this page
rev 12483 : 8172049: [s390] Implement "JEP 270: Reserved Stack Areas for Critical Sections".

*** 1114,1129 **** frame::z_top_ijava_frame_abi_size + frame::z_ijava_state_size + frame::interpreter_frame_monitor_size() * wordSize, max_stack); ! // Check if there's room for the new frame... Register frame_size = max_stack; // Reuse the regiser for max_stack. __ z_lgr(frame_size, Z_SP); __ z_sgr(frame_size, sp_after_resize); __ z_agr(frame_size, top_frame_size); generate_stack_overflow_check(frame_size, fp/*tmp1*/); DEBUG_ONLY(__ z_cg(Z_R14, _z_abi16(return_pc), Z_SP)); __ asm_assert_eq("killed Z_R14", 0); __ resize_frame_absolute(sp_after_resize, fp, true); __ save_return_pc(Z_R14); --- 1114,1134 ---- frame::z_top_ijava_frame_abi_size + frame::z_ijava_state_size + frame::interpreter_frame_monitor_size() * wordSize, max_stack); ! if (!native_call) { ! // Stack overflow check. ! // Native calls don't need the stack size check since they have no ! // expression stack and the arguments are already on the stack and ! // we only add a handful of words to the stack. Register frame_size = max_stack; // Reuse the regiser for max_stack. __ z_lgr(frame_size, Z_SP); __ z_sgr(frame_size, sp_after_resize); __ z_agr(frame_size, top_frame_size); generate_stack_overflow_check(frame_size, fp/*tmp1*/); + } DEBUG_ONLY(__ z_cg(Z_R14, _z_abi16(return_pc), Z_SP)); __ asm_assert_eq("killed Z_R14", 0); __ resize_frame_absolute(sp_after_resize, fp, true); __ save_return_pc(Z_R14);
< prev index next >