(stack adjust peepholes): Use lea instead of add.w when adding 16 bit
authorRichard Kenner <kenner@gcc.gnu.org>
Thu, 30 Jan 1997 14:34:19 +0000 (09:34 -0500)
committerRichard Kenner <kenner@gcc.gnu.org>
Thu, 30 Jan 1997 14:34:19 +0000 (09:34 -0500)
constants on all but TARGET_68040.

From-SVN: r13569

gcc/config/m68k/m68k.md

index 1ad55fc..c242f42 100644 (file)
          else
            output_asm_insn (\"addq%.l %1,%0\", xoperands);
        }
-      else if (INTVAL (xoperands[1]) <= 16 
-              && TARGET_68020 && !TARGET_68040 && !TARGET_68060)
+      else if (TARGET_CPU32 && INTVAL (xoperands[1]) <= 16) 
        {
          xoperands[1] = gen_rtx (CONST_INT, VOIDmode,
                                  INTVAL (xoperands[1]) - 8);
        }
       else
 #endif
-        if (INTVAL (xoperands[1]) <= 0x7FFF && !TARGET_5200)
-          output_asm_insn (\"add%.w %1,%0\", xoperands);
+        if (INTVAL (xoperands[1]) <= 0x7FFF)
+        {
+         if (TARGET_68040)
+           output_asm_insn (\"add%.w %1,%0\", xoperands);
+         else
+#ifdef MOTOROLA  
+           output_asm_insn (\"lea (%c1,%0),%0\", xoperands);
+#else
+           output_asm_insn (\"lea %0@(%c1),%0\", xoperands);
+#endif
+        }
       else
         output_asm_insn (\"add%.l %1,%0\", xoperands);
     }
          else
            output_asm_insn (\"addq%.l %1,%0\", xoperands);
        }
-      else if (INTVAL (xoperands[1]) <= 16 
-              && TARGET_68020 && !TARGET_68040 && !TARGET_68060)
+      else if (TARGET_CPU32 && INTVAL (xoperands[1]) <= 16)
        {
          xoperands[1] = gen_rtx (CONST_INT, VOIDmode,
                                  INTVAL (xoperands[1]) - 8);
        }
       else
 #endif
-        if (INTVAL (xoperands[1]) <= 0x7FFF && !TARGET_5200)
-          output_asm_insn (\"add%.w %1,%0\", xoperands);
+        if (INTVAL (xoperands[1]) <= 0x7FFF)
+        {
+         if (TARGET_68040)
+           output_asm_insn (\"add%.w %1,%0\", xoperands);
+         else
+#ifdef MOTOROLA  
+           output_asm_insn (\"lea (%c1,%0),%0\", xoperands);
+#else
+           output_asm_insn (\"lea %0@(%c1),%0\", xoperands);
+#endif
+        }
       else
         output_asm_insn (\"add%.l %1,%0\", xoperands);
     }