OSDN Git Service

* config/sh/sh.c (SH_ATTRIBUTES): Define.
authorkkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 25 Mar 2008 13:32:13 +0000 (13:32 +0000)
committerkkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 25 Mar 2008 13:32:13 +0000 (13:32 +0000)
commit5241f4ad3ad808aca2284e8f0b2be47373c7f8c2
tree9d545fbf7312945f348908340895704e9ccd4110
parent9ced80be5ca05dfcf200085ccc9f38f1ec055b99
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133513 138bc75d-0d04-0410-961f-82ee72b054a4
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]