]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for __GCC_HAVE_SYNC_COMPARE_AND_S...
authorJohn David Anglin <danglin@gcc.gnu.org>
Thu, 17 Jul 2014 23:44:57 +0000 (23:44 +0000)
committerJohn David Anglin <danglin@gcc.gnu.org>
Thu, 17 Jul 2014 23:44:57 +0000 (23:44 +0000)
* 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

gcc/ChangeLog
gcc/config/pa/pa-linux.h

index 85d72c48c843bbc39b0a4ea5c7beaee9881e2598..535875a6d8bbe5b37e1c4aab07f397ef931b5ad6 100644 (file)
@@ -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.
index 399308ab43ff9765a77c4cf4d6fab82ee1d22569..3c3d51fb3374e6b253f8a418dc2b7d9229e21e94 100644 (file)
@@ -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