sh.c (trap_exit, sp_switch): New variables.
* 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.
From-SVN: r14148