Commit dab37c68 by Richard Henderson Committed by Richard Henderson

sh-linux: Install __sync libfuncs.

        * config/sh/linux.h (TARGET_INIT_LIBFUNCS): New.
        * config/sh/sh.c (sh_init_sync_libfuncs): New.

From-SVN: r181322
parent 306133e3
2011-11-12 Richard Henderson <rth@redhat.com> 2011-11-12 Richard Henderson <rth@redhat.com>
* config/sh/linux.h (TARGET_INIT_LIBFUNCS): New.
* config/sh/sh.c (sh_init_sync_libfuncs): New.
* config/pa/pa-linux.h (TARGET_SYNC_LIBCALL): New. * config/pa/pa-linux.h (TARGET_SYNC_LIBCALL): New.
* config/pa/pa.h (TARGET_SYNC_LIBCALL): New default. * config/pa/pa.h (TARGET_SYNC_LIBCALL): New default.
* config/pa/pa.c (pa_init_libfuncs): Use init_sync_libfuncs. * config/pa/pa.c (pa_init_libfuncs): Use init_sync_libfuncs.
...@@ -131,3 +131,7 @@ along with GCC; see the file COPYING3. If not see ...@@ -131,3 +131,7 @@ along with GCC; see the file COPYING3. If not see
#define SH_DIV_STRATEGY_DEFAULT SH_DIV_CALL2 #define SH_DIV_STRATEGY_DEFAULT SH_DIV_CALL2
#undef SH_DIV_STR_FOR_SIZE #undef SH_DIV_STR_FOR_SIZE
#define SH_DIV_STR_FOR_SIZE "call2" #define SH_DIV_STR_FOR_SIZE "call2"
/* Install the __sync libcalls. */
#undef TARGET_INIT_LIBFUNCS
#define TARGET_INIT_LIBFUNCS sh_init_sync_libfuncs
...@@ -303,6 +303,8 @@ static rtx sh_trampoline_adjust_address (rtx); ...@@ -303,6 +303,8 @@ static rtx sh_trampoline_adjust_address (rtx);
static void sh_conditional_register_usage (void); static void sh_conditional_register_usage (void);
static bool sh_legitimate_constant_p (enum machine_mode, rtx); static bool sh_legitimate_constant_p (enum machine_mode, rtx);
static void sh_init_sync_libfuncs (void) ATTRIBUTE_UNUSED;
static const struct attribute_spec sh_attribute_table[] = static const struct attribute_spec sh_attribute_table[] =
{ {
/* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler, /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
...@@ -12499,4 +12501,10 @@ sh_legitimate_constant_p (enum machine_mode mode, rtx x) ...@@ -12499,4 +12501,10 @@ sh_legitimate_constant_p (enum machine_mode mode, rtx x)
enum sh_divide_strategy_e sh_div_strategy = SH_DIV_STRATEGY_DEFAULT; enum sh_divide_strategy_e sh_div_strategy = SH_DIV_STRATEGY_DEFAULT;
static void
sh_init_sync_libfuncs (void)
{
init_sync_libfuncs (UNITS_PER_WORD);
}
#include "gt-sh.h" #include "gt-sh.h"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment