(extzv, and its recognizer): If width is 32, don't set CC_NOT_NEGATIVE.
authorrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 31 Oct 1993 23:26:07 +0000 (23:26 +0000)
committerrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 31 Oct 1993 23:26:07 +0000 (23:26 +0000)
If width is variable, clear the CC status.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@5958 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/config/m68k/m68k.md

index 4464427..1de4c57 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\";
 }")