i386.md (movhi, movqi): Properly recognized unsigned forms of -1 for
authorRichard Kenner <kenner@gcc.gnu.org>
Sat, 26 Mar 1994 01:17:04 +0000 (20:17 -0500)
committerRichard Kenner <kenner@gcc.gnu.org>
Sat, 26 Mar 1994 01:17:04 +0000 (20:17 -0500)
dec[bw] insns.

From-SVN: r6909

gcc/config/i386/i386.md

index 5a87914ecf33c501cebcbfc4f0dd49cad7ffe3cb..500fbbd475ade7bab75164492472582d9bb2883e 100644 (file)
@@ -1,5 +1,5 @@
 ;; GCC machine description for Intel 80386.
-;; Copyright (C) 1988 Free Software Foundation, Inc.
+;; Copyright (C) 1988, 1994 Free Software Foundation, Inc.
 ;; Mostly by William Schelter.
 
 ;; This file is part of GNU CC.
       && GET_CODE (operands[2]) == CONST_INT
       && (INTVAL (operands[2]) & 0xff) == 0)
     {
+      int byteval = (INTVAL (operands[2]) >> 8) & 0xff;
       CC_STATUS_INIT;
 
-      operands[2] = GEN_INT ((INTVAL (operands[2]) >> 8) & 0xff);
-
-      if (operands[2] == const1_rtx)
+      if (byteval == 1)
        return AS1 (inc%B0,%h0);
-
-      if (operands[2] == constm1_rtx)
+      else if (byteval == 255)
        return AS1 (dec%B0,%h0);
 
+      operands[2] = GEN_INT (byteval);
       return AS2 (add%B0,%2,%h0);
     }
 
   if (operands[2] == const1_rtx)
     return AS1 (inc%W0,%0);
 
-  if (operands[2] == constm1_rtx)
+  if (operands[2] == constm1_rtx
+      || (GET_CODE (operands[2]) == CONST_INT
+         && INTVAL (operands[2]) == 65535))
     return AS1 (dec%W0,%0);
 
   return AS2 (add%W0,%2,%0);
   if (operands[2] == const1_rtx)
     return AS1 (inc%B0,%0);
 
-  if (operands[2] == constm1_rtx)
+  if (operands[2] == constm1_rtx
+      || (GET_CODE (operands[2]) == CONST_INT
+         && INTVAL (operands[2]) == 255))
     return AS1 (dec%B0,%0);
 
   return AS2 (add%B0,%2,%0);