mips.md: Complete the unfinished R4000 multiply/shift errata workaround.
authorMaciej W. Rozycki <macro@ds2.pg.gda.pl>
Sat, 28 Feb 2004 20:06:01 +0000 (21:06 +0100)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Sat, 28 Feb 2004 20:06:01 +0000 (20:06 +0000)
commitbddbfe5f6707bb2a3a4085d35c3c0753800dd5df
tree3406ca6d90e692f93d6143cdc9697f10661275f1
parent4649040309b011c972e0ffbd0e1c336cb490eed3
mips.md: Complete the unfinished R4000 multiply/shift errata workaround.

* config/mips/mips.md: Complete the unfinished R4000
multiply/shift errata workaround.  Improve documentation.
(hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
has a hilo hazard.
(mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
(muldi3, muldi3_internal): Likewise.
(muldi3_internal2): Remove, replacing with...
(muldi3_mult3, muldi3_r4000): ...these new patterns.
(mulsidi3): Take the errata into account.
(mulsidi3_32bit): Remove, replacing with...
(mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
(mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
(umulsidi3): Take the errata into account.
(umulsidi3_32bit): Remove, replacing with..
(umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
(umulsi3_highpart, umulsi3_highpart_internal): Disable if
TARGET_FIX_R4000.
(smulsi3_highpart, smulsi3_highpart_internal): Likewise.
(smuldi3_highpart, umuldi3_highpart): Likewise.
* doc/invoke.texi: Document the errata workaround.

From-SVN: r78622
gcc/ChangeLog
gcc/config/mips/mips.md
gcc/doc/invoke.texi