aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOleg Endo <olegendo@gcc.gnu.org>2012-03-07 22:06:25 +0000
committerKaz Kojima <kkojima@gcc.gnu.org>2012-03-07 22:06:25 +0000
commitbed9e870f865f35c6411490c1e7bc137d389629b (patch)
treef5f8aa5f9fb0fa5c3f539acb0ccb158a924f56e0
parentd111e30ef36f4c1f8e398fa48242eacb4b5da1b5 (diff)
downloadgcc-bed9e870f865f35c6411490c1e7bc137d389629b.zip
gcc-bed9e870f865f35c6411490c1e7bc137d389629b.tar.gz
gcc-bed9e870f865f35c6411490c1e7bc137d389629b.tar.bz2
re PR target/52503 (sh-wrs-vxworks: too many target masks)
PR target/52503 * config/sh/sh.opt (msoft-atomic): Use Var instead of Mask. * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_SOFT_ATOMIC. (SUBTARGET_OVERRIDE_OPTIONS): Define. Co-Authored-By: Kaz Kojima <kkojima@gcc.gnu.org> From-SVN: r185081
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/config/sh/linux.h15
-rw-r--r--gcc/config/sh/sh.opt2
3 files changed, 22 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f240c15..397ad10 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2012-03-07 Oleg Endo <olegendo@gcc.gnu.org>
+ Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR target/52503
+ * config/sh/sh.opt (msoft-atomic): Use Var instead of Mask.
+ * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_SOFT_ATOMIC.
+ (SUBTARGET_OVERRIDE_OPTIONS): Define.
+
2012-03-07 Uros Bizjak <ubizjak@gmail.com>
* config/i386/predicates.md (x86_64_zext_general_operand): New.
diff --git a/gcc/config/sh/linux.h b/gcc/config/sh/linux.h
index a5c2734..904a782 100644
--- a/gcc/config/sh/linux.h
+++ b/gcc/config/sh/linux.h
@@ -1,5 +1,6 @@
/* Definitions for SH running Linux-based GNU systems using ELF
- Copyright (C) 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2010, 2011
+ Copyright (C) 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2010, 2011,
+ 2012
Free Software Foundation, Inc.
Contributed by Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
@@ -41,7 +42,7 @@ along with GCC; see the file COPYING3. If not see
#undef TARGET_DEFAULT
#define TARGET_DEFAULT \
(TARGET_CPU_DEFAULT | MASK_USERMODE | TARGET_ENDIAN_DEFAULT \
- | TARGET_OPT_DEFAULT | MASK_SOFT_ATOMIC)
+ | TARGET_OPT_DEFAULT)
#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
@@ -135,3 +136,13 @@ along with GCC; see the file COPYING3. If not see
/* Install the __sync libcalls. */
#undef TARGET_INIT_LIBFUNCS
#define TARGET_INIT_LIBFUNCS sh_init_sync_libfuncs
+
+#undef SUBTARGET_OVERRIDE_OPTIONS
+#define SUBTARGET_OVERRIDE_OPTIONS \
+ do \
+ { \
+ /* Defaulting to -msoft-atomic. */ \
+ if (global_options_set.x_TARGET_SOFT_ATOMIC == 0) \
+ TARGET_SOFT_ATOMIC = 1; \
+ } \
+ while (0)
diff --git a/gcc/config/sh/sh.opt b/gcc/config/sh/sh.opt
index 37b9990..de23d5e 100644
--- a/gcc/config/sh/sh.opt
+++ b/gcc/config/sh/sh.opt
@@ -320,7 +320,7 @@ Target Mask(HITACHI) MaskExists
Follow Renesas (formerly Hitachi) / SuperH calling conventions
msoft-atomic
-Target Report Mask(SOFT_ATOMIC)
+Target Report Var(TARGET_SOFT_ATOMIC)
Use software atomic sequences supported by kernel
menable-tas