Patchwork [4/4] sh-linux: Install __sync libfuncs.

login
register
mail settings
Submitter Richard Henderson
Date Nov. 11, 2011, 11:32 p.m.
Message ID <1321054334-21865-5-git-send-email-rth@redhat.com>
Download mbox | patch
Permalink /patch/125313/
State New
Headers show

Comments

Richard Henderson - Nov. 11, 2011, 11:32 p.m.
Cc: Kaz Kojima <kkojima@gcc.gnu.org>
---
 gcc/config/sh/linux.h |    4 ++++
 gcc/config/sh/sh.c    |    8 ++++++++
 2 files changed, 12 insertions(+), 0 deletions(-)

Patch

diff --git a/gcc/config/sh/linux.h b/gcc/config/sh/linux.h
index edfd99b..7a75341 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 03c3c48..2545a63 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"