diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 25004ba22753c61aa806411b5001060e1059a8f2..750c1c2a2ba15699fc05a5ba0494a6b1324fd0e4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index b27edaaf8119d2b257ec77209f16ea4048ef1364..396df6eb7954386ca85ff2ab57d47e4a401693ea 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -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;