OSDN Git Service

(add patterns): Don't use two addqw instructions when adding small (8
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 18 Jul 1996 23:06:22 +0000 (23:06 +0000)
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 18 Jul 1996 23:06:22 +0000 (23:06 +0000)
< N <= 16) integers to address registers on 68040.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12515 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/config/m68k/m68k.md

index 09d152c..73051fd 100644 (file)
                  ? \"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)
                                 - 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)
                                 - 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)
                                 - 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)