m68k.md (cmpsi+1): Use cmp.w when comparing a 16 bit constant with an address register.
authorAndreas Schwab <schwab@issan.cs.uni-dortmund.de>
Wed, 28 Apr 1999 01:48:20 +0000 (01:48 +0000)
committerAndreas Schwab <schwab@gcc.gnu.org>
Wed, 28 Apr 1999 01:48:20 +0000 (01:48 +0000)
* config/m68k/m68k.md (cmpsi+1): Use cmp.w when comparing a 16 bit
constant with an address register.

From-SVN: r26684

gcc/ChangeLog
gcc/config/m68k/m68k.md

index db234adf682aa4b3f6a32650d0d17a24f4c14d84..9bbb9d4ee0bd9dbbc676d4c4aac056904e099db7 100644 (file)
@@ -1,3 +1,8 @@
+Wed Apr 28 10:36:39 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
+
+       * config/m68k/m68k.md (cmpsi+1): Use cmp.w when comparing a 16 bit
+       constant with an address register. 
+
 Wed Apr 28 00:14:41 PDT 1999 Jeff Law  (law@cygnus.com)
 
        * version.c: Bump for snapshot.
index 03138d4b42867a2389a2b3c773ad1aade8f1c555..a8dac721d9935f281bd503f4bd7213ff457539d9 100644 (file)
       return \"cmp%.l %d1,%d0\";
 #else
       return \"cmp%.l %d0,%d1\";
+#endif
+    }
+  if (ADDRESS_REG_P (operands[0])
+      && GET_CODE (operands[1]) == CONST_INT
+      && INTVAL (operands[1]) < 0x8000
+      && INTVAL (operands[1]) >= -0x8000)
+    {
+#ifdef SGS_CMP_ORDER
+      return \"cmp%.w %0,%1\";
+#else
+      return \"cmp%.w %1,%0\";
 #endif
     }
 #ifdef SGS_CMP_ORDER