diff options
author | Richard Henderson <rth@gcc.gnu.org> | 2000-04-09 13:26:42 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2000-04-09 13:26:42 -0700 |
commit | 3a3677ff46c5e086f59fdf7dc64e5eb09354bf25 (patch) | |
tree | 9ad462c37f855428cf12994c72358c73cc098313 /gcc/genrecog.c | |
parent | 00fdafefd637a8b5e8ca0751a3f2eb4cab5af665 (diff) | |
download | gcc-3a3677ff46c5e086f59fdf7dc64e5eb09354bf25.zip gcc-3a3677ff46c5e086f59fdf7dc64e5eb09354bf25.tar.gz gcc-3a3677ff46c5e086f59fdf7dc64e5eb09354bf25.tar.bz2 |
genrecog.c (pred): Update comparison_operator for the unordered operators.
* genrecog.c (pred): Update comparison_operator for the unordered
operators.
* config/i386/i386.c (no_comparison_operator): Disallow unordered
operators.
(fcmov_comparison_operator): Allow UNORDERED/ORDERED.
(uno_comparison_operator): New.
(put_condition_code): Handle UNORDERED/ORDERED.
(unsigned_comparison): Likewise.
(ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare.
(ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise.
(ix86_expand_fp_compare): Use them. Take scratch as argument,
update all callers. Handle all 8 unordered operators.
(ix86_expand_setcc): Lose the unordered argument, update all callers.
(ix86_expand_branch): Likewise. Don't fully expand fp branches.
* config/i386/i386.h (PREDICATE_CODES): Update.
* config/i386/i386-protos.h (ix86_expand_fp_compare): Declare.
(ix86_expand_branch, ix86_expand_setcc): Update.
* config/i386/i386.md (sunordered, sordered): New.
(suneq, sunge, sungt, sunle, sunlt, sltgt): New.
(bunordered, bordered): New.
(buneq, bunge, bungt, bunle, bunlt, bltgt): New.
(*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New.
(*fp_jcc_5, *fp_jcc_6, and splitters): New.
From-SVN: r33046
Diffstat (limited to 'gcc/genrecog.c')
-rw-r--r-- | gcc/genrecog.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/genrecog.c b/gcc/genrecog.c index c86b62a..3acf5b1 100644 --- a/gcc/genrecog.c +++ b/gcc/genrecog.c @@ -211,7 +211,9 @@ static struct pred_table {"pop_operand", {MEM}}, {"memory_operand", {SUBREG, MEM}}, {"indirect_operand", {SUBREG, MEM}}, - {"comparison_operator", {EQ, NE, LE, LT, GE, GT, LEU, LTU, GEU, GTU}}, + {"comparison_operator", {EQ, NE, LE, LT, GE, GT, LEU, LTU, GEU, GTU, + UNORDERED, ORDERED, UNEQ, UNGE, UNGT, UNLE, + UNLT, LTGT}}, {"mode_independent_operand", {CONST_INT, CONST_DOUBLE, CONST, SYMBOL_REF, LABEL_REF, SUBREG, REG, MEM}} }; |