PR target/58314
authorolegendo <olegendo@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 26 Nov 2013 11:48:16 +0000 (11:48 +0000)
committerolegendo <olegendo@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 26 Nov 2013 11:48:16 +0000 (11:48 +0000)
commit9db63610f64e308ee9f62cb08d40fcfc391425a1
treef023627b216c6579d7de4bdf913bdc41513ce8a2
parentca72c6bb11fe2d73c5ec8b636b83cf4ea997ea35
PR target/58314
PR target/50751
* config/sh/sh.c (max_mov_insn_displacement, disp_addr_displacement):
Prefix function names with 'sh_'.  Make them non-static.
* config/sh/sh-protos.h (sh_disp_addr_displacement,
sh_max_mov_insn_displacement): Add declarations.
* config/sh/constraints.md (Q): Reject QImode.
(Sdd): Use match_code "mem".
(Snd): Fix erroneous matching of non-memory operands.
* config/sh/predicates.md (short_displacement_mem_operand): New
predicate.
(general_movsrc_operand): Disallow PC relative QImode loads.
* config/sh/sh.md (*mov<mode>_reg_reg): Remove it.
(*movqi, *movhi): Merge both insns into...
(*mov<mode>): ... this new insn.  Replace generic 'm' constraints with
'Snd' and 'Sdd' constraints.  Calculate insn length dynamically based
on the operand types.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205390 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/sh/constraints.md
gcc/config/sh/predicates.md
gcc/config/sh/sh-protos.h
gcc/config/sh/sh.c
gcc/config/sh/sh.md