OSDN Git Service

* i386.c (notice_update_cc): Integer conditional moves don't
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 19 Jun 1998 01:20:42 +0000 (01:20 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 19 Jun 1998 01:20:42 +0000 (01:20 +0000)
affect cc0.

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

gcc/ChangeLog
gcc/config/i386/i386.c

index 8267ebe..131ee04 100644 (file)
@@ -1,5 +1,8 @@
 Fri Jun 19 02:10:10 1998  John Wehle  (john@feith.com)
 
+       * i386.c (notice_update_cc): Integer conditional moves don't
+       affect cc0.
+
        * i386.md (movsfcc, movdfcc, movxfcc): Use emit_store_flag
        to support LT, LE, GE, and GT signed integer comparisons.
        (movsfcc+1, movsfcc+2, movdfcc+1, movdfcc+2,
index 3e1338d..2479e03 100644 (file)
@@ -3596,7 +3596,9 @@ notice_update_cc (exp)
         (Note that moving a constant 0 or 1 MAY set the cc's).  */
       if (REG_P (SET_DEST (exp))
          && (REG_P (SET_SRC (exp)) || GET_CODE (SET_SRC (exp)) == MEM
-             || GET_RTX_CLASS (GET_CODE (SET_SRC (exp))) == '<'))
+             || GET_RTX_CLASS (GET_CODE (SET_SRC (exp))) == '<'
+             || (GET_CODE (SET_SRC (exp)) == IF_THEN_ELSE
+                 && GET_MODE_CLASS (GET_MODE (SET_DEST (exp))) == MODE_INT)))
        {
          if (cc_status.value1
              && reg_overlap_mentioned_p (SET_DEST (exp), cc_status.value1))