aboutsummaryrefslogtreecommitdiff
path: root/gcc/genrecog.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@gcc.gnu.org>2000-04-09 13:26:42 -0700
committerRichard Henderson <rth@gcc.gnu.org>2000-04-09 13:26:42 -0700
commit3a3677ff46c5e086f59fdf7dc64e5eb09354bf25 (patch)
tree9ad462c37f855428cf12994c72358c73cc098313 /gcc/genrecog.c
parent00fdafefd637a8b5e8ca0751a3f2eb4cab5af665 (diff)
downloadgcc-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.c4
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}}
};