| From a592242578e573778241cae6d3928c064dcdfda4 Mon Sep 17 00:00:00 2001 |
| From: jcmvbkbc <jcmvbkbc@138bc75d-0d04-0410-961f-82ee72b054a4> |
| Date: Tue, 18 Jun 2019 22:19:12 +0000 |
| Subject: [PATCH] xtensa: 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-06-18 Max Filippov <jcmvbkbc@gmail.com> |
| |
| * 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. |
| |
| Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> |
| --- |
| gcc/config/xtensa/xtensa.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| diff --git a/gcc/config/xtensa/xtensa.c b/gcc/config/xtensa/xtensa.c |
| index 19bd616d67f6..ee5612441e25 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 - |
| -- |
| 2.11.0 |
| |