From: Steve Ellcey Date: Thu, 11 Mar 2004 19:21:19 +0000 (+0000) Subject: hpux.h (TARGET_INIT_LIBFUNCS): Add undef. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1f7aa7cdd65d774a0735ca485546510f907ec5ef;p=gcc.git hpux.h (TARGET_INIT_LIBFUNCS): Add undef. * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef. * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define. * config/ia64/ia64.c (ia64_init_libfuncs): New. (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs. From-SVN: r79339 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index dcaa0b67b49..10a741753c0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2004-03-11 Steve Ellcey + + * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef. + * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define. + * config/ia64/ia64.c (ia64_init_libfuncs): New. + (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs. + 2004-03-11 Roger Sayle * fold-const.c (negate_expr_p) : We can optimize diff --git a/gcc/config/ia64/hpux.h b/gcc/config/ia64/hpux.h index 97cdd3fd5b2..877bb5d292c 100644 --- a/gcc/config/ia64/hpux.h +++ b/gcc/config/ia64/hpux.h @@ -202,6 +202,7 @@ do { \ #undef TARGET_C99_FUNCTIONS #define TARGET_C99_FUNCTIONS 1 +#undef TARGET_INIT_LIBFUNCS #define TARGET_INIT_LIBFUNCS ia64_hpux_init_libfuncs #define FLOAT_LIB_COMPARE_RETURNS_BOOL(MODE, COMPARISON) ((MODE) == TFmode) diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c index d7513ff4a3d..6b90aa843c8 100644 --- a/gcc/config/ia64/ia64.c +++ b/gcc/config/ia64/ia64.c @@ -261,6 +261,8 @@ static void ia64_hpux_add_extern_decl (tree decl) ATTRIBUTE_UNUSED; static void ia64_hpux_file_end (void) ATTRIBUTE_UNUSED; +static void ia64_init_libfuncs (void) + ATTRIBUTE_UNUSED; static void ia64_hpux_init_libfuncs (void) ATTRIBUTE_UNUSED; static void ia64_vms_init_libfuncs (void) @@ -8747,11 +8749,25 @@ ia64_hpux_file_end (void) extern_func_head = 0; } +/* Set SImode div/mod functions, init_integral_libfuncs only initializes + modes of word_mode and larger. */ + +static void +ia64_init_libfuncs (void) +{ + set_optab_libfunc (sdiv_optab, SImode, "__divsi3"); + set_optab_libfunc (udiv_optab, SImode, "__udivsi3"); + set_optab_libfunc (smod_optab, SImode, "__modsi3"); + set_optab_libfunc (umod_optab, SImode, "__umodsi3"); +} + /* Rename all the TFmode libfuncs using the HPUX conventions. */ static void ia64_hpux_init_libfuncs (void) { + ia64_init_libfuncs (); + set_optab_libfunc (add_optab, TFmode, "_U_Qfadd"); set_optab_libfunc (sub_optab, TFmode, "_U_Qfsub"); set_optab_libfunc (smul_optab, TFmode, "_U_Qfmpy"); diff --git a/gcc/config/ia64/ia64.h b/gcc/config/ia64/ia64.h index 69a2954fa56..29f78c43a0e 100644 --- a/gcc/config/ia64/ia64.h +++ b/gcc/config/ia64/ia64.h @@ -2381,6 +2381,10 @@ enum fetchop_code { #undef PROFILE_BEFORE_PROLOGUE #define PROFILE_BEFORE_PROLOGUE 1 +/* Initialize library function table. */ +#undef TARGET_INIT_LIBFUNCS +#define TARGET_INIT_LIBFUNCS ia64_init_libfuncs + /* Switch on code for querying unit reservations. */