diff options
author | Anil Paranjape <anil.paranjape@kpitcummins.com> | 2008-03-25 13:32:13 +0000 |
---|---|---|
committer | Kaz Kojima <kkojima@gcc.gnu.org> | 2008-03-25 13:32:13 +0000 |
commit | 561642fa67798158762265f5100e3052275fe970 (patch) | |
tree | 9d545fbf7312945f348908340895704e9ccd4110 /gcc/config/sh/sh-protos.h | |
parent | 53b308f61e96c47b54abf5c7db2e9831cbc43e66 (diff) | |
download | gcc-561642fa67798158762265f5100e3052275fe970.zip gcc-561642fa67798158762265f5100e3052275fe970.tar.gz gcc-561642fa67798158762265f5100e3052275fe970.tar.bz2 |
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
Diffstat (limited to 'gcc/config/sh/sh-protos.h')
-rw-r--r-- | gcc/config/sh/sh-protos.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/config/sh/sh-protos.h b/gcc/config/sh/sh-protos.h index 25d9ce4..9e1a488 100644 --- a/gcc/config/sh/sh-protos.h +++ b/gcc/config/sh/sh-protos.h @@ -134,6 +134,7 @@ extern int initial_elimination_offset (int, int); extern int fldi_ok (void); extern int sh_hard_regno_rename_ok (unsigned int, unsigned int); extern int sh_cfun_interrupt_handler_p (void); +extern int sh_cfun_resbank_handler_p (void); extern int sh_attr_renesas_p (const_tree); extern int sh_cfun_attr_renesas_p (void); extern void sh_initialize_trampoline (rtx, rtx, rtx); @@ -170,6 +171,8 @@ struct secondary_reload_info; extern enum reg_class sh_secondary_reload (bool, rtx, enum reg_class, enum machine_mode, struct secondary_reload_info *); +extern int sh2a_get_function_vector_number (rtx); +extern int sh2a_is_function_vector_call (rtx); #endif /* ! GCC_SH_PROTOS_H */ |