diff options
author | Georg-Johann Lay <avr@gjlay.de> | 2011-03-22 19:37:35 +0000 |
---|---|---|
committer | Denis Chertykov <denisc@gcc.gnu.org> | 2011-03-22 22:37:35 +0300 |
commit | 980a0ff422442a1a0695df63ea48352df9578b09 (patch) | |
tree | cb05f74aaccc4fd5a149ffccc42ab439ef9855fe /gcc/config/avr/avr.h | |
parent | 0d8c8b1b0279efdbdd66361c0693f06f038f0f54 (diff) | |
download | gcc-980a0ff422442a1a0695df63ea48352df9578b09.zip gcc-980a0ff422442a1a0695df63ea48352df9578b09.tar.gz gcc-980a0ff422442a1a0695df63ea48352df9578b09.tar.bz2 |
avr-protos.h (expand_epilogue): Change prototype
* config/avr/avr-protos.h (expand_epilogue): Change prototype
* config/avr/avr.h (struct machine_function): Add field sibcall_fails.
* config/avr/avr.c (init_cumulative_args)
(avr_function_arg_advance): Use it.
* config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
sibcall epilogues.
(TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
(avr_function_ok_for_sibcall): ...this new function.
(avr_lookup_function_attribute1): New static Function.
(avr_naked_function_p, interrupt_function_p)
(signal_function_p, avr_OS_task_function_p)
(avr_OS_main_function_p): Use it.
* config/avr/avr.md ("sibcall", "sibcall_value")
("sibcall_epilogue"): New expander.
("*call_insn", "*call_value_insn"): New insn.
("call_insn", "call_value_insn"): Remove
("call", "call_value", "epilogue"): Change expander to handle
sibling calls.
From-SVN: r171300
Diffstat (limited to 'gcc/config/avr/avr.h')
-rw-r--r-- | gcc/config/avr/avr.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/config/avr/avr.h b/gcc/config/avr/avr.h index bd18aed..37fb3ed 100644 --- a/gcc/config/avr/avr.h +++ b/gcc/config/avr/avr.h @@ -826,4 +826,7 @@ struct GTY(()) machine_function /* Current function stack size. */ int stack_usage; + + /* 'true' if a callee might be tail called */ + int sibcall_fails; }; |