H A D | tsan_interface_atomic.cc | 33 mo = flags()->force_seq_cst_atomics ? (morder)mo_seq_cst : mo; \ 37 AtomicStatInc(thr, sizeof(*a), mo, StatAtomic##func); \ 38 ScopedAtomic sa(thr, callpc, a, mo, __func__); \ 72 morder mo, const char *func) 75 DPrintf("#%d: %s(%p, %d)\n", thr_->tid, func, a, mo); 85 static void AtomicStatInc(ThreadState *thr, uptr size, morder mo, StatType t) { argument 93 StatInc(thr, mo == mo_relaxed ? StatAtomicRelaxed 94 : mo == mo_consume ? StatAtomicConsume 95 : mo 71 ScopedAtomic(ThreadState *thr, uptr pc, const volatile void *a, morder mo, const char *func) argument 101 IsLoadOrder(morder mo) argument 106 IsStoreOrder(morder mo) argument 110 IsReleaseOrder(morder mo) argument 114 IsAcquireOrder(morder mo) argument 119 IsAcqRelOrder(morder mo) argument 259 to_mo(morder mo) argument 273 NoTsanAtomicLoad(const volatile T *a, morder mo) argument 278 NoTsanAtomicLoad(const volatile a128 *a, morder mo) argument 285 AtomicLoad(ThreadState *thr, uptr pc, const volatile T *a, morder mo) argument 303 NoTsanAtomicStore(volatile T *a, T v, morder mo) argument 308 NoTsanAtomicStore(volatile a128 *a, a128 v, morder mo) argument 315 AtomicStore(ThreadState *thr, uptr pc, volatile T *a, T v, morder mo) argument 338 AtomicRMW(ThreadState *thr, uptr pc, volatile T *a, T v, morder mo) argument 360 NoTsanAtomicExchange(volatile T *a, T v, morder mo) argument 365 NoTsanAtomicFetchAdd(volatile T *a, T v, morder mo) argument 370 NoTsanAtomicFetchSub(volatile T *a, T v, morder mo) argument 375 NoTsanAtomicFetchAnd(volatile T *a, T v, morder mo) argument 380 NoTsanAtomicFetchOr(volatile T *a, T v, morder mo) argument 385 NoTsanAtomicFetchXor(volatile T *a, T v, morder mo) argument 390 NoTsanAtomicFetchNand(volatile T *a, T v, morder mo) argument 395 AtomicExchange(ThreadState *thr, uptr pc, volatile T *a, T v, morder mo) argument 401 AtomicFetchAdd(ThreadState *thr, uptr pc, volatile T *a, T v, morder mo) argument 407 AtomicFetchSub(ThreadState *thr, uptr pc, volatile T *a, T v, morder mo) argument 413 AtomicFetchAnd(ThreadState *thr, uptr pc, volatile T *a, T v, morder mo) argument 419 AtomicFetchOr(ThreadState *thr, uptr pc, volatile T *a, T v, morder mo) argument 425 AtomicFetchXor(ThreadState *thr, uptr pc, volatile T *a, T v, morder mo) argument 431 AtomicFetchNand(ThreadState *thr, uptr pc, volatile T *a, T v, morder mo) argument 437 NoTsanAtomicCAS(volatile T *a, T *c, T v, morder mo, morder fmo) argument 442 NoTsanAtomicCAS(volatile a128 *a, a128 *c, a128 v, morder mo, morder fmo) argument 454 NoTsanAtomicCAS(volatile T *a, T c, T v, morder mo, morder fmo) argument 459 AtomicCAS(ThreadState *thr, uptr pc, volatile T *a, T *c, T v, morder mo, morder fmo) argument 492 AtomicCAS(ThreadState *thr, uptr pc, volatile T *a, T c, T v, morder mo, morder fmo) argument 498 NoTsanAtomicFence(morder mo) argument 502 AtomicFence(ThreadState *thr, uptr pc, morder mo) argument 509 __tsan_atomic8_load(const volatile a8 *a, morder mo) argument 514 __tsan_atomic16_load(const volatile a16 *a, morder mo) argument 519 __tsan_atomic32_load(const volatile a32 *a, morder mo) argument 524 __tsan_atomic64_load(const volatile a64 *a, morder mo) argument 530 __tsan_atomic128_load(const volatile a128 *a, morder mo) argument 536 __tsan_atomic8_store(volatile a8 *a, a8 v, morder mo) argument 541 __tsan_atomic16_store(volatile a16 *a, a16 v, morder mo) argument 546 __tsan_atomic32_store(volatile a32 *a, a32 v, morder mo) argument 551 __tsan_atomic64_store(volatile a64 *a, a64 v, morder mo) argument 557 __tsan_atomic128_store(volatile a128 *a, a128 v, morder mo) argument 563 __tsan_atomic8_exchange(volatile a8 *a, a8 v, morder mo) argument 568 __tsan_atomic16_exchange(volatile a16 *a, a16 v, morder mo) argument 573 __tsan_atomic32_exchange(volatile a32 *a, a32 v, morder mo) argument 578 __tsan_atomic64_exchange(volatile a64 *a, a64 v, morder mo) argument 584 __tsan_atomic128_exchange(volatile a128 *a, a128 v, morder mo) argument 590 __tsan_atomic8_fetch_add(volatile a8 *a, a8 v, morder mo) argument 595 __tsan_atomic16_fetch_add(volatile a16 *a, a16 v, morder mo) argument 600 __tsan_atomic32_fetch_add(volatile a32 *a, a32 v, morder mo) argument 605 __tsan_atomic64_fetch_add(volatile a64 *a, a64 v, morder mo) argument 611 __tsan_atomic128_fetch_add(volatile a128 *a, a128 v, morder mo) argument 617 __tsan_atomic8_fetch_sub(volatile a8 *a, a8 v, morder mo) argument 622 __tsan_atomic16_fetch_sub(volatile a16 *a, a16 v, morder mo) argument 627 __tsan_atomic32_fetch_sub(volatile a32 *a, a32 v, morder mo) argument 632 __tsan_atomic64_fetch_sub(volatile a64 *a, a64 v, morder mo) argument 638 __tsan_atomic128_fetch_sub(volatile a128 *a, a128 v, morder mo) argument 644 __tsan_atomic8_fetch_and(volatile a8 *a, a8 v, morder mo) argument 649 __tsan_atomic16_fetch_and(volatile a16 *a, a16 v, morder mo) argument 654 __tsan_atomic32_fetch_and(volatile a32 *a, a32 v, morder mo) argument 659 __tsan_atomic64_fetch_and(volatile a64 *a, a64 v, morder mo) argument 665 __tsan_atomic128_fetch_and(volatile a128 *a, a128 v, morder mo) argument 671 __tsan_atomic8_fetch_or(volatile a8 *a, a8 v, morder mo) argument 676 __tsan_atomic16_fetch_or(volatile a16 *a, a16 v, morder mo) argument 681 __tsan_atomic32_fetch_or(volatile a32 *a, a32 v, morder mo) argument 686 __tsan_atomic64_fetch_or(volatile a64 *a, a64 v, morder mo) argument 692 __tsan_atomic128_fetch_or(volatile a128 *a, a128 v, morder mo) argument 698 __tsan_atomic8_fetch_xor(volatile a8 *a, a8 v, morder mo) argument 703 __tsan_atomic16_fetch_xor(volatile a16 *a, a16 v, morder mo) argument 708 __tsan_atomic32_fetch_xor(volatile a32 *a, a32 v, morder mo) argument 713 __tsan_atomic64_fetch_xor(volatile a64 *a, a64 v, morder mo) argument 719 __tsan_atomic128_fetch_xor(volatile a128 *a, a128 v, morder mo) argument 725 __tsan_atomic8_fetch_nand(volatile a8 *a, a8 v, morder mo) argument 730 __tsan_atomic16_fetch_nand(volatile a16 *a, a16 v, morder mo) argument 735 __tsan_atomic32_fetch_nand(volatile a32 *a, a32 v, morder mo) argument 740 __tsan_atomic64_fetch_nand(volatile a64 *a, a64 v, morder mo) argument 746 __tsan_atomic128_fetch_nand(volatile a128 *a, a128 v, morder mo) argument 752 __tsan_atomic8_compare_exchange_strong(volatile a8 *a, a8 *c, a8 v, morder mo, morder fmo) argument 758 __tsan_atomic16_compare_exchange_strong(volatile a16 *a, a16 *c, a16 v, morder mo, morder fmo) argument 764 __tsan_atomic32_compare_exchange_strong(volatile a32 *a, a32 *c, a32 v, morder mo, morder fmo) argument 770 __tsan_atomic64_compare_exchange_strong(volatile a64 *a, a64 *c, a64 v, morder mo, morder fmo) argument 777 __tsan_atomic128_compare_exchange_strong(volatile a128 *a, a128 *c, a128 v, morder mo, morder fmo) argument 784 __tsan_atomic8_compare_exchange_weak(volatile a8 *a, a8 *c, a8 v, morder mo, morder fmo) argument 790 __tsan_atomic16_compare_exchange_weak(volatile a16 *a, a16 *c, a16 v, morder mo, morder fmo) argument 796 __tsan_atomic32_compare_exchange_weak(volatile a32 *a, a32 *c, a32 v, morder mo, morder fmo) argument 802 __tsan_atomic64_compare_exchange_weak(volatile a64 *a, a64 *c, a64 v, morder mo, morder fmo) argument 809 __tsan_atomic128_compare_exchange_weak(volatile a128 *a, a128 *c, a128 v, morder mo, morder fmo) argument 816 __tsan_atomic8_compare_exchange_val(volatile a8 *a, a8 c, a8 v, morder mo, morder fmo) argument 822 __tsan_atomic16_compare_exchange_val(volatile a16 *a, a16 c, a16 v, morder mo, morder fmo) argument 828 __tsan_atomic32_compare_exchange_val(volatile a32 *a, a32 c, a32 v, morder mo, morder fmo) argument 834 __tsan_atomic64_compare_exchange_val(volatile a64 *a, a64 c, a64 v, morder mo, morder fmo) argument 841 __tsan_atomic128_compare_exchange_val(volatile a128 *a, a128 c, a128 v, morder mo, morder fmo) argument 848 __tsan_atomic_thread_fence(morder mo) argument 854 __tsan_atomic_signal_fence(morder mo) argument [all...] |