aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJohn David Anglin <danglin@gcc.gnu.org>2014-07-17 23:44:57 +0000
committerJohn David Anglin <danglin@gcc.gnu.org>2014-07-17 23:44:57 +0000
commit03cb409757ea6b76122996c5ca4c5c24a8417f68 (patch)
treeea1b964b7654801a1ca02c1ceee6c6b3d5a180fc /gcc
parenta41370902e01cdfea8bef6eb3a0bd43c4615360b (diff)
downloadgcc-03cb409757ea6b76122996c5ca4c5c24a8417f68.zip
gcc-03cb409757ea6b76122996c5ca4c5c24a8417f68.tar.gz
gcc-03cb409757ea6b76122996c5ca4c5c24a8417f68.tar.bz2
pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1...
* config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4. (HAVE_sync_compare_and_swapqi): Define. (HAVE_sync_compare_and_swaphi): Likewise. (HAVE_sync_compare_and_swapsi): Likewise. From-SVN: r212770
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/config/pa/pa-linux.h13
2 files changed, 19 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 85d72c4..535875a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2014-07-17 John David Anglin <danglin@gcc.gnu.org>
+
+ * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
+ __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
+ and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
+ (HAVE_sync_compare_and_swapqi): Define.
+ (HAVE_sync_compare_and_swaphi): Likewise.
+ (HAVE_sync_compare_and_swapsi): Likewise.
+
2014-07-17 Richard Sandiford <rdsandiford@googlemail.com>
* config/mips/p5600.md: Add missing cpu tests.
diff --git a/gcc/config/pa/pa-linux.h b/gcc/config/pa/pa-linux.h
index 399308a..3c3d51f 100644
--- a/gcc/config/pa/pa-linux.h
+++ b/gcc/config/pa/pa-linux.h
@@ -22,9 +22,6 @@ along with GCC; see the file COPYING3. If not see
#define TARGET_OS_CPP_BUILTINS() \
do \
{ \
- builtin_define ("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1"); \
- builtin_define ("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2"); \
- builtin_define ("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4"); \
GNU_USER_TARGET_OS_CPP_BUILTINS(); \
builtin_assert ("machine=bigendian"); \
} \
@@ -133,3 +130,13 @@ along with GCC; see the file COPYING3. If not see
#undef TARGET_SYNC_LIBCALL
#define TARGET_SYNC_LIBCALL 1
+
+/* The SYNC operations are implemented as library functions, not
+ INSN patterns. As a result, the HAVE defines for the patterns are
+ not defined. We need to define them to generate the corresponding
+ __GCC_HAVE_SYNC_COMPARE_AND_SWAP_* and __GCC_ATOMIC_*_LOCK_FREE
+ defines. */
+
+#define HAVE_sync_compare_and_swapqi 1
+#define HAVE_sync_compare_and_swaphi 1
+#define HAVE_sync_compare_and_swapsi 1