+2004-03-11 Steve Ellcey <sje@cup.hp.com>
+
+ * 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 <roger@eyesopen.com>
* fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
#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)
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)
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");
#undef PROFILE_BEFORE_PROLOGUE
#define PROFILE_BEFORE_PROLOGUE 1
+/* Initialize library function table. */
+#undef TARGET_INIT_LIBFUNCS
+#define TARGET_INIT_LIBFUNCS ia64_init_libfuncs
+
\f
/* Switch on code for querying unit reservations. */