diff options
author | Zack Weinberg <zack@gcc.gnu.org> | 2003-10-04 21:36:08 +0000 |
---|---|---|
committer | Zack Weinberg <zack@gcc.gnu.org> | 2003-10-04 21:36:08 +0000 |
commit | c9034561031a91eb1bb00c94c4d3d1b9bdf5d7e4 (patch) | |
tree | f6324710f59b8320a13b6d0d5d1869cf5e937d30 /gcc/optabs.h | |
parent | ce59b97aeeec8d9cc9754a29b88081b8db4323dc (diff) | |
download | gcc-c9034561031a91eb1bb00c94c4d3d1b9bdf5d7e4.tar.gz |
* libfuncs.h
(LTI_eqhf2, LTI_nehf2, LTI_gthf2, LTI_gehf2, LTI_lthf2)
(LTI_lehf2, LTI_unordhf2, LTI_eqsf2, LTI_nesf2, LTI_gtsf2)
(LTI_gesf2, LTI_ltsf2, LTI_lesf2, LTI_unordsf2, LTI_eqdf2)
(LTI_nedf2, LTI_gtdf2, LTI_gedf2, LTI_ltdf2, LTI_ledf2)
(LTI_unorddf2, LTI_eqxf2, LTI_nexf2, LTI_gtxf2, LTI_gexf2)
(LTI_ltxf2, LTI_lexf2, LTI_unordxf2, LTI_eqtf2, LTI_netf2)
(LTI_gttf2, LTI_getf2, LTI_lttf2, LTI_letf2, LTI_unordtf2)
(eqhf2_libfunc, nehf2_libfunc, gthf2_libfunc, gehf2_libfunc)
(lthf2_libfunc, lehf2_libfunc, unordhf2_libfunc, eqsf2_libfunc)
(nesf2_libfunc, gtsf2_libfunc, gesf2_libfunc, ltsf2_libfunc)
(lesf2_libfunc, unordsf2_libfunc eqdf2_libfunc, nedf2_libfunc)
(gtdf2_libfunc, gedf2_libfunc, ltdf2_libfunc, ledf2_libfunc)
(unorddf2_libfunc eqxf2_libfunc, nexf2_libfunc, gtxf2_libfunc)
(gexf2_libfunc, ltxf2_libfunc, lexf2_libfunc, unordxf2_libfunc
(eqtf2_libfunc, netf2_libfunc, gttf2_libfunc, getf2_libfunc)
(lttf2_libfunc, letf2_libfunc, unordtf2_libfunc):
Delete.
* optabs.h (OTI_eq, OTI_ne, OTI_gt, OTI_ge, OTI_lt, OTI_le)
(OTI_unord, eq_optab, ne_optab, gt_optab, ge_optab, lt_optab)
(le_optab, unord_optab): New.
* optabs.c (prepare_float_lib_cmp): Rewrite. Get the libfuncs
from the code_to_optab table, not a giant switch; use
swap_condition; do widening only if a comparison function that
we can call exists in a wider mode, not if a cmp_optab insn or
libfunc exists in a wider mode; call protect_from_queue
exactly once on each operand.
(init_optabs): Initialize the new optabs, not the deleted libfuncs.
* config/gofast.h, config/ia64/ia64.c, config/mips/mips.c
* config/pa/pa.c, config/rs6000/rs6000.c, config/sparc/sparc.c:
Set floating point comparison libfuncs using set_optab_libfunc
on the appropriate optab.
* config/ia64/ia64.c (ia64_hpux_init_libfuncs): Fix typo.
* config/rs6000/rs6000.c (rs6000_init_libfuncs): Correct ABI
selector conditionals.
From-SVN: r72101
Diffstat (limited to 'gcc/optabs.h')
-rw-r--r-- | gcc/optabs.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/gcc/optabs.h b/gcc/optabs.h index dc515b34529..02c0af5d33a 100644 --- a/gcc/optabs.h +++ b/gcc/optabs.h @@ -161,6 +161,15 @@ enum optab_index /* tst insn; compare one operand against 0 */ OTI_tst, + /* Floating point comparison optabs - used primarily for libfuncs */ + OTI_eq, + OTI_ne, + OTI_gt, + OTI_ge, + OTI_lt, + OTI_le, + OTI_unord, + /* String length */ OTI_strlen, @@ -243,6 +252,14 @@ extern GTY(()) optab optab_table[OTI_MAX]; #define ucmp_optab (optab_table[OTI_ucmp]) #define tst_optab (optab_table[OTI_tst]) +#define eq_optab (optab_table[OTI_eq]) +#define ne_optab (optab_table[OTI_ne]) +#define gt_optab (optab_table[OTI_gt]) +#define ge_optab (optab_table[OTI_ge]) +#define lt_optab (optab_table[OTI_lt]) +#define le_optab (optab_table[OTI_le]) +#define unord_optab (optab_table[OTI_unord]) + #define strlen_optab (optab_table[OTI_strlen]) #define cbranch_optab (optab_table[OTI_cbranch]) |