summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexey Samsonov <vonosmas@gmail.com>2014-05-22 22:02:38 +0000
committerAlexey Samsonov <vonosmas@gmail.com>2014-05-22 22:02:38 +0000
commit958a59b77750702a4cda83c1dcf3efc26747d391 (patch)
treeb85d3984f2a8a21fe3ad8a27567c3ce0494c0c46
parentba46cdb21ffbf9018c818220992dcc0494195348 (diff)
downloadbcm5719-llvm-958a59b77750702a4cda83c1dcf3efc26747d391.tar.gz
bcm5719-llvm-958a59b77750702a4cda83c1dcf3efc26747d391.zip
[TSan] ifdef out certain functions if 128-bit ints are not supported.
llvm-svn: 209476
-rw-r--r--compiler-rt/lib/tsan/rtl/tsan_interface_atomic.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/compiler-rt/lib/tsan/rtl/tsan_interface_atomic.cc b/compiler-rt/lib/tsan/rtl/tsan_interface_atomic.cc
index 5472b2bdf1a..2de0c4f11b3 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_interface_atomic.cc
+++ b/compiler-rt/lib/tsan/rtl/tsan_interface_atomic.cc
@@ -274,10 +274,12 @@ static T NoTsanAtomicLoad(const volatile T *a, morder mo) {
return atomic_load(to_atomic(a), to_mo(mo));
}
+#if __TSAN_HAS_INT128
static a128 NoTsanAtomicLoad(const volatile a128 *a, morder mo) {
SpinMutexLock lock(&mutex128);
return *a;
}
+#endif
template<typename T>
static T AtomicLoad(ThreadState *thr, uptr pc, const volatile T *a,
@@ -302,10 +304,12 @@ static void NoTsanAtomicStore(volatile T *a, T v, morder mo) {
atomic_store(to_atomic(a), v, to_mo(mo));
}
+#if __TSAN_HAS_INT128
static void NoTsanAtomicStore(volatile a128 *a, a128 v, morder mo) {
SpinMutexLock lock(&mutex128);
*a = v;
}
+#endif
template<typename T>
static void AtomicStore(ThreadState *thr, uptr pc, volatile T *a, T v,
@@ -434,6 +438,7 @@ static bool NoTsanAtomicCAS(volatile T *a, T *c, T v, morder mo, morder fmo) {
return atomic_compare_exchange_strong(to_atomic(a), c, v, to_mo(mo));
}
+#if __TSAN_HAS_INT128
static bool NoTsanAtomicCAS(volatile a128 *a, a128 *c, a128 v,
morder mo, morder fmo) {
a128 old = *c;
@@ -443,6 +448,7 @@ static bool NoTsanAtomicCAS(volatile a128 *a, a128 *c, a128 v,
*c = cur;
return false;
}
+#endif
template<typename T>
static bool NoTsanAtomicCAS(volatile T *a, T c, T v, morder mo, morder fmo) {
OpenPOWER on IntegriCloud