re PR target/54760 ([SH] Add __builtin_thread_pointer, __builtin_set_thread_pointer)
authorOleg Endo <olegendo@gcc.gnu.org>
Mon, 8 Oct 2012 02:00:46 +0000 (02:00 +0000)
committerOleg Endo <olegendo@gcc.gnu.org>
Mon, 8 Oct 2012 02:00:46 +0000 (02:00 +0000)
commitfce1e5fb8f22c020935ab99b9a05e55ed4a89c78
treea07109dc211baaa3ed5080642628c9d5d4ceba88
parent7f7b06c14f2c60b092cf254c94490cfb35211135
re PR target/54760 ([SH] Add __builtin_thread_pointer, __builtin_set_thread_pointer)

PR target/54760
* config/sh/sh.md (*mov<mode>_gbr_load, *mov<mode>_gbr_store): New
insns and accompanying unnamed splits.
* config/sh/predicates.md (general_movsrc_operand,
general_movdst_operand): Reject GBR addresses.
* config/sh/sh-protos.h (sh_find_equiv_gbr_addr): New declaration.
* config/sh/sh.c (sh_address_cost, sh_legitimate_address_p,
sh_secondary_reload): Handle GBR addresses.
(base_reg_disp): New class.
(sh_find_base_reg_disp, sh_find_equiv_gbr_addr): New functions.

PR target/54760
* gcc.target/sh/pr54760-2.c: New.
* gcc.target/sh/pr54760-3.c: New.

From-SVN: r192193
gcc/ChangeLog
gcc/config/sh/predicates.md
gcc/config/sh/sh-protos.h
gcc/config/sh/sh.c
gcc/config/sh/sh.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/sh/pr54760-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/sh/pr54760-3.c [new file with mode: 0644]