sh.c (SH_ATTRIBUTES): Define.
authorAnil Paranjape <anil.paranjape@kpitcummins.com>
Tue, 25 Mar 2008 13:32:13 +0000 (13:32 +0000)
committerKaz Kojima <kkojima@gcc.gnu.org>
Tue, 25 Mar 2008 13:32:13 +0000 (13:32 +0000)
commit561642fa67798158762265f5100e3052275fe970
tree9d545fbf7312945f348908340895704e9ccd4110
parent53b308f61e96c47b54abf5c7db2e9831cbc43e66
sh.c (SH_ATTRIBUTES): Define.

* config/sh/sh.c (SH_ATTRIBUTES): Define.
(SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
(print_operand): Handle resbank in %@ operand code.
(sh_encode_section_info): New.
(push_regs): Add conditions for resbank.
(sh_expand_epilogue): Likewise.
(sh_insert_attributes): Likewise.
(sh_attribute_table): Likewise.
(sh_handle_resbank_handler_attribute): New.
(sh2a_handle_function_vector_handler_attribute): New.
(sh2a_is_function_vector_call): New.
(sh2a_get_function_vector_number): New.
(sh2a_function_vector_p): New.
(sh_cfun_resbank_handler_p): New.
* config/sh/sh.md (calli): Emit jsr/n if possible.
(calli_tbr_rel): New.
(calli_pcrel): Emit jsr/n if possible.
(return_i): Emit rts/n if possible.
(call_valuei_tbr_rel): New.
(call_valuei_pcrel): Add condition for SH2A target.
(call_value): Likewise.
* config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
(sh2a_get_function_vector_number): Likewise.
(sh2a_is_function_vector_call): Likewise.
* doc/extend.texi: Document TBR relative addressing of SH2A.
(resbank): Add description for SH2A.

* gcc.target/sh/sh2a-resbank.c: New test.
* gcc.target/sh/sh2a-tbr-jump.c: New test.
* gcc.target/sh/sh2a-jsrn.c: New test.
* gcc.target/sh/sh2a-rtsn.c: New test.

Co-Authored-By: Jayant R Sonar <jayant.sonar@kpitcummins.com>
Co-Authored-By: Naveen.H.S <naveen.hs@kpitcummins.com>
From-SVN: r133513
gcc/ChangeLog
gcc/config/sh/sh-protos.h
gcc/config/sh/sh.c
gcc/config/sh/sh.md
gcc/doc/extend.texi
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/sh/sh2a-jsrn.c [new file with mode: 0644]
gcc/testsuite/gcc.target/sh/sh2a-resbank.c [new file with mode: 0644]
gcc/testsuite/gcc.target/sh/sh2a-rtsn.c [new file with mode: 0644]
gcc/testsuite/gcc.target/sh/sh2a-tbr-jump.c [new file with mode: 0644]