re PR target/58219 ([SH] mov.l insn length is wrong on SH2A)
commitae5f0df1d5446a1839427f627e9e7f1bb764de2f
authorOleg Endo <olegendo@gcc.gnu.org>
Fri, 6 May 2016 10:20:13 +0000 (6 10:20 +0000)
committerOleg Endo <olegendo@gcc.gnu.org>
Fri, 6 May 2016 10:20:13 +0000 (6 10:20 +0000)
treed8cade67627b6cb3a648493275b69f2364c05c9d
parent078f7e37ba6e00cc64b6c5ffb5f7e0c596d9c0a9
re PR target/58219 ([SH] mov.l insn length is wrong on SH2A)

gcc/
PR target/58219
* config/sh/predicates.md (long_displacement_mem_operand): New.
* config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
Add movi20, movi20s alternatives.  Adjust length attribute for
alternatives.
(movsi_ie): Allow for any FPU.  Adjust length attribute for
alternatives.
(movsi_i_lowpart): Add movi20, movi20s alternatives.  Adjust length
attribute for alternatives.
(*mov<mode>): Use long_displacement_mem_operand for length attribute.
(*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
length attribute for alternatives.

gcc/testsuite/
PR target/58219
*gcc.target/sh/pr58219.c: New tests.

From-SVN: r235954
gcc/ChangeLog
gcc/config/sh/predicates.md
gcc/config/sh/sh.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/sh/pr58219.c [new file with mode: 0644]