aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1996-07-18 19:06:22 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1996-07-18 19:06:22 -0400
commit25fc6214e3705977d82cf1c6052f8f37891a92e5 (patch)
tree1398c4cc491a23065f3cdf33efd52638e698ec96 /gcc
parent8b06b20a144ed8e5b3e518930a211ce7b70fa2fd (diff)
downloadgcc-25fc6214e3705977d82cf1c6052f8f37891a92e5.zip
gcc-25fc6214e3705977d82cf1c6052f8f37891a92e5.tar.gz
gcc-25fc6214e3705977d82cf1c6052f8f37891a92e5.tar.bz2
(add patterns): Don't use two addqw instructions when...
(add patterns): Don't use two addqw instructions when adding small (8 < N <= 16) integers to address registers on 68040. From-SVN: r12515
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/m68k/m68k.md36
1 files changed, 20 insertions, 16 deletions
diff --git a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md
index 09d152c..73051fd 100644
--- a/gcc/config/m68k/m68k.md
+++ b/gcc/config/m68k/m68k.md
@@ -2249,10 +2249,11 @@
? \"subq%.w %2,%0\"
: \"subq%.l %2,%0\");
}
- /* On everything except the 68000 and 68060 it is faster to use
- two addqw instructions to add a small integer (8 < N <= 16)
- to an address register. Likewise for subqw.*/
- if (TARGET_68020 && !TARGET_68060 && ADDRESS_REG_P (operands[0]))
+ /* On the 68020 it is faster to use two addqw instructions to
+ add a small integer (8 < N <= 16) to an address register.
+ Likewise for subqw. */
+ if (TARGET_68020 && !TARGET_68040 && !TARGET_68060
+ && ADDRESS_REG_P (operands[0]))
{
if (INTVAL (operands[2]) > 8
&& INTVAL (operands[2]) <= 16)
@@ -2316,10 +2317,11 @@
- INTVAL (operands[2]));
return \"subq%.w %2,%0\";
}
- /* On everything except the 68000 and 68060 it is faster to use
- two addqw instructions to add a small integer (8 < N <= 16)
- to an address register. Likewise for subqw. */
- if (TARGET_68020 && !TARGET_68060 && ADDRESS_REG_P (operands[0]))
+ /* On the 68020 it is faster to use two addqw instructions to
+ add a small integer (8 < N <= 16) to an address register.
+ Likewise for subqw. */
+ if (TARGET_68020 && !TARGET_68040 && !TARGET_68060
+ && ADDRESS_REG_P (operands[0]))
{
if (INTVAL (operands[2]) > 8
&& INTVAL (operands[2]) <= 16)
@@ -2376,10 +2378,11 @@
- INTVAL (operands[1]));
return \"subq%.w %1,%0\";
}
- /* On everything except the 68000 and 68060 it is faster to use
- two addqw instructions to add a small integer (8 < N <= 16)
- to an address register. Likewise for subqw. */
- if (TARGET_68020 && !TARGET_68060 && ADDRESS_REG_P (operands[0]))
+ /* On the 68020 it is faster to use two addqw instructions to
+ add a small integer (8 < N <= 16) to an address register.
+ Likewise for subqw. */
+ if (TARGET_68020 && !TARGET_68040 && !TARGET_68060
+ && ADDRESS_REG_P (operands[0]))
{
if (INTVAL (operands[1]) > 8
&& INTVAL (operands[1]) <= 16)
@@ -2430,10 +2433,11 @@
- INTVAL (operands[1]));
return \"subq%.w %1,%0\";
}
- /* On everything except the 68000 and 68060 it is faster to use
- two addqw instructions to add a small integer (8 < N <= 16)
- to an address register. Likewise for subqw. */
- if (TARGET_68020 && !TARGET_68060 && ADDRESS_REG_P (operands[0]))
+ /* On the 68020 it is faster to use two addqw instructions to
+ add a small integer (8 < N <= 16) to an address register.
+ Likewise for subqw. */
+ if (TARGET_68020 && !TARGET_68040 && !TARGET_68060
+ && ADDRESS_REG_P (operands[0]))
{
if (INTVAL (operands[1]) > 8
&& INTVAL (operands[1]) <= 16)