Commit c9034561 by Zack Weinberg

* 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
parent ce59b97a
2003-10-04 Zack Weinberg <zack@codesourcery.com>
* 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.
2003-10-04 Stephane Carrez <stcarrez@nerim.fr> 2003-10-04 Stephane Carrez <stcarrez@nerim.fr>
* config/m68hc11/t-m68hc11-gas (MULTILIB_MATCHES): m68hcs12 is * config/m68hc11/t-m68hc11-gas (MULTILIB_MATCHES): m68hcs12 is
...@@ -33,9 +74,9 @@ ...@@ -33,9 +74,9 @@
2003-10-03 Robert Bowdidge <bowdidge@apple.com> 2003-10-03 Robert Bowdidge <bowdidge@apple.com>
* ggc-page.c (ggc_pch_write_object): Replace fseek() with fwrite() in * ggc-page.c (ggc_pch_write_object): Replace fseek() with fwrite() in
PCH generation, avoiding too-frequent flushes when writing to NFS PCH generation, avoiding too-frequent flushes when writing to NFS
file system. file system.
2003-10-03 Ziemowit Laski <zlaski@apple.com> 2003-10-03 Ziemowit Laski <zlaski@apple.com>
...@@ -82,7 +123,7 @@ ...@@ -82,7 +123,7 @@
* config/mips/mips.md ("type" attr): Add new "prefetchx" value, * config/mips/mips.md ("type" attr): Add new "prefetchx" value,
update comments. update comments.
(prefetch_indexed_di, prefetch_indexed_si): New insns. (prefetch_indexed_di, prefetch_indexed_si): New insns.
2003-10-03 Jeff Sturm <jsturm@one-point.com> 2003-10-03 Jeff Sturm <jsturm@one-point.com>
Roger Sayle <roger@eyesopen.com> Roger Sayle <roger@eyesopen.com>
...@@ -123,7 +164,7 @@ ...@@ -123,7 +164,7 @@
operand's constraint letter to 'I'. operand's constraint letter to 'I'.
(prefetch_di_address): Likewise. (prefetch_di_address): Likewise.
(prefetch_si, prefetch_di): Set third operand to const0_rtx. (prefetch_si, prefetch_di): Set third operand to const0_rtx.
2003-10-02 Zack Weinberg <zack@codesourcery.com> 2003-10-02 Zack Weinberg <zack@codesourcery.com>
* system.h: Poison macros obsoleted by earlier patch. * system.h: Poison macros obsoleted by earlier patch.
......
...@@ -52,19 +52,19 @@ gofast_maybe_init_libfuncs (void) ...@@ -52,19 +52,19 @@ gofast_maybe_init_libfuncs (void)
libfuncs, we use our own functions, since GOFAST doesn't supply libfuncs, we use our own functions, since GOFAST doesn't supply
them. */ them. */
eqsf2_libfunc = init_one_libfunc ("fpcmp"); set_optab_libfunc (eq_optab, SFmode, "fpcmp");
nesf2_libfunc = init_one_libfunc ("fpcmp"); set_optab_libfunc (ne_optab, SFmode, "fpcmp");
gtsf2_libfunc = NULL_RTX; set_optab_libfunc (gt_optab, SFmode, 0);
gesf2_libfunc = NULL_RTX; set_optab_libfunc (ge_optab, SFmode, 0);
ltsf2_libfunc = init_one_libfunc ("fpcmp"); set_optab_libfunc (lt_optab, SFmode, "fpcmp");
lesf2_libfunc = init_one_libfunc ("fpcmp"); set_optab_libfunc (le_optab, SFmode, "fpcmp");
eqdf2_libfunc = init_one_libfunc ("dpcmp"); set_optab_libfunc (eq_optab, DFmode, "dpcmp");
nedf2_libfunc = init_one_libfunc ("dpcmp"); set_optab_libfunc (ne_optab, DFmode, "dpcmp");
gtdf2_libfunc = NULL_RTX; set_optab_libfunc (gt_optab, DFmode, 0);
gedf2_libfunc = NULL_RTX; set_optab_libfunc (ge_optab, DFmode, 0);
ltdf2_libfunc = init_one_libfunc ("dpcmp"); set_optab_libfunc (lt_optab, DFmode, "dpcmp");
ledf2_libfunc = init_one_libfunc ("dpcmp"); set_optab_libfunc (le_optab, DFmode, "dpcmp");
extendsfdf2_libfunc = init_one_libfunc ("fptodp"); extendsfdf2_libfunc = init_one_libfunc ("fptodp");
truncdfsf2_libfunc = init_one_libfunc ("dptofp"); truncdfsf2_libfunc = init_one_libfunc ("dptofp");
......
...@@ -8313,13 +8313,20 @@ ia64_hpux_init_libfuncs (void) ...@@ -8313,13 +8313,20 @@ ia64_hpux_init_libfuncs (void)
{ {
set_optab_libfunc (add_optab, TFmode, "_U_Qfadd"); set_optab_libfunc (add_optab, TFmode, "_U_Qfadd");
set_optab_libfunc (sub_optab, TFmode, "_U_Qfsub"); set_optab_libfunc (sub_optab, TFmode, "_U_Qfsub");
set_optab_libfunc (smul_optab, TFmode, "_Q_Qfmpy"); set_optab_libfunc (smul_optab, TFmode, "_U_Qfmpy");
set_optab_libfunc (sdiv_optab, TFmode, "_U_Qfdiv"); set_optab_libfunc (sdiv_optab, TFmode, "_U_Qfdiv");
set_optab_libfunc (smin_optab, TFmode, "_U_Qfmin"); set_optab_libfunc (smin_optab, TFmode, "_U_Qfmin");
set_optab_libfunc (smax_optab, TFmode, "_U_Qfmax"); set_optab_libfunc (smax_optab, TFmode, "_U_Qfmax");
set_optab_libfunc (abs_optab, TFmode, "_U_Qfabs"); set_optab_libfunc (abs_optab, TFmode, "_U_Qfabs");
set_optab_libfunc (neg_optab, TFmode, "_U_Qfneg"); set_optab_libfunc (neg_optab, TFmode, "_U_Qfneg");
set_optab_libfunc (eq_optab, TFmode, "_U_Qfeq");
set_optab_libfunc (ne_optab, TFmode, "_U_Qfne");
set_optab_libfunc (gt_optab, TFmode, "_U_Qfgt");
set_optab_libfunc (ge_optab, TFmode, "_U_Qfge");
set_optab_libfunc (lt_optab, TFmode, "_U_Qflt");
set_optab_libfunc (le_optab, TFmode, "_U_Qfle");
extendsftf2_libfunc = init_one_libfunc ("_U_Qfcnvff_sgl_to_quad"); extendsftf2_libfunc = init_one_libfunc ("_U_Qfcnvff_sgl_to_quad");
extenddftf2_libfunc = init_one_libfunc ("_U_Qfcnvff_dbl_to_quad"); extenddftf2_libfunc = init_one_libfunc ("_U_Qfcnvff_dbl_to_quad");
trunctfsf2_libfunc = init_one_libfunc ("_U_Qfcnvff_quad_to_sgl"); trunctfsf2_libfunc = init_one_libfunc ("_U_Qfcnvff_quad_to_sgl");
...@@ -8330,12 +8337,6 @@ ia64_hpux_init_libfuncs (void) ...@@ -8330,12 +8337,6 @@ ia64_hpux_init_libfuncs (void)
fixtfdi_libfunc = init_one_libfunc ("_U_Qfcnvfxt_quad_to_dbl"); fixtfdi_libfunc = init_one_libfunc ("_U_Qfcnvfxt_quad_to_dbl");
fixunstfsi_libfunc = init_one_libfunc ("_U_Qfcnvfxut_quad_to_sgl"); fixunstfsi_libfunc = init_one_libfunc ("_U_Qfcnvfxut_quad_to_sgl");
fixunstfdi_libfunc = init_one_libfunc ("_U_Qfcnvfxut_quad_to_dbl"); fixunstfdi_libfunc = init_one_libfunc ("_U_Qfcnvfxut_quad_to_dbl");
eqtf2_libfunc = init_one_libfunc ("_U_Qfeq");
netf2_libfunc = init_one_libfunc ("_U_Qfne");
gttf2_libfunc = init_one_libfunc ("_U_Qfgt");
getf2_libfunc = init_one_libfunc ("_U_Qfge");
lttf2_libfunc = init_one_libfunc ("_U_Qflt");
letf2_libfunc = init_one_libfunc ("_U_Qfle");
} }
/* Switch to the section to which we should output X. The only thing /* Switch to the section to which we should output X. The only thing
......
...@@ -9015,12 +9015,12 @@ mips_init_libfuncs (void) ...@@ -9015,12 +9015,12 @@ mips_init_libfuncs (void)
set_optab_libfunc (smul_optab, SFmode, "__mips16_mulsf3"); set_optab_libfunc (smul_optab, SFmode, "__mips16_mulsf3");
set_optab_libfunc (sdiv_optab, SFmode, "__mips16_divsf3"); set_optab_libfunc (sdiv_optab, SFmode, "__mips16_divsf3");
eqsf2_libfunc = init_one_libfunc ("__mips16_eqsf2"); set_optab_libfunc (eq_optab, SFmode, "__mips16_eqsf2");
nesf2_libfunc = init_one_libfunc ("__mips16_nesf2"); set_optab_libfunc (ne_optab, SFmode, "__mips16_nesf2");
gtsf2_libfunc = init_one_libfunc ("__mips16_gtsf2"); set_optab_libfunc (gt_optab, SFmode, "__mips16_gtsf2");
gesf2_libfunc = init_one_libfunc ("__mips16_gesf2"); set_optab_libfunc (ge_optab, SFmode, "__mips16_gesf2");
ltsf2_libfunc = init_one_libfunc ("__mips16_ltsf2"); set_optab_libfunc (lt_optab, SFmode, "__mips16_ltsf2");
lesf2_libfunc = init_one_libfunc ("__mips16_lesf2"); set_optab_libfunc (le_optab, SFmode, "__mips16_lesf2");
floatsisf_libfunc = init_one_libfunc ("__mips16_floatsisf"); floatsisf_libfunc = init_one_libfunc ("__mips16_floatsisf");
fixsfsi_libfunc = init_one_libfunc ("__mips16_fixsfsi"); fixsfsi_libfunc = init_one_libfunc ("__mips16_fixsfsi");
...@@ -9032,12 +9032,12 @@ mips_init_libfuncs (void) ...@@ -9032,12 +9032,12 @@ mips_init_libfuncs (void)
set_optab_libfunc (smul_optab, DFmode, "__mips16_muldf3"); set_optab_libfunc (smul_optab, DFmode, "__mips16_muldf3");
set_optab_libfunc (sdiv_optab, DFmode, "__mips16_divdf3"); set_optab_libfunc (sdiv_optab, DFmode, "__mips16_divdf3");
eqdf2_libfunc = init_one_libfunc ("__mips16_eqdf2"); set_optab_libfunc (eq_optab, DFmode, "__mips16_eqdf2");
nedf2_libfunc = init_one_libfunc ("__mips16_nedf2"); set_optab_libfunc (ne_optab, DFmode, "__mips16_nedf2");
gtdf2_libfunc = init_one_libfunc ("__mips16_gtdf2"); set_optab_libfunc (gt_optab, DFmode, "__mips16_gtdf2");
gedf2_libfunc = init_one_libfunc ("__mips16_gedf2"); set_optab_libfunc (ge_optab, DFmode, "__mips16_gedf2");
ltdf2_libfunc = init_one_libfunc ("__mips16_ltdf2"); set_optab_libfunc (lt_optab, DFmode, "__mips16_ltdf2");
ledf2_libfunc = init_one_libfunc ("__mips16_ledf2"); set_optab_libfunc (le_optab, DFmode, "__mips16_ledf2");
floatsidf_libfunc = init_one_libfunc ("__mips16_floatsidf"); floatsidf_libfunc = init_one_libfunc ("__mips16_floatsidf");
fixdfsi_libfunc = init_one_libfunc ("__mips16_fixdfsi"); fixdfsi_libfunc = init_one_libfunc ("__mips16_fixdfsi");
......
...@@ -4973,12 +4973,12 @@ pa_hpux_init_libfuncs (void) ...@@ -4973,12 +4973,12 @@ pa_hpux_init_libfuncs (void)
set_optab_libfunc (abs_optab, TFmode, "_U_Qfabs"); set_optab_libfunc (abs_optab, TFmode, "_U_Qfabs");
set_optab_libfunc (neg_optab, TFmode, "_U_Qfneg"); set_optab_libfunc (neg_optab, TFmode, "_U_Qfneg");
eqtf2_libfunc = init_one_libfunc ("_U_Qfeq"); set_optab_libfunc (eq_optab, TFmode, "_U_Qfeq");
netf2_libfunc = init_one_libfunc ("_U_Qfne"); set_optab_libfunc (ne_optab, TFmode, "_U_Qfne");
gttf2_libfunc = init_one_libfunc ("_U_Qfgt"); set_optab_libfunc (gt_optab, TFmode, "_U_Qfgt");
getf2_libfunc = init_one_libfunc ("_U_Qfge"); set_optab_libfunc (ge_optab, TFmode, "_U_Qfge");
lttf2_libfunc = init_one_libfunc ("_U_Qflt"); set_optab_libfunc (lt_optab, TFmode, "_U_Qflt");
letf2_libfunc = init_one_libfunc ("_U_Qfle"); set_optab_libfunc (le_optab, TFmode, "_U_Qfle");
extendsftf2_libfunc = init_one_libfunc ("_U_Qfcnvff_sgl_to_quad"); extendsftf2_libfunc = init_one_libfunc ("_U_Qfcnvff_sgl_to_quad");
extenddftf2_libfunc = init_one_libfunc ("_U_Qfcnvff_dbl_to_quad"); extenddftf2_libfunc = init_one_libfunc ("_U_Qfcnvff_dbl_to_quad");
......
...@@ -6779,25 +6779,24 @@ rs6000_init_libfuncs (void) ...@@ -6779,25 +6779,24 @@ rs6000_init_libfuncs (void)
if (!TARGET_HARD_FLOAT) if (!TARGET_HARD_FLOAT)
return; return;
if (TARGET_AIX) if (DEFAULT_ABI != ABI_V4)
{ {
/* Optabs entries for the int->float routines and quad FP if (TARGET_XCOFF && ! TARGET_POWER2 && ! TARGET_POWERPC)
operations using the standard AIX names. */
if (! TARGET_POWER2 && ! TARGET_POWERPC)
{ {
/* AIX library routines for float->int conversion. */
fixdfsi_libfunc = init_one_libfunc ("__itrunc"); fixdfsi_libfunc = init_one_libfunc ("__itrunc");
fixunsdfsi_libfunc = init_one_libfunc ("__uitrunc"); fixunsdfsi_libfunc = init_one_libfunc ("__uitrunc");
} }
/* Standard AIX/Darwin/64-bit SVR4 quad floating point routines. */
set_optab_libfunc (add_optab, TFmode, "_xlqadd"); set_optab_libfunc (add_optab, TFmode, "_xlqadd");
set_optab_libfunc (sub_optab, TFmode, "_xlqsub"); set_optab_libfunc (sub_optab, TFmode, "_xlqsub");
set_optab_libfunc (smul_optab, TFmode, "_xlqmul"); set_optab_libfunc (smul_optab, TFmode, "_xlqmul");
set_optab_libfunc (sdiv_optab, TFmode, "_xlqdiv"); set_optab_libfunc (sdiv_optab, TFmode, "_xlqdiv");
} }
else if (TARGET_ELF) else
{ {
/* Define library calls for quad FP operations. These are all /* 32-bit SVR4 quad floating point routines. */
part of the PowerPC 32bit ABI. */
set_optab_libfunc (add_optab, TFmode, "_q_add"); set_optab_libfunc (add_optab, TFmode, "_q_add");
set_optab_libfunc (sub_optab, TFmode, "_q_sub"); set_optab_libfunc (sub_optab, TFmode, "_q_sub");
...@@ -6807,12 +6806,13 @@ rs6000_init_libfuncs (void) ...@@ -6807,12 +6806,13 @@ rs6000_init_libfuncs (void)
if (TARGET_PPC_GPOPT || TARGET_POWER2) if (TARGET_PPC_GPOPT || TARGET_POWER2)
set_optab_libfunc (sqrt_optab, TFmode, "_q_sqrt"); set_optab_libfunc (sqrt_optab, TFmode, "_q_sqrt");
eqtf2_libfunc = init_one_libfunc ("_q_feq"); set_optab_libfunc (eq_optab, TFmode, "_q_feq");
netf2_libfunc = init_one_libfunc ("_q_fne"); set_optab_libfunc (ne_optab, TFmode, "_q_fne");
gttf2_libfunc = init_one_libfunc ("_q_fgt"); set_optab_libfunc (gt_optab, TFmode, "_q_fgt");
getf2_libfunc = init_one_libfunc ("_q_fge"); set_optab_libfunc (ge_optab, TFmode, "_q_fge");
lttf2_libfunc = init_one_libfunc ("_q_flt"); set_optab_libfunc (lt_optab, TFmode, "_q_flt");
letf2_libfunc = init_one_libfunc ("_q_fle"); set_optab_libfunc (le_optab, TFmode, "_q_fle");
trunctfsf2_libfunc = init_one_libfunc ("_q_qtos"); trunctfsf2_libfunc = init_one_libfunc ("_q_qtos");
trunctfdf2_libfunc = init_one_libfunc ("_q_qtod"); trunctfdf2_libfunc = init_one_libfunc ("_q_qtod");
extendsftf2_libfunc = init_one_libfunc ("_q_stoq"); extendsftf2_libfunc = init_one_libfunc ("_q_stoq");
......
...@@ -8424,12 +8424,12 @@ sparc_init_libfuncs (void) ...@@ -8424,12 +8424,12 @@ sparc_init_libfuncs (void)
if (TARGET_FPU) if (TARGET_FPU)
set_optab_libfunc (sqrt_optab, TFmode, "_Q_sqrt"); set_optab_libfunc (sqrt_optab, TFmode, "_Q_sqrt");
eqtf2_libfunc = init_one_libfunc ("_Q_feq"); set_optab_libfunc (eq_optab, TFmode, "_Q_feq");
netf2_libfunc = init_one_libfunc ("_Q_fne"); set_optab_libfunc (ne_optab, TFmode, "_Q_fne");
gttf2_libfunc = init_one_libfunc ("_Q_fgt"); set_optab_libfunc (gt_optab, TFmode, "_Q_fgt");
getf2_libfunc = init_one_libfunc ("_Q_fge"); set_optab_libfunc (ge_optab, TFmode, "_Q_fge");
lttf2_libfunc = init_one_libfunc ("_Q_flt"); set_optab_libfunc (lt_optab, TFmode, "_Q_flt");
letf2_libfunc = init_one_libfunc ("_Q_fle"); set_optab_libfunc (le_optab, TFmode, "_Q_fle");
trunctfsf2_libfunc = init_one_libfunc ("_Q_qtos"); trunctfsf2_libfunc = init_one_libfunc ("_Q_qtos");
trunctfdf2_libfunc = init_one_libfunc ("_Q_qtod"); trunctfdf2_libfunc = init_one_libfunc ("_Q_qtod");
......
...@@ -53,46 +53,6 @@ enum libfunc_index ...@@ -53,46 +53,6 @@ enum libfunc_index
LTI_unwind_sjlj_register, LTI_unwind_sjlj_register,
LTI_unwind_sjlj_unregister, LTI_unwind_sjlj_unregister,
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,
LTI_floatsisf, LTI_floatsisf,
LTI_floatdisf, LTI_floatdisf,
LTI_floattisf, LTI_floattisf,
...@@ -185,46 +145,6 @@ extern GTY(()) rtx libfunc_table[LTI_MAX]; ...@@ -185,46 +145,6 @@ extern GTY(()) rtx libfunc_table[LTI_MAX];
#define unwind_sjlj_unregister_libfunc \ #define unwind_sjlj_unregister_libfunc \
(libfunc_table[LTI_unwind_sjlj_unregister]) (libfunc_table[LTI_unwind_sjlj_unregister])
#define eqhf2_libfunc (libfunc_table[LTI_eqhf2])
#define nehf2_libfunc (libfunc_table[LTI_nehf2])
#define gthf2_libfunc (libfunc_table[LTI_gthf2])
#define gehf2_libfunc (libfunc_table[LTI_gehf2])
#define lthf2_libfunc (libfunc_table[LTI_lthf2])
#define lehf2_libfunc (libfunc_table[LTI_lehf2])
#define unordhf2_libfunc (libfunc_table[LTI_unordhf2])
#define eqsf2_libfunc (libfunc_table[LTI_eqsf2])
#define nesf2_libfunc (libfunc_table[LTI_nesf2])
#define gtsf2_libfunc (libfunc_table[LTI_gtsf2])
#define gesf2_libfunc (libfunc_table[LTI_gesf2])
#define ltsf2_libfunc (libfunc_table[LTI_ltsf2])
#define lesf2_libfunc (libfunc_table[LTI_lesf2])
#define unordsf2_libfunc (libfunc_table[LTI_unordsf2])
#define eqdf2_libfunc (libfunc_table[LTI_eqdf2])
#define nedf2_libfunc (libfunc_table[LTI_nedf2])
#define gtdf2_libfunc (libfunc_table[LTI_gtdf2])
#define gedf2_libfunc (libfunc_table[LTI_gedf2])
#define ltdf2_libfunc (libfunc_table[LTI_ltdf2])
#define ledf2_libfunc (libfunc_table[LTI_ledf2])
#define unorddf2_libfunc (libfunc_table[LTI_unorddf2])
#define eqxf2_libfunc (libfunc_table[LTI_eqxf2])
#define nexf2_libfunc (libfunc_table[LTI_nexf2])
#define gtxf2_libfunc (libfunc_table[LTI_gtxf2])
#define gexf2_libfunc (libfunc_table[LTI_gexf2])
#define ltxf2_libfunc (libfunc_table[LTI_ltxf2])
#define lexf2_libfunc (libfunc_table[LTI_lexf2])
#define unordxf2_libfunc (libfunc_table[LTI_unordxf2])
#define eqtf2_libfunc (libfunc_table[LTI_eqtf2])
#define netf2_libfunc (libfunc_table[LTI_netf2])
#define gttf2_libfunc (libfunc_table[LTI_gttf2])
#define getf2_libfunc (libfunc_table[LTI_getf2])
#define lttf2_libfunc (libfunc_table[LTI_lttf2])
#define letf2_libfunc (libfunc_table[LTI_letf2])
#define unordtf2_libfunc (libfunc_table[LTI_unordtf2])
#define floatsisf_libfunc (libfunc_table[LTI_floatsisf]) #define floatsisf_libfunc (libfunc_table[LTI_floatsisf])
#define floatdisf_libfunc (libfunc_table[LTI_floatdisf]) #define floatdisf_libfunc (libfunc_table[LTI_floatdisf])
#define floattisf_libfunc (libfunc_table[LTI_floattisf]) #define floattisf_libfunc (libfunc_table[LTI_floattisf])
......
...@@ -161,6 +161,15 @@ enum optab_index ...@@ -161,6 +161,15 @@ enum optab_index
/* tst insn; compare one operand against 0 */ /* tst insn; compare one operand against 0 */
OTI_tst, 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 */ /* String length */
OTI_strlen, OTI_strlen,
...@@ -243,6 +252,14 @@ extern GTY(()) optab optab_table[OTI_MAX]; ...@@ -243,6 +252,14 @@ extern GTY(()) optab optab_table[OTI_MAX];
#define ucmp_optab (optab_table[OTI_ucmp]) #define ucmp_optab (optab_table[OTI_ucmp])
#define tst_optab (optab_table[OTI_tst]) #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 strlen_optab (optab_table[OTI_strlen])
#define cbranch_optab (optab_table[OTI_cbranch]) #define cbranch_optab (optab_table[OTI_cbranch])
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment