00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #undef INTEL_EXTENDED_IEEE_FORMAT
00023 #define INTEL_EXTENDED_IEEE_FORMAT 0
00024
00025
00026
00027
00028 #define ADDTF3_LIBCALL "_U_Qfadd"
00029 #define SUBTF3_LIBCALL "_U_Qfsub"
00030 #define MULTF3_LIBCALL "_U_Qfmpy"
00031 #define DIVTF3_LIBCALL "_U_Qfdiv"
00032 #define NEGTF2_LIBCALL "_U_Qfneg"
00033 #define ABSTF2_LIBCALL "_U_Qfabs"
00034 #define SMINTF3_LIBCALL "_U_Qfmin"
00035 #define SMAXTF3_LIBCALL "_U_Qfmax"
00036 #define EXTENDSFTF2_LIBCALL "_U_Qfcnvff_sgl_to_quad"
00037 #define EXTENDDFTF2_LIBCALL "_U_Qfcnvff_dbl_to_quad"
00038 #define TRUNCTFSF2_LIBCALL "_U_Qfcnvff_quad_to_sgl"
00039 #define TRUNCTFDF2_LIBCALL "_U_Qfcnvff_quad_to_dbl"
00040 #define FLOATSITF2_LIBCALL "_U_Qfcnvxf_sgl_to_quad"
00041 #define FLOATDITF2_LIBCALL "_U_Qfcnvxf_dbl_to_quad"
00042 #define FIX_TRUNCTFSI2_LIBCALL "_U_Qfcnvfxt_quad_to_sgl"
00043 #define FIX_TRUNCTFDI2_LIBCALL "_U_Qfcnvfxt_quad_to_dbl"
00044 #define FIXUNS_TRUNCTFSI2_LIBCALL "_U_Qfcnvfxut_quad_to_sgl"
00045 #define FIXUNS_TRUNCTFDI2_LIBCALL "_U_Qfcnvfxut_quad_to_dbl"
00046 #define EQTF2_LIBCALL "_U_Qfeq"
00047 #define NETF2_LIBCALL "_U_Qfne"
00048 #define GTTF2_LIBCALL "_U_Qfgt"
00049 #define GETF2_LIBCALL "_U_Qfge"
00050 #define LTTF2_LIBCALL "_U_Qflt"
00051 #define LETF2_LIBCALL "_U_Qfle"
00052
00053
00054 #undef INIT_TARGET_OPTABS
00055 #define INIT_TARGET_OPTABS \
00056 do { \
00057 add_optab->handlers[(int) TFmode].libfunc \
00058 = gen_rtx_SYMBOL_REF (Pmode, ADDTF3_LIBCALL); \
00059 sub_optab->handlers[(int) TFmode].libfunc \
00060 = gen_rtx_SYMBOL_REF (Pmode, SUBTF3_LIBCALL); \
00061 smul_optab->handlers[(int) TFmode].libfunc \
00062 = gen_rtx_SYMBOL_REF (Pmode, MULTF3_LIBCALL); \
00063 sdiv_optab->handlers[(int) TFmode].libfunc \
00064 = gen_rtx_SYMBOL_REF (Pmode, DIVTF3_LIBCALL); \
00065 smin_optab->handlers[(int) TFmode].libfunc \
00066 = gen_rtx_SYMBOL_REF (Pmode, SMINTF3_LIBCALL); \
00067 smax_optab->handlers[(int) TFmode].libfunc \
00068 = gen_rtx_SYMBOL_REF (Pmode, SMAXTF3_LIBCALL); \
00069 abs_optab->handlers[(int) TFmode].libfunc \
00070 = gen_rtx_SYMBOL_REF (Pmode, ABSTF2_LIBCALL); \
00071 neg_optab->handlers[(int) TFmode].libfunc \
00072 = gen_rtx_SYMBOL_REF (Pmode, NEGTF2_LIBCALL); \
00073 extendsftf2_libfunc = gen_rtx_SYMBOL_REF (Pmode, EXTENDSFTF2_LIBCALL); \
00074 extenddftf2_libfunc = gen_rtx_SYMBOL_REF (Pmode, EXTENDDFTF2_LIBCALL); \
00075 trunctfsf2_libfunc = gen_rtx_SYMBOL_REF (Pmode, TRUNCTFSF2_LIBCALL); \
00076 trunctfdf2_libfunc = gen_rtx_SYMBOL_REF (Pmode, TRUNCTFDF2_LIBCALL); \
00077 floatsitf_libfunc = gen_rtx_SYMBOL_REF (Pmode, FLOATSITF2_LIBCALL); \
00078 floatditf_libfunc = gen_rtx_SYMBOL_REF (Pmode, FLOATDITF2_LIBCALL); \
00079 fixtfsi_libfunc = gen_rtx_SYMBOL_REF (Pmode, FIX_TRUNCTFSI2_LIBCALL);\
00080 fixtfdi_libfunc = gen_rtx_SYMBOL_REF (Pmode, FIX_TRUNCTFDI2_LIBCALL);\
00081 fixunstfsi_libfunc = gen_rtx_SYMBOL_REF (Pmode, FIXUNS_TRUNCTFSI2_LIBCALL); \
00082 fixunstfdi_libfunc = gen_rtx_SYMBOL_REF (Pmode, FIXUNS_TRUNCTFDI2_LIBCALL); \
00083 eqtf2_libfunc = gen_rtx_SYMBOL_REF (Pmode, EQTF2_LIBCALL); \
00084 netf2_libfunc = gen_rtx_SYMBOL_REF (Pmode, NETF2_LIBCALL); \
00085 gttf2_libfunc = gen_rtx_SYMBOL_REF (Pmode, GTTF2_LIBCALL); \
00086 getf2_libfunc = gen_rtx_SYMBOL_REF (Pmode, GETF2_LIBCALL); \
00087 lttf2_libfunc = gen_rtx_SYMBOL_REF (Pmode, LTTF2_LIBCALL); \
00088 letf2_libfunc = gen_rtx_SYMBOL_REF (Pmode, LETF2_LIBCALL); \
00089 \
00090 INIT_SUBTARGET_OPTABS; \
00091 } while (0)
00092
00093
00094 #define INIT_SUBTARGET_OPTABS
00095
00096
00097
00098
00099 #define FLOAT_LIB_COMPARE_RETURNS_BOOL(MODE, COMPARISON) ((MODE) == TFmode)