aboutsummaryrefslogtreecommitdiff
path: root/libatomic/configure.tgt
diff options
context:
space:
mode:
authorAndreas Krebbel <krebbel@linux.vnet.ibm.com>2018-03-09 12:32:22 +0000
committerAndreas Krebbel <krebbel@gcc.gnu.org>2018-03-09 12:32:22 +0000
commita4c6bd0821099f6b8c0f64a96ffd9d01a025c413 (patch)
treefbb5139f7467a70b6487265769a13e764a1e2823 /libatomic/configure.tgt
parentd04e6ed5ae7668dc8a68069cd456d278c59fd972 (diff)
downloadgcc-a4c6bd0821099f6b8c0f64a96ffd9d01a025c413.zip
gcc-a4c6bd0821099f6b8c0f64a96ffd9d01a025c413.tar.gz
gcc-a4c6bd0821099f6b8c0f64a96ffd9d01a025c413.tar.bz2
S/390: libatomic: Fix 16 byte atomic exchange
The compiler builtin will use the hardware instruction cdsg if the memory operand is properly aligned and will fall back to the library call otherwise. In case the compiler for one part is able to detect that the location is aligned and fails to do so for another usage of the hw instruction and the sw fall back would be mixed on the same memory location. To avoid this the library fall back also has to use the hardware instruction if possible. libatomic/ChangeLog: 2018-03-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * config/s390/exch_n.c: New file. * configure.tgt: Add the config directory for s390. From-SVN: r258384
Diffstat (limited to 'libatomic/configure.tgt')
-rw-r--r--libatomic/configure.tgt5
1 files changed, 5 insertions, 0 deletions
diff --git a/libatomic/configure.tgt b/libatomic/configure.tgt
index 807ef10..ea8c34f 100644
--- a/libatomic/configure.tgt
+++ b/libatomic/configure.tgt
@@ -129,6 +129,11 @@ case "${target}" in
config_path="${config_path} linux/arm posix"
;;
+ s390*-*-linux*)
+ # OS support for atomic primitives.
+ config_path="${config_path} s390 posix"
+ ;;
+
*-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu \
| *-*-netbsd* | *-*-freebsd* | *-*-openbsd* | *-*-dragonfly* \
| *-*-solaris2* | *-*-sysv4* | *-*-irix6* | *-*-osf* | *-*-hpux11* \