i386.c (fcmov_comparison_operator): Check for CCFPmode or CCFPUmode instead of CCmode.
authorRichard Henderson <rth@redhat.com>
Wed, 1 Nov 2000 01:52:52 +0000 (17:52 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Wed, 1 Nov 2000 01:52:52 +0000 (17:52 -0800)
        * config/i386/i386.c (fcmov_comparison_operator): Check for
        CCFPmode or CCFPUmode instead of CCmode.
        (ix86_expand_fp_movcc): Call ix86_expand_setcc for most
        unordered operations as well.

From-SVN: r37179

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

index 25004ba22753c61aa806411b5001060e1059a8f2..750c1c2a2ba15699fc05a5ba0494a6b1324fd0e4 100644 (file)
@@ -1,3 +1,10 @@
+2000-10-31  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/i386.c (fcmov_comparison_operator): Check for
+       CCFPmode or CCFPUmode instead of CCmode.
+       (ix86_expand_fp_movcc): Call ix86_expand_setcc for most
+       unordered operations as well.
+
 2000-10-31  Richard Henderson  <rth@redhat.com>
 
        * c-semantics.c (genrtl_do_stmt): Use integer_zerop instead
index b27edaaf8119d2b257ec77209f16ea4048ef1364..396df6eb7954386ca85ff2ab57d47e4a401693ea 100644 (file)
@@ -1339,7 +1339,7 @@ fcmov_comparison_operator (op, mode)
     case EQ: case NE:
       return 1;
     case LTU: case GTU: case LEU: case ORDERED: case UNORDERED: case GEU:
-      if (inmode == CCmode)
+      if (inmode == CCFPmode || inmode == CCFPUmode)
        return 1;
       return 0;
     default:
@@ -5600,6 +5600,12 @@ ix86_expand_fp_movcc (operands)
     case LE:
     case GE:
     case GT:
+    case UNEQ:
+    case UNGE:
+    case UNGT:
+    case UNLE:
+    case UNLT:
+    case LTGT:
       tmp = gen_reg_rtx (QImode);
       ix86_expand_setcc (code, tmp);
       code = NE;