#define US_SOFTWARE_GOFAST
#define INIT_GOFAST_OPTABS \
do { \
GOFAST_CLEAR_NEG_FLOAT_OPTAB; \
GOFAST_RENAME_LIBCALLS; \
} while (0)
#define GOFAST_CLEAR_NEG_FLOAT_OPTAB \
do { \
int mode; \
for (mode = SFmode; (int) mode <= (int) TFmode; \
mode = (enum machine_mode) ((int) mode + 1)) \
neg_optab->handlers[(int) mode].libfunc = NULL_RTX; \
} while (0)
#define GOFAST_RENAME_LIBCALLS \
add_optab->handlers[(int) SFmode].libfunc = gen_rtx (SYMBOL_REF, Pmode, "fpadd"); \
add_optab->handlers[(int) DFmode].libfunc = gen_rtx (SYMBOL_REF, Pmode, "dpadd"); \
sub_optab->handlers[(int) SFmode].libfunc = gen_rtx (SYMBOL_REF, Pmode, "fpsub"); \
sub_optab->handlers[(int) DFmode].libfunc = gen_rtx (SYMBOL_REF, Pmode, "dpsub"); \
smul_optab->handlers[(int) SFmode].libfunc = gen_rtx (SYMBOL_REF, Pmode, "fpmul"); \
smul_optab->handlers[(int) DFmode].libfunc = gen_rtx (SYMBOL_REF, Pmode, "dpmul"); \
flodiv_optab->handlers[(int) SFmode].libfunc = gen_rtx (SYMBOL_REF, Pmode, "fpdiv"); \
flodiv_optab->handlers[(int) DFmode].libfunc = gen_rtx (SYMBOL_REF, Pmode, "dpdiv"); \
cmp_optab->handlers[(int) SFmode].libfunc = gen_rtx (SYMBOL_REF, Pmode, "fpcmp"); \
cmp_optab->handlers[(int) DFmode].libfunc = gen_rtx (SYMBOL_REF, Pmode, "dpcmp"); \
\
extendsfdf2_libfunc = gen_rtx (SYMBOL_REF, Pmode, "fptodp"); \
truncdfsf2_libfunc = gen_rtx (SYMBOL_REF, Pmode, "dptofp"); \
\
eqsf2_libfunc = gen_rtx (SYMBOL_REF, Pmode, "fpcmp"); \
nesf2_libfunc = gen_rtx (SYMBOL_REF, Pmode, "fpcmp"); \
gtsf2_libfunc = gen_rtx (SYMBOL_REF, Pmode, "fpcmp"); \
gesf2_libfunc = gen_rtx (SYMBOL_REF, Pmode, "fpcmp"); \
ltsf2_libfunc = gen_rtx (SYMBOL_REF, Pmode, "fpcmp"); \
lesf2_libfunc = gen_rtx (SYMBOL_REF, Pmode, "fpcmp"); \
\
eqdf2_libfunc = gen_rtx (SYMBOL_REF, Pmode, "dpcmp"); \
nedf2_libfunc = gen_rtx (SYMBOL_REF, Pmode, "dpcmp"); \
gtdf2_libfunc = gen_rtx (SYMBOL_REF, Pmode, "dpcmp"); \
gedf2_libfunc = gen_rtx (SYMBOL_REF, Pmode, "dpcmp"); \
ltdf2_libfunc = gen_rtx (SYMBOL_REF, Pmode, "dpcmp"); \
ledf2_libfunc = gen_rtx (SYMBOL_REF, Pmode, "dpcmp"); \
\
eqxf2_libfunc = NULL_RTX; \
nexf2_libfunc = NULL_RTX; \
gtxf2_libfunc = NULL_RTX; \
gexf2_libfunc = NULL_RTX; \
ltxf2_libfunc = NULL_RTX; \
lexf2_libfunc = NULL_RTX; \
\
eqtf2_libfunc = NULL_RTX; \
netf2_libfunc = NULL_RTX; \
gttf2_libfunc = NULL_RTX; \
getf2_libfunc = NULL_RTX; \
lttf2_libfunc = NULL_RTX; \
letf2_libfunc = NULL_RTX; \
\
floatsisf_libfunc = gen_rtx (SYMBOL_REF, Pmode, "sitofp"); \
floatsidf_libfunc = gen_rtx (SYMBOL_REF, Pmode, "litodp"); \
fixsfsi_libfunc = gen_rtx (SYMBOL_REF, Pmode, "fptosi"); \
fixdfsi_libfunc = gen_rtx (SYMBOL_REF, Pmode, "dptoli"); \
fixunssfsi_libfunc = gen_rtx (SYMBOL_REF, Pmode, "fptoui"); \
fixunsdfsi_libfunc = gen_rtx (SYMBOL_REF, Pmode, "dptoul"); \