diff options
author | Andy Hutchinson <hutchinsonandy@gcc.gnu.org> | 2009-11-15 04:10:20 +0000 |
---|---|---|
committer | Andy Hutchinson <hutchinsonandy@gcc.gnu.org> | 2009-11-15 04:10:20 +0000 |
commit | a212a5d408ce85d717a166103601f596b58da9af (patch) | |
tree | 6acbfe49dc093b58ca7e058662c88af688c730d0 /gcc/config/avr/avr.h | |
parent | de8caa8cf818f016d6ce5ad6bfade2c34426d6e6 (diff) | |
download | gcc-a212a5d408ce85d717a166103601f596b58da9af.zip gcc-a212a5d408ce85d717a166103601f596b58da9af.tar.gz gcc-a212a5d408ce85d717a166103601f596b58da9af.tar.bz2 |
PR target/21078, 21080
PR target/21078, 21080
* config/avr/avr.c (avr_return_addr_rtx): New function for
builtin_return_address.
(expand_prologue): Calculate stack usage.
(avr_asm_function_end_prologue): Output stack size and offset label.
* config/avr/avr.h (RETURN_ADDR_RTX): Replace.
(machine_function): Add stack_usage.
* config/avr/avr-protos.h (avr_return_addr_rtx): New function.
From-SVN: r154188
Diffstat (limited to 'gcc/config/avr/avr.h')
-rw-r--r-- | gcc/config/avr/avr.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/config/avr/avr.h b/gcc/config/avr/avr.h index 782ad11..4e07a2e 100644 --- a/gcc/config/avr/avr.h +++ b/gcc/config/avr/avr.h @@ -367,8 +367,7 @@ enum reg_class { #define INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET) \ OFFSET = avr_initial_elimination_offset (FROM, TO) -#define RETURN_ADDR_RTX(count, x) \ - gen_rtx_MEM (Pmode, memory_address (Pmode, plus_constant (tem, 1))) +#define RETURN_ADDR_RTX(count, tem) avr_return_addr_rtx (count, tem) /* Don't use Push rounding. expr.c: emit_single_push_insn is broken for POST_DEC targets (PR27386). */ @@ -857,4 +856,7 @@ struct GTY(()) machine_function /* 'true' - if current function is a 'main' function as specified by the "OS_main" attribute. */ int is_OS_main; + + /* Current function stack size. */ + int stack_usage; }; |