hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
authorSteve Ellcey <sje@cup.hp.com>
Thu, 11 Mar 2004 19:21:19 +0000 (19:21 +0000)
committerSteve Ellcey <sje@gcc.gnu.org>
Thu, 11 Mar 2004 19:21:19 +0000 (19:21 +0000)
* 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

gcc/ChangeLog
gcc/config/ia64/hpux.h
gcc/config/ia64/ia64.c
gcc/config/ia64/ia64.h

index dcaa0b67b4938d537c94a6c54397e0b7333124f7..10a741753c0bbdc91b201d13116b2556ed275bfa 100644 (file)
@@ -1,3 +1,10 @@
+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
index 97cdd3fd5b2d5f02a5315c51ce95bc802be22a6c..877bb5d292cc835ac44f00ca2a9ae8ad0150082e 100644 (file)
@@ -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)
index d7513ff4a3dc8d5fe3f34b35bdba6d336d1b900b..6b90aa843c8625856d0f781a6285f1f9de4d564f 100644 (file)
@@ -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");
index 69a2954fa561cc9b0e60aaa79514318c5d5a9821..29f78c43a0edf3a61fe75d3476ea7316367cb704 100644 (file)
@@ -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
+
 \f
 
 /* Switch on code for querying unit reservations.  */