i386.md (neghi2): Do not output prefixed opcode when possible.
authorJan Hubicka <hubicka@freesoft.cz>
Tue, 13 Apr 1999 23:39:22 +0000 (01:39 +0200)
committerJeff Law <law@gcc.gnu.org>
Tue, 13 Apr 1999 23:39:22 +0000 (17:39 -0600)
* i386.md (neghi2): Do not output prefixed opcode when possible.
(ashlhi3): Likewise.

From-SVN: r26433

gcc/ChangeLog
gcc/config/i386/i386.md

index f1c5773e50a72e78d5b418164cde0f5680bd20db..1d0c6e7bbba0719e12fac722af3faf06d245a6c8 100644 (file)
@@ -1,3 +1,8 @@
+Wed Apr 14 00:18:22 1999  Jan Hubicka <hubicka@freesoft.cz>
+
+       * i386.md (neghi2): Do not output prefixed opcode when possible.
+       (ashlhi3): Likewise.
+
 Wed Apr 14 00:08:46 1999  Richard Henderson  <rth@cygnus.com>
 
        * i386.c (memory_address_length): New function.
index f54565e127d63af575e7e8d0c1948b597b6d012d..270172424b05b4e3e03ad8fd96fa00ddb46e4d17 100644 (file)
@@ -4721,7 +4721,13 @@ byte_xor_operation:
   [(set (match_operand:HI 0 "nonimmediate_operand" "=rm")
        (neg:HI (match_operand:HI 1 "nonimmediate_operand" "0")))]
   ""
-  "neg%W0 %0")
+  "*
+    if (REG_P (operands[0]) && i386_cc_probably_useless_p (insn))
+      {
+       CC_STATUS_INIT;
+       return AS1(neg%L0,%0);
+      }
+    return AS1(neg%W0,%0);")
 
 (define_insn "negqi2"
   [(set (match_operand:QI 0 "nonimmediate_operand" "=qm")
@@ -5053,11 +5059,30 @@ byte_xor_operation:
   "*
 {
   if (REG_P (operands[2]))
-    return AS2 (sal%W0,%b2,%0);
+    {
+      if (REG_P (operands[0]) && i386_cc_probably_useless_p (insn))
+        {
+          CC_STATUS_INIT;
+          return AS2 (sal%L0,%b2,%k0);
+        }
+      return AS2 (sal%W0,%b2,%0);
+    }
 
   if (REG_P (operands[0]) && operands[2] == const1_rtx)
-    return AS2 (add%W0,%0,%0);
+    {
+      if (i386_cc_probably_useless_p (insn))
+        {
+          CC_STATUS_INIT;
+          return AS2 (add%L0,%k0,%k0);
+        }
+      return AS2 (add%W0,%0,%0);
+    }
 
+  if (REG_P (operands[0]) && i386_cc_probably_useless_p (insn))
+    {
+      CC_STATUS_INIT;
+      return AS2 (sal%L0,%2,%k0);
+    }
   return AS2 (sal%W0,%2,%0);
 }")