i386.c (notice_update_cc): Integer conditional moves don't affect cc0.
authorJohn Wehle <john@feith.com>
Fri, 19 Jun 1998 01:20:42 +0000 (01:20 +0000)
committerJeff Law <law@gcc.gnu.org>
Fri, 19 Jun 1998 01:20:42 +0000 (19:20 -0600)
* i386.c (notice_update_cc): Integer conditional moves don't
affect cc0.

From-SVN: r20575

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

index 8267ebeefcb424dd771af9202794713934dfa659..131ee04f26e2941385f84432d2ad15065b257c7d 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 3e1338d1e5c506881888a4d7e1165429d158baf4..2479e036ac68a7c3ceb7546db245131b654f2d82 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))