diff options
author | John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | 2011-11-06 19:12:54 +0000 |
---|---|---|
committer | John David Anglin <danglin@gcc.gnu.org> | 2011-11-06 19:12:54 +0000 |
commit | 50bbeefb4cb2ce65fd1a2f6ffb16aa4f779101aa (patch) | |
tree | 0c2bfe1139d798570203a53daf4e88db5d55fddf /gcc | |
parent | ba3aa0e6c7552cceaefe7cb23db2daf40a32de00 (diff) | |
download | gcc-50bbeefb4cb2ce65fd1a2f6ffb16aa4f779101aa.zip gcc-50bbeefb4cb2ce65fd1a2f6ffb16aa4f779101aa.tar.gz gcc-50bbeefb4cb2ce65fd1a2f6ffb16aa4f779101aa.tar.bz2 |
pa.c (pa_hpux_init_libfuncs): Rename to pa_init_libfuncs.
* config/pa/pa.c (pa_hpux_init_libfuncs): Rename to pa_init_libfuncs.
Remove dependence of declaration and target define on definition of
HPUX_LONG_DOUBLE_LIBRARY. Update implementation.
From-SVN: r181038
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/pa/pa.c | 95 |
2 files changed, 56 insertions, 45 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1c2f1bc..2a03361 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-11-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> + + * config/pa/pa.c (pa_hpux_init_libfuncs): Rename to pa_init_libfuncs. + Remove dependence of declaration and target define on definition of + HPUX_LONG_DOUBLE_LIBRARY. Update implementation. + 2011-11-06 Andrew Macleod <amacleod@redhat.com> Richard Henderson <rth@redhat.com> Aldy Hernandez <aldyh@redhat.com> diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index 6d2f67d..66574ba 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -155,9 +155,7 @@ static void output_deferred_profile_counters (void) ATTRIBUTE_UNUSED; #ifdef ASM_OUTPUT_EXTERNAL_REAL static void pa_hpux_file_end (void); #endif -#if HPUX_LONG_DOUBLE_LIBRARY -static void pa_hpux_init_libfuncs (void); -#endif +static void pa_init_libfuncs (void); static rtx pa_struct_value_rtx (tree, int); static bool pa_pass_by_reference (cumulative_args_t, enum machine_mode, const_tree, bool); @@ -316,10 +314,8 @@ static size_t n_deferred_plabels = 0; #undef TARGET_MACHINE_DEPENDENT_REORG #define TARGET_MACHINE_DEPENDENT_REORG pa_reorg -#if HPUX_LONG_DOUBLE_LIBRARY #undef TARGET_INIT_LIBFUNCS -#define TARGET_INIT_LIBFUNCS pa_hpux_init_libfuncs -#endif +#define TARGET_INIT_LIBFUNCS pa_init_libfuncs #undef TARGET_PROMOTE_FUNCTION_MODE #define TARGET_PROMOTE_FUNCTION_MODE pa_promote_function_mode @@ -5542,47 +5538,56 @@ output_deferred_plabels (void) } } -#if HPUX_LONG_DOUBLE_LIBRARY -/* Initialize optabs to point to HPUX long double emulation routines. */ +/* Initialize optabs to point to emulation routines. */ + static void -pa_hpux_init_libfuncs (void) -{ - set_optab_libfunc (add_optab, TFmode, "_U_Qfadd"); - set_optab_libfunc (sub_optab, TFmode, "_U_Qfsub"); - set_optab_libfunc (smul_optab, TFmode, "_U_Qfmpy"); - set_optab_libfunc (sdiv_optab, TFmode, "_U_Qfdiv"); - set_optab_libfunc (smin_optab, TFmode, "_U_Qmin"); - set_optab_libfunc (smax_optab, TFmode, "_U_Qfmax"); - set_optab_libfunc (sqrt_optab, TFmode, "_U_Qfsqrt"); - set_optab_libfunc (abs_optab, TFmode, "_U_Qfabs"); - 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"); - set_optab_libfunc (unord_optab, TFmode, "_U_Qfunord"); - - set_conv_libfunc (sext_optab, TFmode, SFmode, "_U_Qfcnvff_sgl_to_quad"); - set_conv_libfunc (sext_optab, TFmode, DFmode, "_U_Qfcnvff_dbl_to_quad"); - set_conv_libfunc (trunc_optab, SFmode, TFmode, "_U_Qfcnvff_quad_to_sgl"); - set_conv_libfunc (trunc_optab, DFmode, TFmode, "_U_Qfcnvff_quad_to_dbl"); - - set_conv_libfunc (sfix_optab, SImode, TFmode, TARGET_64BIT - ? "__U_Qfcnvfxt_quad_to_sgl" - : "_U_Qfcnvfxt_quad_to_sgl"); - set_conv_libfunc (sfix_optab, DImode, TFmode, "_U_Qfcnvfxt_quad_to_dbl"); - set_conv_libfunc (ufix_optab, SImode, TFmode, "_U_Qfcnvfxt_quad_to_usgl"); - set_conv_libfunc (ufix_optab, DImode, TFmode, "_U_Qfcnvfxt_quad_to_udbl"); - - set_conv_libfunc (sfloat_optab, TFmode, SImode, "_U_Qfcnvxf_sgl_to_quad"); - set_conv_libfunc (sfloat_optab, TFmode, DImode, "_U_Qfcnvxf_dbl_to_quad"); - set_conv_libfunc (ufloat_optab, TFmode, SImode, "_U_Qfcnvxf_usgl_to_quad"); - set_conv_libfunc (ufloat_optab, TFmode, DImode, "_U_Qfcnvxf_udbl_to_quad"); +pa_init_libfuncs (void) +{ + if (HPUX_LONG_DOUBLE_LIBRARY) + { + set_optab_libfunc (add_optab, TFmode, "_U_Qfadd"); + set_optab_libfunc (sub_optab, TFmode, "_U_Qfsub"); + set_optab_libfunc (smul_optab, TFmode, "_U_Qfmpy"); + set_optab_libfunc (sdiv_optab, TFmode, "_U_Qfdiv"); + set_optab_libfunc (smin_optab, TFmode, "_U_Qmin"); + set_optab_libfunc (smax_optab, TFmode, "_U_Qfmax"); + set_optab_libfunc (sqrt_optab, TFmode, "_U_Qfsqrt"); + set_optab_libfunc (abs_optab, TFmode, "_U_Qfabs"); + 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"); + set_optab_libfunc (unord_optab, TFmode, "_U_Qfunord"); + + set_conv_libfunc (sext_optab, TFmode, SFmode, "_U_Qfcnvff_sgl_to_quad"); + set_conv_libfunc (sext_optab, TFmode, DFmode, "_U_Qfcnvff_dbl_to_quad"); + set_conv_libfunc (trunc_optab, SFmode, TFmode, "_U_Qfcnvff_quad_to_sgl"); + set_conv_libfunc (trunc_optab, DFmode, TFmode, "_U_Qfcnvff_quad_to_dbl"); + + set_conv_libfunc (sfix_optab, SImode, TFmode, + TARGET_64BIT ? "__U_Qfcnvfxt_quad_to_sgl" + : "_U_Qfcnvfxt_quad_to_sgl"); + set_conv_libfunc (sfix_optab, DImode, TFmode, + "_U_Qfcnvfxt_quad_to_dbl"); + set_conv_libfunc (ufix_optab, SImode, TFmode, + "_U_Qfcnvfxt_quad_to_usgl"); + set_conv_libfunc (ufix_optab, DImode, TFmode, + "_U_Qfcnvfxt_quad_to_udbl"); + + set_conv_libfunc (sfloat_optab, TFmode, SImode, + "_U_Qfcnvxf_sgl_to_quad"); + set_conv_libfunc (sfloat_optab, TFmode, DImode, + "_U_Qfcnvxf_dbl_to_quad"); + set_conv_libfunc (ufloat_optab, TFmode, SImode, + "_U_Qfcnvxf_usgl_to_quad"); + set_conv_libfunc (ufloat_optab, TFmode, DImode, + "_U_Qfcnvxf_udbl_to_quad"); + } } -#endif /* HP's millicode routines mean something special to the assembler. Keep track of which ones we have used. */ |