(extzv, and its recognizer): If width is 32, don't set CC_NOT_NEGATIVE.
authorRichard Stallman <rms@gnu.org>
Sun, 31 Oct 1993 23:26:07 +0000 (23:26 +0000)
committerRichard Stallman <rms@gnu.org>
Sun, 31 Oct 1993 23:26:07 +0000 (23:26 +0000)
If width is variable, clear the CC status.

From-SVN: r5958

gcc/config/m68k/m68k.md

index 4464427b7efe4df9962c1ed1d45be09e18504f30..1de4c570e9aff5026936a137c5a526a48ad25dbb 100644 (file)
   "TARGET_68020 && TARGET_BITFIELD"
   "*
 {
-  cc_status.flags |= CC_NOT_NEGATIVE;
+  if (GET_CODE (operands[2]) == CONST_INT)
+    {
+      if (INTVAL (operands[2]) != 32)
+       cc_status.flags |= CC_NOT_NEGATIVE;
+    }
+  else
+    {
+      CC_STATUS_INIT;
+    }
   return \"bfextu %1{%b3:%b2},%0\";
 }")
 
   "TARGET_68020 && TARGET_BITFIELD"
   "*
 {
-  cc_status.flags |= CC_NOT_NEGATIVE;
+  if (GET_CODE (operands[2]) == CONST_INT)
+    {
+      if (INTVAL (operands[2]) != 32)
+       cc_status.flags |= CC_NOT_NEGATIVE;
+    }
+  else
+    {
+      CC_STATUS_INIT;
+    }
   return \"bfextu %1{%b3:%b2},%0\";
 }")