m68k.md (movsi_cfv4): New pattern to allow mov3q.
authorPeter Barada <peter@the-baradas.com>
Wed, 16 Jun 2004 21:53:46 +0000 (21:53 +0000)
committerBernardo Innocenti <bernie@gcc.gnu.org>
Wed, 16 Jun 2004 21:53:46 +0000 (23:53 +0200)
commit5e04daf3171dcb6095a9ee91fe09bf5a70df43a0
tree43559396a2e98ef9733950984ee8c75db769667c
parent8c16199578ee7b0bcc94a807373569055678d042
m68k.md (movsi_cfv4): New pattern to allow mov3q.

* config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
(movsi_cf): Make named, don't match TARGET_CFV4.
(pushexthisi_const): Use mov3q if possible.
(extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern
to special case mvz.w for ColdFire V4.
(extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern
to special case mvz.b for ColdFire V4.
(udivmodhi4, divmodhi4): Use mvz to zero extend arg for
divide.
(iorsi3, xorsi3, andsi3): Use bitfield instructions if possible.
* config/m68k/m68k.c(valid_mov3q_const):  New function.
(const_method): SWAP is valid for ColdFire.
(MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4.
* config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here.

From-SVN: r83266
gcc/ChangeLog
gcc/config/m68k/m68k-protos.h
gcc/config/m68k/m68k.c
gcc/config/m68k/m68k.md