diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1996-07-18 19:06:22 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1996-07-18 19:06:22 -0400 |
commit | 25fc6214e3705977d82cf1c6052f8f37891a92e5 (patch) | |
tree | 1398c4cc491a23065f3cdf33efd52638e698ec96 /gcc | |
parent | 8b06b20a144ed8e5b3e518930a211ce7b70fa2fd (diff) | |
download | gcc-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.md | 36 |
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) |