From dab37c689ea85e9beb7d60fe4898deab048d00d2 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Sat, 12 Nov 2011 09:17:45 -0800 Subject: [PATCH] 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 --- gcc/ChangeLog | 3 +++ gcc/config/sh/linux.h | 4 ++++ gcc/config/sh/sh.c | 8 ++++++++ 3 files changed, 15 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 592ea0ad4c3..4a9a5d346d2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ 2011-11-12 Richard Henderson + * 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.h (TARGET_SYNC_LIBCALL): New default. * config/pa/pa.c (pa_init_libfuncs): Use init_sync_libfuncs. diff --git a/gcc/config/sh/linux.h b/gcc/config/sh/linux.h index edfd99be652..7a75341cbd5 100644 --- a/gcc/config/sh/linux.h +++ b/gcc/config/sh/linux.h @@ -131,3 +131,7 @@ along with GCC; see the file COPYING3. If not see #define SH_DIV_STRATEGY_DEFAULT SH_DIV_CALL2 #undef SH_DIV_STR_FOR_SIZE #define SH_DIV_STR_FOR_SIZE "call2" + +/* Install the __sync libcalls. */ +#undef TARGET_INIT_LIBFUNCS +#define TARGET_INIT_LIBFUNCS sh_init_sync_libfuncs diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c index 03c3c48c0e4..2545a63e724 100644 --- a/gcc/config/sh/sh.c +++ b/gcc/config/sh/sh.c @@ -302,6 +302,8 @@ static void sh_trampoline_init (rtx, tree, rtx); static rtx sh_trampoline_adjust_address (rtx); static void sh_conditional_register_usage (void); 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[] = { @@ -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; +static void +sh_init_sync_libfuncs (void) +{ + init_sync_libfuncs (UNITS_PER_WORD); +} + #include "gt-sh.h" -- 2.30.2