From: Max Filippov Date: Mon, 23 Sep 2019 07:50:40 +0000 (+0000) Subject: xtensa: backport fix for PR target/90922 X-Git-Tag: releases/gcc-7.5.0~101 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=576c1fe4b8d19d79fd200a0f1674e632e49600f9;p=thirdparty%2Fgcc.git xtensa: backport fix for PR target/90922 Stack pointer adjustment code in prologue missed a case of no callee-saved registers and a stack frame size bigger than 128 bytes. Handle that case. This fixes the following gcc tests with call0 ABI: gcc.c-torture/execute/stdarg-2.c gcc.dg/torture/pr55882.c gcc.dg/torture/pr57569.c gcc/ 2019-09-23 Max Filippov Backport from mainline 2019-06-18 Max Filippov * config/xtensa/xtensa.c (xtensa_expand_prologue): Add stack pointer adjustment for the case of no callee-saved registers and stack frame bigger than 128 bytes. From-SVN: r276039 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6c8ed228bc3e..8631f0a94e9b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2019-09-23 Max Filippov + + Backport from mainline + 2019-06-18 Max Filippov + + * config/xtensa/xtensa.c (xtensa_expand_prologue): Add stack + pointer adjustment for the case of no callee-saved registers and + stack frame bigger than 128 bytes. + 2019-09-20 John David Anglin * config/pa/pa.c (pa_trampoline_init): Remove spurious extended diff --git a/gcc/config/xtensa/xtensa.c b/gcc/config/xtensa/xtensa.c index db561e8feb78..a39bac9af7da 100644 --- a/gcc/config/xtensa/xtensa.c +++ b/gcc/config/xtensa/xtensa.c @@ -2802,7 +2802,8 @@ xtensa_expand_prologue (void) gen_rtx_SET (mem, reg)); } } - if (total_size > 1024) + if (total_size > 1024 + || (!callee_save_size && total_size > 128)) { rtx tmp_reg = gen_rtx_REG (Pmode, A9_REG); emit_move_insn (tmp_reg, GEN_INT (total_size -