* sh.c (trap_exit, sp_switch): New variables.
commit15cb17992837ad7aeb37cf42fd19cd8c291b4218
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 5 Jun 1997 15:52:34 +0000 (5 15:52 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 5 Jun 1997 15:52:34 +0000 (5 15:52 +0000)
treed5842c80a99dd931b8bff0664169a4ac2160a951
parent74666a14ff398025a5a35f0bf1c6480d7ee9e6a6
* sh.c (trap_exit, sp_switch): New variables.
(print_operand, case '@'): If trap_exit is nonzero, then use
a trapa instead of an rte/rts to exit the current function.
(sh_expand_prologue): Switch stacks at function entry as needed.
(sh_expand_epilogue): Similarly at function exit.
(function_epilogue): Clear trap_exit and sp_switch too.
(sh_valid_machine_decl_attribute): New function.
* sh.h (VALID_MACHINE_DECL_ATTRIBUTE): Define.
(sp_switch): Declare.
* sh.md (sp_switch_1, sp_switch_2): New named patterns.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14148 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/config/sh/sh.c
gcc/config/sh/sh.h
gcc/config/sh/sh.md