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.
This commit is contained in:
parent
70aa0e6eef
commit
9e0d8a375b
2 changed files with 7 additions and 0 deletions
|
@ -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. */
|
||||
|
|
|
@ -103,6 +103,8 @@
|
|||
#define SIZE 252
|
||||
#elif defined (__csky__)
|
||||
# define SIZE 252
|
||||
#elif defined (__CRIS__)
|
||||
# define SIZE 252
|
||||
#else
|
||||
# define SIZE 256
|
||||
#endif
|
||||
|
|
Loading…
Add table
Reference in a new issue