diff options
author | Hans-Peter Nilsson <hp@axis.com> | 2021-02-24 02:22:58 +0100 |
---|---|---|
committer | Hans-Peter Nilsson <hp@axis.com> | 2021-02-24 18:38:29 +0100 |
commit | 9e0d8a375bae07486c839228a520eaed9004a4f3 (patch) | |
tree | 88485221a465a271694fd79336b152ee6923b2ca | |
parent | 70aa0e6eef9d65744f37adc2a3cffef1a8217dc1 (diff) | |
download | gcc-9e0d8a375bae07486c839228a520eaed9004a4f3.zip gcc-9e0d8a375bae07486c839228a520eaed9004a4f3.tar.gz gcc-9e0d8a375bae07486c839228a520eaed9004a4f3.tar.bz2 |
cris: support -fstack-usage
All the bits were there, used with a pre-existing
-mmax-stackframe=SIZE which unfortunately seems to lack
test-cases.
Note that the early-return for -mno-prologue-epilogue (what
some targets call -mnaked) is deliberately not clearing
current_function_static_stack_size, as I consider that
erroneous usage but don't really care to emit a better error
message.
For stack-usage-1.c, like most ILP32 targets, CRIS (at -O0)
needs 4 bytes for the return-address. The default size of
256 seems ill chosen but not worth fixing.
gcc:
* config/cris/cris.c (cris_expand_prologue): Set
current_function_static_stack_size, if flag_stack_usage_info.
gcc/testsuite:
* gcc.dg/stack-usage-1.c: Adjust for CRIS.
-rw-r--r-- | gcc/config/cris/cris.c | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/stack-usage-1.c | 2 |
2 files changed, 7 insertions, 0 deletions
diff --git a/gcc/config/cris/cris.c b/gcc/config/cris/cris.c index 8a42aa1..0774ed8 100644 --- a/gcc/config/cris/cris.c +++ b/gcc/config/cris/cris.c @@ -2892,8 +2892,13 @@ cris_expand_prologue (void) framesize += size + cfoa_size; } + /* FIXME: -mmax-stackframe=SIZE is obsoleted; use -Wstack-usage=SIZE + instead. Make it an alias? */ if (cris_max_stackframe && framesize > cris_max_stackframe) warning (0, "stackframe too big: %d bytes", framesize); + + if (flag_stack_usage_info) + current_function_static_stack_size = framesize; } /* The expander for the epilogue pattern. */ diff --git a/gcc/testsuite/gcc.dg/stack-usage-1.c b/gcc/testsuite/gcc.dg/stack-usage-1.c index be1254a..93cfe7c 100644 --- a/gcc/testsuite/gcc.dg/stack-usage-1.c +++ b/gcc/testsuite/gcc.dg/stack-usage-1.c @@ -103,6 +103,8 @@ #define SIZE 252 #elif defined (__csky__) # define SIZE 252 +#elif defined (__CRIS__) +# define SIZE 252 #else # define SIZE 256 #endif |