/work/obj-fuzz/dist/include/mozilla/Atomics.h
Line | Count | Source (jump to first uncovered line) |
1 | | /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
2 | | /* vim: set ts=8 sts=2 et sw=2 tw=80: */ |
3 | | /* This Source Code Form is subject to the terms of the Mozilla Public |
4 | | * License, v. 2.0. If a copy of the MPL was not distributed with this |
5 | | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
6 | | |
7 | | /* |
8 | | * Implements (almost always) lock-free atomic operations. The operations here |
9 | | * are a subset of that which can be found in C++11's <atomic> header, with a |
10 | | * different API to enforce consistent memory ordering constraints. |
11 | | * |
12 | | * Anyone caught using |volatile| for inter-thread memory safety needs to be |
13 | | * sent a copy of this header and the C++11 standard. |
14 | | */ |
15 | | |
16 | | #ifndef mozilla_Atomics_h |
17 | | #define mozilla_Atomics_h |
18 | | |
19 | | #include "mozilla/Assertions.h" |
20 | | #include "mozilla/Attributes.h" |
21 | | #include "mozilla/Compiler.h" |
22 | | #include "mozilla/RecordReplay.h" |
23 | | #include "mozilla/TypeTraits.h" |
24 | | |
25 | | #include <atomic> |
26 | | |
27 | | #include <stdint.h> |
28 | | |
29 | | namespace mozilla { |
30 | | |
31 | | /** |
32 | | * An enum of memory ordering possibilities for atomics. |
33 | | * |
34 | | * Memory ordering is the observable state of distinct values in memory. |
35 | | * (It's a separate concept from atomicity, which concerns whether an |
36 | | * operation can ever be observed in an intermediate state. Don't |
37 | | * conflate the two!) Given a sequence of operations in source code on |
38 | | * memory, it is *not* always the case that, at all times and on all |
39 | | * cores, those operations will appear to have occurred in that exact |
40 | | * sequence. First, the compiler might reorder that sequence, if it |
41 | | * thinks another ordering will be more efficient. Second, the CPU may |
42 | | * not expose so consistent a view of memory. CPUs will often perform |
43 | | * their own instruction reordering, above and beyond that performed by |
44 | | * the compiler. And each core has its own memory caches, and accesses |
45 | | * (reads and writes both) to "memory" may only resolve to out-of-date |
46 | | * cache entries -- not to the "most recently" performed operation in |
47 | | * some global sense. Any access to a value that may be used by |
48 | | * multiple threads, potentially across multiple cores, must therefore |
49 | | * have a memory ordering imposed on it, for all code on all |
50 | | * threads/cores to have a sufficiently coherent worldview. |
51 | | * |
52 | | * http://gcc.gnu.org/wiki/Atomic/GCCMM/AtomicSync and |
53 | | * http://en.cppreference.com/w/cpp/atomic/memory_order go into more |
54 | | * detail on all this, including examples of how each mode works. |
55 | | * |
56 | | * Note that for simplicity and practicality, not all of the modes in |
57 | | * C++11 are supported. The missing C++11 modes are either subsumed by |
58 | | * the modes we provide below, or not relevant for the CPUs we support |
59 | | * in Gecko. These three modes are confusing enough as it is! |
60 | | */ |
61 | | enum MemoryOrdering { |
62 | | /* |
63 | | * Relaxed ordering is the simplest memory ordering: none at all. |
64 | | * When the result of a write is observed, nothing may be inferred |
65 | | * about other memory. Writes ostensibly performed "before" on the |
66 | | * writing thread may not yet be visible. Writes performed "after" on |
67 | | * the writing thread may already be visible, if the compiler or CPU |
68 | | * reordered them. (The latter can happen if reads and/or writes get |
69 | | * held up in per-processor caches.) Relaxed ordering means |
70 | | * operations can always use cached values (as long as the actual |
71 | | * updates to atomic values actually occur, correctly, eventually), so |
72 | | * it's usually the fastest sort of atomic access. For this reason, |
73 | | * *it's also the most dangerous kind of access*. |
74 | | * |
75 | | * Relaxed ordering is good for things like process-wide statistics |
76 | | * counters that don't need to be consistent with anything else, so |
77 | | * long as updates themselves are atomic. (And so long as any |
78 | | * observations of that value can tolerate being out-of-date -- if you |
79 | | * need some sort of up-to-date value, you need some sort of other |
80 | | * synchronizing operation.) It's *not* good for locks, mutexes, |
81 | | * reference counts, etc. that mediate access to other memory, or must |
82 | | * be observably consistent with other memory. |
83 | | * |
84 | | * x86 architectures don't take advantage of the optimization |
85 | | * opportunities that relaxed ordering permits. Thus it's possible |
86 | | * that using relaxed ordering will "work" on x86 but fail elsewhere |
87 | | * (ARM, say, which *does* implement non-sequentially-consistent |
88 | | * relaxed ordering semantics). Be extra-careful using relaxed |
89 | | * ordering if you can't easily test non-x86 architectures! |
90 | | */ |
91 | | Relaxed, |
92 | | |
93 | | /* |
94 | | * When an atomic value is updated with ReleaseAcquire ordering, and |
95 | | * that new value is observed with ReleaseAcquire ordering, prior |
96 | | * writes (atomic or not) are also observable. What ReleaseAcquire |
97 | | * *doesn't* give you is any observable ordering guarantees for |
98 | | * ReleaseAcquire-ordered operations on different objects. For |
99 | | * example, if there are two cores that each perform ReleaseAcquire |
100 | | * operations on separate objects, each core may or may not observe |
101 | | * the operations made by the other core. The only way the cores can |
102 | | * be synchronized with ReleaseAcquire is if they both |
103 | | * ReleaseAcquire-access the same object. This implies that you can't |
104 | | * necessarily describe some global total ordering of ReleaseAcquire |
105 | | * operations. |
106 | | * |
107 | | * ReleaseAcquire ordering is good for (as the name implies) atomic |
108 | | * operations on values controlling ownership of things: reference |
109 | | * counts, mutexes, and the like. However, if you are thinking about |
110 | | * using these to implement your own locks or mutexes, you should take |
111 | | * a good, hard look at actual lock or mutex primitives first. |
112 | | */ |
113 | | ReleaseAcquire, |
114 | | |
115 | | /* |
116 | | * When an atomic value is updated with SequentiallyConsistent |
117 | | * ordering, all writes observable when the update is observed, just |
118 | | * as with ReleaseAcquire ordering. But, furthermore, a global total |
119 | | * ordering of SequentiallyConsistent operations *can* be described. |
120 | | * For example, if two cores perform SequentiallyConsistent operations |
121 | | * on separate objects, one core will observably perform its update |
122 | | * (and all previous operations will have completed), then the other |
123 | | * core will observably perform its update (and all previous |
124 | | * operations will have completed). (Although those previous |
125 | | * operations aren't themselves ordered -- they could be intermixed, |
126 | | * or ordered if they occur on atomic values with ordering |
127 | | * requirements.) SequentiallyConsistent is the *simplest and safest* |
128 | | * ordering of atomic operations -- it's always as if one operation |
129 | | * happens, then another, then another, in some order -- and every |
130 | | * core observes updates to happen in that single order. Because it |
131 | | * has the most synchronization requirements, operations ordered this |
132 | | * way also tend to be slowest. |
133 | | * |
134 | | * SequentiallyConsistent ordering can be desirable when multiple |
135 | | * threads observe objects, and they all have to agree on the |
136 | | * observable order of changes to them. People expect |
137 | | * SequentiallyConsistent ordering, even if they shouldn't, when |
138 | | * writing code, atomic or otherwise. SequentiallyConsistent is also |
139 | | * the ordering of choice when designing lockless data structures. If |
140 | | * you don't know what order to use, use this one. |
141 | | */ |
142 | | SequentiallyConsistent, |
143 | | }; |
144 | | |
145 | | namespace detail { |
146 | | |
147 | | /* |
148 | | * Structure which can be used to preserve the ordering of atomic accesses |
149 | | * when recording or replaying an execution, depending on the Recording enum. |
150 | | * |
151 | | * Atomic access ordering is preserved by default when recording/replaying. |
152 | | * This should be overridden for atomics that can be accessed in code that |
153 | | * runs non-deterministically when recording/replaying, such as during GC, the |
154 | | * JS interrupt callback, or code that is affected by JIT compilation or |
155 | | * debugger activity. |
156 | | */ |
157 | | template<recordreplay::Behavior Recording> struct AutoRecordAtomicAccess; |
158 | | |
159 | | template<> |
160 | | struct AutoRecordAtomicAccess<recordreplay::Behavior::DontPreserve> { |
161 | 319M | AutoRecordAtomicAccess() {} |
162 | 319M | ~AutoRecordAtomicAccess() {} |
163 | | }; |
164 | | |
165 | | template<> |
166 | | struct AutoRecordAtomicAccess<recordreplay::Behavior::Preserve> { |
167 | 0 | AutoRecordAtomicAccess() { recordreplay::BeginOrderedAtomicAccess(); } |
168 | 0 | ~AutoRecordAtomicAccess() { recordreplay::EndOrderedAtomicAccess(); } |
169 | | }; |
170 | | |
171 | | /* |
172 | | * We provide CompareExchangeFailureOrder to work around a bug in some |
173 | | * versions of GCC's <atomic> header. See bug 898491. |
174 | | */ |
175 | | template<MemoryOrdering Order> struct AtomicOrderConstraints; |
176 | | |
177 | | template<> |
178 | | struct AtomicOrderConstraints<Relaxed> |
179 | | { |
180 | | static const std::memory_order AtomicRMWOrder = std::memory_order_relaxed; |
181 | | static const std::memory_order LoadOrder = std::memory_order_relaxed; |
182 | | static const std::memory_order StoreOrder = std::memory_order_relaxed; |
183 | | static const std::memory_order CompareExchangeFailureOrder = |
184 | | std::memory_order_relaxed; |
185 | | }; |
186 | | |
187 | | template<> |
188 | | struct AtomicOrderConstraints<ReleaseAcquire> |
189 | | { |
190 | | static const std::memory_order AtomicRMWOrder = std::memory_order_acq_rel; |
191 | | static const std::memory_order LoadOrder = std::memory_order_acquire; |
192 | | static const std::memory_order StoreOrder = std::memory_order_release; |
193 | | static const std::memory_order CompareExchangeFailureOrder = |
194 | | std::memory_order_acquire; |
195 | | }; |
196 | | |
197 | | template<> |
198 | | struct AtomicOrderConstraints<SequentiallyConsistent> |
199 | | { |
200 | | static const std::memory_order AtomicRMWOrder = std::memory_order_seq_cst; |
201 | | static const std::memory_order LoadOrder = std::memory_order_seq_cst; |
202 | | static const std::memory_order StoreOrder = std::memory_order_seq_cst; |
203 | | static const std::memory_order CompareExchangeFailureOrder = |
204 | | std::memory_order_seq_cst; |
205 | | }; |
206 | | |
207 | | template<typename T, MemoryOrdering Order> |
208 | | struct IntrinsicBase |
209 | | { |
210 | | typedef std::atomic<T> ValueType; |
211 | | typedef AtomicOrderConstraints<Order> OrderedOp; |
212 | | }; |
213 | | |
214 | | template<typename T, MemoryOrdering Order, recordreplay::Behavior Recording> |
215 | | struct IntrinsicMemoryOps : public IntrinsicBase<T, Order> |
216 | | { |
217 | | typedef IntrinsicBase<T, Order> Base; |
218 | | |
219 | | static T load(const typename Base::ValueType& aPtr) |
220 | 132M | { |
221 | 132M | AutoRecordAtomicAccess<Recording> record; |
222 | 132M | return aPtr.load(Base::OrderedOp::LoadOrder); |
223 | 132M | } Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::load(std::__1::atomic<int> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<char const*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::load(std::__1::atomic<char const*> const&) mozilla::detail::IntrinsicMemoryOps<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<int> const&) Line | Count | Source | 220 | 512 | { | 221 | 512 | AutoRecordAtomicAccess<Recording> record; | 222 | 512 | return aPtr.load(Base::OrderedOp::LoadOrder); | 223 | 512 | } |
mozilla::detail::IntrinsicMemoryOps<mozilla::OffTheBooksMutex*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<mozilla::OffTheBooksMutex*> const&) Line | Count | Source | 220 | 1.08k | { | 221 | 1.08k | AutoRecordAtomicAccess<Recording> record; | 222 | 1.08k | return aPtr.load(Base::OrderedOp::LoadOrder); | 223 | 1.08k | } |
mozilla::detail::IntrinsicMemoryOps<mozilla::OffTheBooksMutex*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::load(std::__1::atomic<mozilla::OffTheBooksMutex*> const&) Line | Count | Source | 220 | 5.05k | { | 221 | 5.05k | AutoRecordAtomicAccess<Recording> record; | 222 | 5.05k | return aPtr.load(Base::OrderedOp::LoadOrder); | 223 | 5.05k | } |
mozilla::detail::IntrinsicMemoryOps<unsigned int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<unsigned int> const&) Line | Count | Source | 220 | 20.9k | { | 221 | 20.9k | AutoRecordAtomicAccess<Recording> record; | 222 | 20.9k | return aPtr.load(Base::OrderedOp::LoadOrder); | 223 | 20.9k | } |
Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::detail::ThreadSafeWeakReference<mozilla::gfx::UnscaledFont>*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<mozilla::detail::ThreadSafeWeakReference<mozilla::gfx::UnscaledFont>*> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::detail::ThreadSafeWeakReference<mozilla::gfx::ScaledFont>*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<mozilla::detail::ThreadSafeWeakReference<mozilla::gfx::ScaledFont>*> const&) mozilla::detail::IntrinsicMemoryOps<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0>::load(std::__1::atomic<unsigned int> const&) Line | Count | Source | 220 | 14.6M | { | 221 | 14.6M | AutoRecordAtomicAccess<Recording> record; | 222 | 14.6M | return aPtr.load(Base::OrderedOp::LoadOrder); | 223 | 14.6M | } |
mozilla::detail::IntrinsicMemoryOps<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<unsigned int> const&) Line | Count | Source | 220 | 133 | { | 221 | 133 | AutoRecordAtomicAccess<Recording> record; | 222 | 133 | return aPtr.load(Base::OrderedOp::LoadOrder); | 223 | 133 | } |
Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::detail::LogFile*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<mozilla::detail::LogFile*> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::detail::LogFile*, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<mozilla::detail::LogFile*> const&) mozilla::detail::IntrinsicMemoryOps<mozilla::LogModule*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::load(std::__1::atomic<mozilla::LogModule*> const&) Line | Count | Source | 220 | 23.5M | { | 221 | 23.5M | AutoRecordAtomicAccess<Recording> record; | 222 | 23.5M | return aPtr.load(Base::OrderedOp::LoadOrder); | 223 | 23.5M | } |
Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<unsigned long, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<unsigned long> const&) mozilla::detail::IntrinsicMemoryOps<PRThread*, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<PRThread*> const&) Line | Count | Source | 220 | 6.36M | { | 221 | 6.36M | AutoRecordAtomicAccess<Recording> record; | 222 | 6.36M | return aPtr.load(Base::OrderedOp::LoadOrder); | 223 | 6.36M | } |
Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<unsigned long> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<PRThread*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<PRThread*> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<unsigned int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<unsigned int> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::load(std::__1::atomic<int> const&) mozilla::detail::IntrinsicMemoryOps<int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<int> const&) Line | Count | Source | 220 | 4 | { | 221 | 4 | AutoRecordAtomicAccess<Recording> record; | 222 | 4 | return aPtr.load(Base::OrderedOp::LoadOrder); | 223 | 4 | } |
mozilla::detail::IntrinsicMemoryOps<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::load(std::__1::atomic<unsigned long> const&) Line | Count | Source | 220 | 1.62M | { | 221 | 1.62M | AutoRecordAtomicAccess<Recording> record; | 222 | 1.62M | return aPtr.load(Base::OrderedOp::LoadOrder); | 223 | 1.62M | } |
Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<long> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<int> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<long, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<long> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::net::TRRService::ConfirmationState, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<mozilla::net::TRRService::ConfirmationState> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::net::CompressMode, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<mozilla::net::CompressMode> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<unsigned long, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<unsigned long> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<char*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<char*> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<nsresult, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<nsresult> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<nsIThread*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<nsIThread*> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::net::nsHttpChannel::ResponseSource, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<mozilla::net::nsHttpChannel::ResponseSource> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::dom::IndexedDatabaseManager::LoggingMode, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<mozilla::dom::IndexedDatabaseManager::LoggingMode> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<webrtc::VideoCodecMode, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<webrtc::VideoCodecMode> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<GMPErr, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<GMPErr> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::gfx::Job*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<mozilla::gfx::Job*> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<SkTypeface*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<SkTypeface*> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::gfx::UnscaledFont*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<mozilla::gfx::UnscaledFont*> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::gfx::ScaledFont*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<mozilla::gfx::ScaledFont*> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::layers::APZCTreeManager*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<mozilla::layers::APZCTreeManager*> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::dom::cache::ReadStream::Inner::State, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<mozilla::dom::cache::ReadStream::Inner::State> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::dom::AlternativeDataStreamListener::eStatus, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<mozilla::dom::AlternativeDataStreamListener::eStatus> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::Benchmark*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<mozilla::Benchmark*> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::MultiWriterQueue<mozilla::DDLogMessage, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<mozilla::MultiWriterQueue<mozilla::DDLogMessage, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::TrackBuffersManager::EvictionState, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<mozilla::TrackBuffersManager::EvictionState> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::MediaEngineSourceState, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<mozilla::MediaEngineSourceState> const&) ProcessHangMonitor.cpp:mozilla::detail::IntrinsicMemoryOps<(anonymous namespace)::HangMonitorChild*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::load(std::__1::atomic<(anonymous namespace)::HangMonitorChild*> const&) Line | Count | Source | 220 | 1.62M | { | 221 | 1.62M | AutoRecordAtomicAccess<Recording> record; | 222 | 1.62M | return aPtr.load(Base::OrderedOp::LoadOrder); | 223 | 1.62M | } |
Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<long long, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<long long> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<nsresult, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<nsresult> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::MultiWriterQueue<int, 1u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<mozilla::MultiWriterQueue<int, 1u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::MultiWriterQueue<int, 2u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<mozilla::MultiWriterQueue<int, 2u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::MultiWriterQueue<int, 4u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<mozilla::MultiWriterQueue<int, 4u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*> const&) mozilla::detail::IntrinsicMemoryOps<unsigned long, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::load(std::__1::atomic<unsigned long> const&) Line | Count | Source | 220 | 9.85M | { | 221 | 9.85M | AutoRecordAtomicAccess<Recording> record; | 222 | 9.85M | return aPtr.load(Base::OrderedOp::LoadOrder); | 223 | 9.85M | } |
mozilla::detail::IntrinsicMemoryOps<js::gc::ArenaLists::ConcurrentUse, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::load(std::__1::atomic<js::gc::ArenaLists::ConcurrentUse> const&) Line | Count | Source | 220 | 197k | { | 221 | 197k | AutoRecordAtomicAccess<Recording> record; | 222 | 197k | return aPtr.load(Base::OrderedOp::LoadOrder); | 223 | 197k | } |
Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<js::gc::TriggerKind, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::load(std::__1::atomic<js::gc::TriggerKind> const&) mozilla::detail::IntrinsicMemoryOps<unsigned long, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0>::load(std::__1::atomic<unsigned long> const&) Line | Count | Source | 220 | 1.79M | { | 221 | 1.79M | AutoRecordAtomicAccess<Recording> record; | 222 | 1.79M | return aPtr.load(Base::OrderedOp::LoadOrder); | 223 | 1.79M | } |
mozilla::detail::IntrinsicMemoryOps<JS::gcreason::Reason, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0>::load(std::__1::atomic<JS::gcreason::Reason> const&) Line | Count | Source | 220 | 1.16k | { | 221 | 1.16k | AutoRecordAtomicAccess<Recording> record; | 222 | 1.16k | return aPtr.load(Base::OrderedOp::LoadOrder); | 223 | 1.16k | } |
Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<void*, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<void*> const&) mozilla::detail::IntrinsicMemoryOps<JS::HeapState, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::load(std::__1::atomic<JS::HeapState> const&) Line | Count | Source | 220 | 42.1M | { | 221 | 42.1M | AutoRecordAtomicAccess<Recording> record; | 222 | 42.1M | return aPtr.load(Base::OrderedOp::LoadOrder); | 223 | 42.1M | } |
Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<js::StackFormat, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<js::StackFormat> const&) mozilla::detail::IntrinsicMemoryOps<JS::Zone::HelperThreadUse, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::load(std::__1::atomic<JS::Zone::HelperThreadUse> const&) Line | Count | Source | 220 | 30.9M | { | 221 | 30.9M | AutoRecordAtomicAccess<Recording> record; | 222 | 30.9M | return aPtr.load(Base::OrderedOp::LoadOrder); | 223 | 30.9M | } |
mozilla::detail::IntrinsicMemoryOps<js::Mutex*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::load(std::__1::atomic<js::Mutex*> const&) Line | Count | Source | 220 | 3 | { | 221 | 3 | AutoRecordAtomicAccess<Recording> record; | 222 | 3 | return aPtr.load(Base::OrderedOp::LoadOrder); | 223 | 3 | } |
Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<double (*)(double), (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<double (*)(double)> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<void (*)(), (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<void (*)()> const&) mozilla::detail::IntrinsicMemoryOps<bool (*)(mozilla::Vector<char, 0ul, js::SystemAllocPolicy>*), (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<bool (*)(mozilla::Vector<char, 0ul, js::SystemAllocPolicy>*)> const&) Line | Count | Source | 220 | 5 | { | 221 | 5 | AutoRecordAtomicAccess<Recording> record; | 222 | 5 | return aPtr.load(Base::OrderedOp::LoadOrder); | 223 | 5 | } |
Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<BuiltinThunks const*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<BuiltinThunks const*> const&) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::Vector<js::wasm::CodeSegment const*, 0ul, js::SystemAllocPolicy> const*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::load(std::__1::atomic<mozilla::Vector<js::wasm::CodeSegment const*, 0ul, js::SystemAllocPolicy> const*> const&) mozilla::detail::IntrinsicMemoryOps<int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0>::load(std::__1::atomic<int> const&) Line | Count | Source | 220 | 22 | { | 221 | 22 | AutoRecordAtomicAccess<Recording> record; | 222 | 22 | return aPtr.load(Base::OrderedOp::LoadOrder); | 223 | 22 | } |
|
224 | | |
225 | | static void store(typename Base::ValueType& aPtr, T aVal) |
226 | 8.89M | { |
227 | 8.89M | AutoRecordAtomicAccess<Recording> record; |
228 | 8.89M | aPtr.store(aVal, Base::OrderedOp::StoreOrder); |
229 | 8.89M | } Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::LogLevel, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0>::store(std::__1::atomic<mozilla::LogLevel>&, mozilla::LogLevel) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<char const*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::store(std::__1::atomic<char const*>&, char const*) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<void*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::store(std::__1::atomic<void*>&, void*) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::store(std::__1::atomic<int>&, int) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<unsigned int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::store(std::__1::atomic<unsigned int>&, unsigned int) mozilla::detail::IntrinsicMemoryOps<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<int>&, int) Line | Count | Source | 226 | 416 | { | 227 | 416 | AutoRecordAtomicAccess<Recording> record; | 228 | 416 | aPtr.store(aVal, Base::OrderedOp::StoreOrder); | 229 | 416 | } |
Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::gfx::UnscaledFont*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<mozilla::gfx::UnscaledFont*>&, mozilla::gfx::UnscaledFont*) mozilla::detail::IntrinsicMemoryOps<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0>::store(std::__1::atomic<unsigned int>&, unsigned int) Line | Count | Source | 226 | 743 | { | 227 | 743 | AutoRecordAtomicAccess<Recording> record; | 228 | 743 | aPtr.store(aVal, Base::OrderedOp::StoreOrder); | 229 | 743 | } |
mozilla::detail::IntrinsicMemoryOps<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::store(std::__1::atomic<int>&, int) Line | Count | Source | 226 | 5.79k | { | 227 | 5.79k | AutoRecordAtomicAccess<Recording> record; | 228 | 5.79k | aPtr.store(aVal, Base::OrderedOp::StoreOrder); | 229 | 5.79k | } |
mozilla::detail::IntrinsicMemoryOps<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<unsigned int>&, unsigned int) Line | Count | Source | 226 | 263 | { | 227 | 263 | AutoRecordAtomicAccess<Recording> record; | 228 | 263 | aPtr.store(aVal, Base::OrderedOp::StoreOrder); | 229 | 263 | } |
Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::detail::LogFile*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<mozilla::detail::LogFile*>&, mozilla::detail::LogFile*) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::detail::LogFile*, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<mozilla::detail::LogFile*>&, mozilla::detail::LogFile*) mozilla::detail::IntrinsicMemoryOps<mozilla::LogModule*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::store(std::__1::atomic<mozilla::LogModule*>&, mozilla::LogModule*) Line | Count | Source | 226 | 75 | { | 227 | 75 | AutoRecordAtomicAccess<Recording> record; | 228 | 75 | aPtr.store(aVal, Base::OrderedOp::StoreOrder); | 229 | 75 | } |
Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<unsigned long, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<unsigned long>&, unsigned long) mozilla::detail::IntrinsicMemoryOps<unsigned int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<unsigned int>&, unsigned int) Line | Count | Source | 226 | 34 | { | 227 | 34 | AutoRecordAtomicAccess<Recording> record; | 228 | 34 | aPtr.store(aVal, Base::OrderedOp::StoreOrder); | 229 | 34 | } |
mozilla::detail::IntrinsicMemoryOps<PRThread*, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<PRThread*>&, PRThread*) Line | Count | Source | 226 | 8.88M | { | 227 | 8.88M | AutoRecordAtomicAccess<Recording> record; | 228 | 8.88M | aPtr.store(aVal, Base::OrderedOp::StoreOrder); | 229 | 8.88M | } |
Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<unsigned long>&, unsigned long) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<PRThread*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<PRThread*>&, PRThread*) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<unsigned int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<unsigned int>&, unsigned int) mozilla::detail::IntrinsicMemoryOps<int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<int>&, int) Line | Count | Source | 226 | 21 | { | 227 | 21 | AutoRecordAtomicAccess<Recording> record; | 228 | 21 | aPtr.store(aVal, Base::OrderedOp::StoreOrder); | 229 | 21 | } |
mozilla::detail::IntrinsicMemoryOps<unsigned int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::store(std::__1::atomic<unsigned int>&, unsigned int) Line | Count | Source | 226 | 1.67k | { | 227 | 1.67k | AutoRecordAtomicAccess<Recording> record; | 228 | 1.67k | aPtr.store(aVal, Base::OrderedOp::StoreOrder); | 229 | 1.67k | } |
Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<int>&, int) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::net::TRRService::ConfirmationState, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<mozilla::net::TRRService::ConfirmationState>&, mozilla::net::TRRService::ConfirmationState) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::net::CompressMode, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<mozilla::net::CompressMode>&, mozilla::net::CompressMode) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<unsigned long, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<unsigned long>&, unsigned long) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<char*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<char*>&, char*) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<nsresult, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<nsresult>&, nsresult) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<nsIThread*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<nsIThread*>&, nsIThread*) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<long>&, long) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::net::nsHttpChannel::ResponseSource, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<mozilla::net::nsHttpChannel::ResponseSource>&, mozilla::net::nsHttpChannel::ResponseSource) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<GMPErr, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<GMPErr>&, GMPErr) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<webrtc::VideoCodecMode, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<webrtc::VideoCodecMode>&, webrtc::VideoCodecMode) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::gfx::ScaledFont*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<mozilla::gfx::ScaledFont*>&, mozilla::gfx::ScaledFont*) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::layers::APZCTreeManager*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<mozilla::layers::APZCTreeManager*>&, mozilla::layers::APZCTreeManager*) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::dom::AlternativeDataStreamListener::eStatus, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<mozilla::dom::AlternativeDataStreamListener::eStatus>&, mozilla::dom::AlternativeDataStreamListener::eStatus) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::MultiWriterQueue<mozilla::DDLogMessage, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<mozilla::MultiWriterQueue<mozilla::DDLogMessage, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*>&, mozilla::MultiWriterQueue<mozilla::DDLogMessage, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::TrackBuffersManager::EvictionState, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<mozilla::TrackBuffersManager::EvictionState>&, mozilla::TrackBuffersManager::EvictionState) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::MediaEngineSourceState, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<mozilla::MediaEngineSourceState>&, mozilla::MediaEngineSourceState) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::dom::IndexedDatabaseManager::LoggingMode, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<mozilla::dom::IndexedDatabaseManager::LoggingMode>&, mozilla::dom::IndexedDatabaseManager::LoggingMode) Unexecuted instantiation: ProcessHangMonitor.cpp:mozilla::detail::IntrinsicMemoryOps<(anonymous namespace)::HangMonitorChild*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::store(std::__1::atomic<(anonymous namespace)::HangMonitorChild*>&, (anonymous namespace)::HangMonitorChild*) mozilla::detail::IntrinsicMemoryOps<long long, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<long long>&, long long) Line | Count | Source | 226 | 270 | { | 227 | 270 | AutoRecordAtomicAccess<Recording> record; | 228 | 270 | aPtr.store(aVal, Base::OrderedOp::StoreOrder); | 229 | 270 | } |
Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<nsresult, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<nsresult>&, nsresult) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::MultiWriterQueue<int, 1u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<mozilla::MultiWriterQueue<int, 1u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*>&, mozilla::MultiWriterQueue<int, 1u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::MultiWriterQueue<int, 2u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<mozilla::MultiWriterQueue<int, 2u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*>&, mozilla::MultiWriterQueue<int, 2u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::MultiWriterQueue<int, 4u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<mozilla::MultiWriterQueue<int, 4u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*>&, mozilla::MultiWriterQueue<int, 4u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*>&, mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*>&, mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*>&, mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*>&, mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<unsigned long, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::store(std::__1::atomic<unsigned long>&, unsigned long) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<void*, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<void*>&, void*) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<js::StackFormat, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<js::StackFormat>&, js::StackFormat) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<JS::Zone::HelperThreadUse, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::store(std::__1::atomic<JS::Zone::HelperThreadUse>&, JS::Zone::HelperThreadUse) mozilla::detail::IntrinsicMemoryOps<js::ProfilingStackFrame*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::store(std::__1::atomic<js::ProfilingStackFrame*>&, js::ProfilingStackFrame*) Line | Count | Source | 226 | 40 | { | 227 | 40 | AutoRecordAtomicAccess<Recording> record; | 228 | 40 | aPtr.store(aVal, Base::OrderedOp::StoreOrder); | 229 | 40 | } |
mozilla::detail::IntrinsicMemoryOps<js::Mutex*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::store(std::__1::atomic<js::Mutex*>&, js::Mutex*) Line | Count | Source | 226 | 3 | { | 227 | 3 | AutoRecordAtomicAccess<Recording> record; | 228 | 3 | aPtr.store(aVal, Base::OrderedOp::StoreOrder); | 229 | 3 | } |
mozilla::detail::IntrinsicMemoryOps<bool (*)(mozilla::Vector<char, 0ul, js::SystemAllocPolicy>*), (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<bool (*)(mozilla::Vector<char, 0ul, js::SystemAllocPolicy>*)>&, bool (*)(mozilla::Vector<char, 0ul, js::SystemAllocPolicy>*)) Line | Count | Source | 226 | 3 | { | 227 | 3 | AutoRecordAtomicAccess<Recording> record; | 228 | 3 | aPtr.store(aVal, Base::OrderedOp::StoreOrder); | 229 | 3 | } |
mozilla::detail::IntrinsicMemoryOps<void (*)(), (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<void (*)()>&, void (*)()) Line | Count | Source | 226 | 3 | { | 227 | 3 | AutoRecordAtomicAccess<Recording> record; | 228 | 3 | aPtr.store(aVal, Base::OrderedOp::StoreOrder); | 229 | 3 | } |
mozilla::detail::IntrinsicMemoryOps<double (*)(double), (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<double (*)(double)>&, double (*)(double)) Line | Count | Source | 226 | 3 | { | 227 | 3 | AutoRecordAtomicAccess<Recording> record; | 228 | 3 | aPtr.store(aVal, Base::OrderedOp::StoreOrder); | 229 | 3 | } |
mozilla::detail::IntrinsicMemoryOps<unsigned long, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0>::store(std::__1::atomic<unsigned long>&, unsigned long) Line | Count | Source | 226 | 396 | { | 227 | 396 | AutoRecordAtomicAccess<Recording> record; | 228 | 396 | aPtr.store(aVal, Base::OrderedOp::StoreOrder); | 229 | 396 | } |
Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<BuiltinThunks const*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::store(std::__1::atomic<BuiltinThunks const*>&, BuiltinThunks const*) mozilla::detail::IntrinsicMemoryOps<js::gc::ArenaLists::ConcurrentUse, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::store(std::__1::atomic<js::gc::ArenaLists::ConcurrentUse>&, js::gc::ArenaLists::ConcurrentUse) Line | Count | Source | 226 | 799 | { | 227 | 799 | AutoRecordAtomicAccess<Recording> record; | 228 | 799 | aPtr.store(aVal, Base::OrderedOp::StoreOrder); | 229 | 799 | } |
mozilla::detail::IntrinsicMemoryOps<js::gc::TriggerKind, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::store(std::__1::atomic<js::gc::TriggerKind>&, js::gc::TriggerKind) Line | Count | Source | 226 | 36 | { | 227 | 36 | AutoRecordAtomicAccess<Recording> record; | 228 | 36 | aPtr.store(aVal, Base::OrderedOp::StoreOrder); | 229 | 36 | } |
mozilla::detail::IntrinsicMemoryOps<JS::gcreason::Reason, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0>::store(std::__1::atomic<JS::gcreason::Reason>&, JS::gcreason::Reason) Line | Count | Source | 226 | 200 | { | 227 | 200 | AutoRecordAtomicAccess<Recording> record; | 228 | 200 | aPtr.store(aVal, Base::OrderedOp::StoreOrder); | 229 | 200 | } |
mozilla::detail::IntrinsicMemoryOps<JS::HeapState, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::store(std::__1::atomic<JS::HeapState>&, JS::HeapState) Line | Count | Source | 226 | 202 | { | 227 | 202 | AutoRecordAtomicAccess<Recording> record; | 228 | 202 | aPtr.store(aVal, Base::OrderedOp::StoreOrder); | 229 | 202 | } |
|
230 | | |
231 | | static T exchange(typename Base::ValueType& aPtr, T aVal) |
232 | 249 | { |
233 | 249 | AutoRecordAtomicAccess<Recording> record; |
234 | 249 | return aPtr.exchange(aVal, Base::OrderedOp::AtomicRMWOrder); |
235 | 249 | } Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::exchange(std::__1::atomic<int>&, int) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::detail::LogFile*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::exchange(std::__1::atomic<mozilla::detail::LogFile*>&, mozilla::detail::LogFile*) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::detail::LogFile*, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::exchange(std::__1::atomic<mozilla::detail::LogFile*>&, mozilla::detail::LogFile*) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<unsigned int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::exchange(std::__1::atomic<unsigned int>&, unsigned int) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::exchange(std::__1::atomic<int>&, int) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<nsTArray<nsTString<char> >*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::exchange(std::__1::atomic<nsTArray<nsTString<char> >*>&, nsTArray<nsTString<char> >*) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<PRThread*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::exchange(std::__1::atomic<PRThread*>&, PRThread*) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::exchange(std::__1::atomic<unsigned long>&, unsigned long) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<long long, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::exchange(std::__1::atomic<long long>&, long long) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<nsTString<char>*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::exchange(std::__1::atomic<nsTString<char>*>&, nsTString<char>*) mozilla::detail::IntrinsicMemoryOps<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0>::exchange(std::__1::atomic<unsigned int>&, unsigned int) Line | Count | Source | 232 | 249 | { | 233 | 249 | AutoRecordAtomicAccess<Recording> record; | 234 | 249 | return aPtr.exchange(aVal, Base::OrderedOp::AtomicRMWOrder); | 235 | 249 | } |
Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::Vector<js::wasm::CodeSegment const*, 0ul, js::SystemAllocPolicy> const*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::exchange(std::__1::atomic<mozilla::Vector<js::wasm::CodeSegment const*, 0ul, js::SystemAllocPolicy> const*>&, mozilla::Vector<js::wasm::CodeSegment const*, 0ul, js::SystemAllocPolicy> const*) |
236 | | |
237 | | static bool compareExchange(typename Base::ValueType& aPtr, |
238 | | T aOldVal, T aNewVal) |
239 | 22 | { |
240 | 22 | AutoRecordAtomicAccess<Recording> record; |
241 | 22 | return aPtr.compare_exchange_strong(aOldVal, aNewVal, |
242 | 22 | Base::OrderedOp::AtomicRMWOrder, |
243 | 22 | Base::OrderedOp::CompareExchangeFailureOrder); |
244 | 22 | } Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<unsigned int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::compareExchange(std::__1::atomic<unsigned int>&, unsigned int, unsigned int) mozilla::detail::IntrinsicMemoryOps<mozilla::OffTheBooksMutex*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::compareExchange(std::__1::atomic<mozilla::OffTheBooksMutex*>&, mozilla::OffTheBooksMutex*, mozilla::OffTheBooksMutex*) Line | Count | Source | 239 | 16 | { | 240 | 16 | AutoRecordAtomicAccess<Recording> record; | 241 | 16 | return aPtr.compare_exchange_strong(aOldVal, aNewVal, | 242 | 16 | Base::OrderedOp::AtomicRMWOrder, | 243 | 16 | Base::OrderedOp::CompareExchangeFailureOrder); | 244 | 16 | } |
mozilla::detail::IntrinsicMemoryOps<mozilla::OffTheBooksMutex*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::compareExchange(std::__1::atomic<mozilla::OffTheBooksMutex*>&, mozilla::OffTheBooksMutex*, mozilla::OffTheBooksMutex*) Line | Count | Source | 239 | 6 | { | 240 | 6 | AutoRecordAtomicAccess<Recording> record; | 241 | 6 | return aPtr.compare_exchange_strong(aOldVal, aNewVal, | 242 | 6 | Base::OrderedOp::AtomicRMWOrder, | 243 | 6 | Base::OrderedOp::CompareExchangeFailureOrder); | 244 | 6 | } |
Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::compareExchange(std::__1::atomic<int>&, int, int) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::compareExchange(std::__1::atomic<unsigned int>&, unsigned int, unsigned int) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<unsigned long, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::compareExchange(std::__1::atomic<unsigned long>&, unsigned long, unsigned long) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::compareExchange(std::__1::atomic<int>&, int, int) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<unsigned int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::compareExchange(std::__1::atomic<unsigned int>&, unsigned int, unsigned int) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<nsTArray<nsTString<char> >*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::compareExchange(std::__1::atomic<nsTArray<nsTString<char> >*>&, nsTArray<nsTString<char> >*, nsTArray<nsTString<char> >*) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<unsigned int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::compareExchange(std::__1::atomic<unsigned int>&, unsigned int, unsigned int) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<PRThread*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::compareExchange(std::__1::atomic<PRThread*>&, PRThread*, PRThread*) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::gfx::Job*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::compareExchange(std::__1::atomic<mozilla::gfx::Job*>&, mozilla::gfx::Job*, mozilla::gfx::Job*) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<SkTypeface*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::compareExchange(std::__1::atomic<SkTypeface*>&, SkTypeface*, SkTypeface*) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::detail::ThreadSafeWeakReference<mozilla::gfx::UnscaledFont>*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::compareExchange(std::__1::atomic<mozilla::detail::ThreadSafeWeakReference<mozilla::gfx::UnscaledFont>*>&, mozilla::detail::ThreadSafeWeakReference<mozilla::gfx::UnscaledFont>*, mozilla::detail::ThreadSafeWeakReference<mozilla::gfx::UnscaledFont>*) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::detail::ThreadSafeWeakReference<mozilla::gfx::ScaledFont>*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::compareExchange(std::__1::atomic<mozilla::detail::ThreadSafeWeakReference<mozilla::gfx::ScaledFont>*>&, mozilla::detail::ThreadSafeWeakReference<mozilla::gfx::ScaledFont>*, mozilla::detail::ThreadSafeWeakReference<mozilla::gfx::ScaledFont>*) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::dom::cache::ReadStream::Inner::State, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::compareExchange(std::__1::atomic<mozilla::dom::cache::ReadStream::Inner::State>&, mozilla::dom::cache::ReadStream::Inner::State, mozilla::dom::cache::ReadStream::Inner::State) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::compareExchange(std::__1::atomic<unsigned long>&, unsigned long, unsigned long) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::MultiWriterQueue<mozilla::DDLogMessage, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::compareExchange(std::__1::atomic<mozilla::MultiWriterQueue<mozilla::DDLogMessage, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*>&, mozilla::MultiWriterQueue<mozilla::DDLogMessage, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*, mozilla::MultiWriterQueue<mozilla::DDLogMessage, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::compareExchange(std::__1::atomic<int>&, int, int) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::MultiWriterQueue<int, 1u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::compareExchange(std::__1::atomic<mozilla::MultiWriterQueue<int, 1u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*>&, mozilla::MultiWriterQueue<int, 1u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, mozilla::MultiWriterQueue<int, 1u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::MultiWriterQueue<int, 2u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::compareExchange(std::__1::atomic<mozilla::MultiWriterQueue<int, 2u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*>&, mozilla::MultiWriterQueue<int, 2u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, mozilla::MultiWriterQueue<int, 2u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::MultiWriterQueue<int, 4u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::compareExchange(std::__1::atomic<mozilla::MultiWriterQueue<int, 4u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*>&, mozilla::MultiWriterQueue<int, 4u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, mozilla::MultiWriterQueue<int, 4u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::compareExchange(std::__1::atomic<mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*>&, mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::compareExchange(std::__1::atomic<mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*>&, mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::compareExchange(std::__1::atomic<mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*>&, mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*, mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*) Unexecuted instantiation: mozilla::detail::IntrinsicMemoryOps<mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::compareExchange(std::__1::atomic<mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*>&, mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*, mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*) |
245 | | }; |
246 | | |
247 | | template<typename T, MemoryOrdering Order, recordreplay::Behavior Recording> |
248 | | struct IntrinsicAddSub : public IntrinsicBase<T, Order> |
249 | | { |
250 | | typedef IntrinsicBase<T, Order> Base; |
251 | | |
252 | | static T add(typename Base::ValueType& aPtr, T aVal) |
253 | 50.9M | { |
254 | 50.9M | AutoRecordAtomicAccess<Recording> record; |
255 | 50.9M | return aPtr.fetch_add(aVal, Base::OrderedOp::AtomicRMWOrder); |
256 | 50.9M | } mozilla::detail::IntrinsicAddSub<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::add(std::__1::atomic<int>&, int) Line | Count | Source | 253 | 19 | { | 254 | 19 | AutoRecordAtomicAccess<Recording> record; | 255 | 19 | return aPtr.fetch_add(aVal, Base::OrderedOp::AtomicRMWOrder); | 256 | 19 | } |
Unexecuted instantiation: mozilla::detail::IntrinsicAddSub<unsigned int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::add(std::__1::atomic<unsigned int>&, unsigned int) mozilla::detail::IntrinsicAddSub<int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::add(std::__1::atomic<int>&, int) Line | Count | Source | 253 | 5.78k | { | 254 | 5.78k | AutoRecordAtomicAccess<Recording> record; | 255 | 5.78k | return aPtr.fetch_add(aVal, Base::OrderedOp::AtomicRMWOrder); | 256 | 5.78k | } |
mozilla::detail::IntrinsicAddSub<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::add(std::__1::atomic<unsigned long>&, unsigned long) Line | Count | Source | 253 | 3 | { | 254 | 3 | AutoRecordAtomicAccess<Recording> record; | 255 | 3 | return aPtr.fetch_add(aVal, Base::OrderedOp::AtomicRMWOrder); | 256 | 3 | } |
mozilla::detail::IntrinsicAddSub<unsigned int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::add(std::__1::atomic<unsigned int>&, unsigned int) Line | Count | Source | 253 | 3 | { | 254 | 3 | AutoRecordAtomicAccess<Recording> record; | 255 | 3 | return aPtr.fetch_add(aVal, Base::OrderedOp::AtomicRMWOrder); | 256 | 3 | } |
mozilla::detail::IntrinsicAddSub<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::add(std::__1::atomic<int>&, int) Line | Count | Source | 253 | 5.92k | { | 254 | 5.92k | AutoRecordAtomicAccess<Recording> record; | 255 | 5.92k | return aPtr.fetch_add(aVal, Base::OrderedOp::AtomicRMWOrder); | 256 | 5.92k | } |
mozilla::detail::IntrinsicAddSub<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::add(std::__1::atomic<unsigned long>&, unsigned long) Line | Count | Source | 253 | 2.72k | { | 254 | 2.72k | AutoRecordAtomicAccess<Recording> record; | 255 | 2.72k | return aPtr.fetch_add(aVal, Base::OrderedOp::AtomicRMWOrder); | 256 | 2.72k | } |
Unexecuted instantiation: mozilla::detail::IntrinsicAddSub<long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::add(std::__1::atomic<long>&, long) Unexecuted instantiation: mozilla::detail::IntrinsicAddSub<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::add(std::__1::atomic<unsigned int>&, unsigned int) Unexecuted instantiation: mozilla::detail::IntrinsicAddSub<unsigned long, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::add(std::__1::atomic<unsigned long>&, unsigned long) Unexecuted instantiation: mozilla::detail::IntrinsicAddSub<long, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::add(std::__1::atomic<long>&, long) Unexecuted instantiation: mozilla::detail::IntrinsicAddSub<int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::add(std::__1::atomic<int>&, int) mozilla::detail::IntrinsicAddSub<unsigned long, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::add(std::__1::atomic<unsigned long>&, unsigned long) Line | Count | Source | 253 | 10.1M | { | 254 | 10.1M | AutoRecordAtomicAccess<Recording> record; | 255 | 10.1M | return aPtr.fetch_add(aVal, Base::OrderedOp::AtomicRMWOrder); | 256 | 10.1M | } |
mozilla::detail::IntrinsicAddSub<unsigned int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::add(std::__1::atomic<unsigned int>&, unsigned int) Line | Count | Source | 253 | 189k | { | 254 | 189k | AutoRecordAtomicAccess<Recording> record; | 255 | 189k | return aPtr.fetch_add(aVal, Base::OrderedOp::AtomicRMWOrder); | 256 | 189k | } |
mozilla::detail::IntrinsicAddSub<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0>::add(std::__1::atomic<unsigned int>&, unsigned int) Line | Count | Source | 253 | 40.5M | { | 254 | 40.5M | AutoRecordAtomicAccess<Recording> record; | 255 | 40.5M | return aPtr.fetch_add(aVal, Base::OrderedOp::AtomicRMWOrder); | 256 | 40.5M | } |
Unexecuted instantiation: mozilla::detail::IntrinsicAddSub<int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::add(std::__1::atomic<int>&, int) Unexecuted instantiation: mozilla::detail::IntrinsicAddSub<int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0>::add(std::__1::atomic<int>&, int) |
257 | | |
258 | | static T sub(typename Base::ValueType& aPtr, T aVal) |
259 | 430k | { |
260 | 430k | AutoRecordAtomicAccess<Recording> record; |
261 | 430k | return aPtr.fetch_sub(aVal, Base::OrderedOp::AtomicRMWOrder); |
262 | 430k | } Unexecuted instantiation: mozilla::detail::IntrinsicAddSub<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::sub(std::__1::atomic<int>&, int) Unexecuted instantiation: mozilla::detail::IntrinsicAddSub<unsigned int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::sub(std::__1::atomic<unsigned int>&, unsigned int) mozilla::detail::IntrinsicAddSub<int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::sub(std::__1::atomic<int>&, int) Line | Count | Source | 259 | 5.77k | { | 260 | 5.77k | AutoRecordAtomicAccess<Recording> record; | 261 | 5.77k | return aPtr.fetch_sub(aVal, Base::OrderedOp::AtomicRMWOrder); | 262 | 5.77k | } |
mozilla::detail::IntrinsicAddSub<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::sub(std::__1::atomic<int>&, int) Line | Count | Source | 259 | 5.80k | { | 260 | 5.80k | AutoRecordAtomicAccess<Recording> record; | 261 | 5.80k | return aPtr.fetch_sub(aVal, Base::OrderedOp::AtomicRMWOrder); | 262 | 5.80k | } |
mozilla::detail::IntrinsicAddSub<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::sub(std::__1::atomic<unsigned long>&, unsigned long) Line | Count | Source | 259 | 2.49k | { | 260 | 2.49k | AutoRecordAtomicAccess<Recording> record; | 261 | 2.49k | return aPtr.fetch_sub(aVal, Base::OrderedOp::AtomicRMWOrder); | 262 | 2.49k | } |
Unexecuted instantiation: mozilla::detail::IntrinsicAddSub<long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::sub(std::__1::atomic<long>&, long) Unexecuted instantiation: mozilla::detail::IntrinsicAddSub<unsigned int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::sub(std::__1::atomic<unsigned int>&, unsigned int) Unexecuted instantiation: mozilla::detail::IntrinsicAddSub<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::sub(std::__1::atomic<unsigned int>&, unsigned int) Unexecuted instantiation: mozilla::detail::IntrinsicAddSub<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::sub(std::__1::atomic<unsigned long>&, unsigned long) Unexecuted instantiation: mozilla::detail::IntrinsicAddSub<int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::sub(std::__1::atomic<int>&, int) mozilla::detail::IntrinsicAddSub<unsigned long, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::sub(std::__1::atomic<unsigned long>&, unsigned long) Line | Count | Source | 259 | 378k | { | 260 | 378k | AutoRecordAtomicAccess<Recording> record; | 261 | 378k | return aPtr.fetch_sub(aVal, Base::OrderedOp::AtomicRMWOrder); | 262 | 378k | } |
mozilla::detail::IntrinsicAddSub<unsigned int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::sub(std::__1::atomic<unsigned int>&, unsigned int) Line | Count | Source | 259 | 23.9k | { | 260 | 23.9k | AutoRecordAtomicAccess<Recording> record; | 261 | 23.9k | return aPtr.fetch_sub(aVal, Base::OrderedOp::AtomicRMWOrder); | 262 | 23.9k | } |
Unexecuted instantiation: mozilla::detail::IntrinsicAddSub<int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::sub(std::__1::atomic<int>&, int) mozilla::detail::IntrinsicAddSub<int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0>::sub(std::__1::atomic<int>&, int) Line | Count | Source | 259 | 11 | { | 260 | 11 | AutoRecordAtomicAccess<Recording> record; | 261 | 11 | return aPtr.fetch_sub(aVal, Base::OrderedOp::AtomicRMWOrder); | 262 | 11 | } |
mozilla::detail::IntrinsicAddSub<unsigned long, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0>::sub(std::__1::atomic<unsigned long>&, unsigned long) Line | Count | Source | 259 | 13.6k | { | 260 | 13.6k | AutoRecordAtomicAccess<Recording> record; | 261 | 13.6k | return aPtr.fetch_sub(aVal, Base::OrderedOp::AtomicRMWOrder); | 262 | 13.6k | } |
|
263 | | }; |
264 | | |
265 | | template<typename T, MemoryOrdering Order, recordreplay::Behavior Recording> |
266 | | struct IntrinsicAddSub<T*, Order, Recording> : public IntrinsicBase<T*, Order> |
267 | | { |
268 | | typedef IntrinsicBase<T*, Order> Base; |
269 | | |
270 | | static T* add(typename Base::ValueType& aPtr, ptrdiff_t aVal) |
271 | | { |
272 | | AutoRecordAtomicAccess<Recording> record; |
273 | | return aPtr.fetch_add(aVal, Base::OrderedOp::AtomicRMWOrder); |
274 | | } |
275 | | |
276 | | static T* sub(typename Base::ValueType& aPtr, ptrdiff_t aVal) |
277 | | { |
278 | | AutoRecordAtomicAccess<Recording> record; |
279 | | return aPtr.fetch_sub(aVal, Base::OrderedOp::AtomicRMWOrder); |
280 | | } |
281 | | }; |
282 | | |
283 | | template<typename T, MemoryOrdering Order, recordreplay::Behavior Recording> |
284 | | struct IntrinsicIncDec : public IntrinsicAddSub<T, Order, Recording> |
285 | | { |
286 | | typedef IntrinsicBase<T, Order> Base; |
287 | | |
288 | | static T inc(typename Base::ValueType& aPtr) |
289 | 1.82M | { |
290 | 1.82M | return IntrinsicAddSub<T, Order, Recording>::add(aPtr, 1); |
291 | 1.82M | } mozilla::detail::IntrinsicIncDec<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::inc(std::__1::atomic<int>&) Line | Count | Source | 289 | 19 | { | 290 | 19 | return IntrinsicAddSub<T, Order, Recording>::add(aPtr, 1); | 291 | 19 | } |
Unexecuted instantiation: mozilla::detail::IntrinsicIncDec<unsigned int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::inc(std::__1::atomic<unsigned int>&) mozilla::detail::IntrinsicIncDec<int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::inc(std::__1::atomic<int>&) Line | Count | Source | 289 | 5.78k | { | 290 | 5.78k | return IntrinsicAddSub<T, Order, Recording>::add(aPtr, 1); | 291 | 5.78k | } |
mozilla::detail::IntrinsicIncDec<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::inc(std::__1::atomic<unsigned long>&) Line | Count | Source | 289 | 3 | { | 290 | 3 | return IntrinsicAddSub<T, Order, Recording>::add(aPtr, 1); | 291 | 3 | } |
mozilla::detail::IntrinsicIncDec<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::inc(std::__1::atomic<int>&) Line | Count | Source | 289 | 5.92k | { | 290 | 5.92k | return IntrinsicAddSub<T, Order, Recording>::add(aPtr, 1); | 291 | 5.92k | } |
mozilla::detail::IntrinsicIncDec<unsigned int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::inc(std::__1::atomic<unsigned int>&) Line | Count | Source | 289 | 3 | { | 290 | 3 | return IntrinsicAddSub<T, Order, Recording>::add(aPtr, 1); | 291 | 3 | } |
Unexecuted instantiation: mozilla::detail::IntrinsicIncDec<unsigned long, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::inc(std::__1::atomic<unsigned long>&) Unexecuted instantiation: mozilla::detail::IntrinsicIncDec<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::inc(std::__1::atomic<unsigned int>&) Unexecuted instantiation: mozilla::detail::IntrinsicIncDec<int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::inc(std::__1::atomic<int>&) Unexecuted instantiation: mozilla::detail::IntrinsicIncDec<long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::inc(std::__1::atomic<long>&) mozilla::detail::IntrinsicIncDec<unsigned int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::inc(std::__1::atomic<unsigned int>&) Line | Count | Source | 289 | 189k | { | 290 | 189k | return IntrinsicAddSub<T, Order, Recording>::add(aPtr, 1); | 291 | 189k | } |
mozilla::detail::IntrinsicIncDec<unsigned long, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::inc(std::__1::atomic<unsigned long>&) Line | Count | Source | 289 | 1.62M | { | 290 | 1.62M | return IntrinsicAddSub<T, Order, Recording>::add(aPtr, 1); | 291 | 1.62M | } |
Unexecuted instantiation: mozilla::detail::IntrinsicIncDec<int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::inc(std::__1::atomic<int>&) mozilla::detail::IntrinsicIncDec<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::inc(std::__1::atomic<unsigned long>&) Line | Count | Source | 289 | 14 | { | 290 | 14 | return IntrinsicAddSub<T, Order, Recording>::add(aPtr, 1); | 291 | 14 | } |
Unexecuted instantiation: mozilla::detail::IntrinsicIncDec<int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0>::inc(std::__1::atomic<int>&) |
292 | | |
293 | | static T dec(typename Base::ValueType& aPtr) |
294 | 36.6k | { |
295 | 36.6k | return IntrinsicAddSub<T, Order, Recording>::sub(aPtr, 1); |
296 | 36.6k | } Unexecuted instantiation: mozilla::detail::IntrinsicIncDec<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::dec(std::__1::atomic<int>&) Unexecuted instantiation: mozilla::detail::IntrinsicIncDec<unsigned int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::dec(std::__1::atomic<unsigned int>&) mozilla::detail::IntrinsicIncDec<int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::dec(std::__1::atomic<int>&) Line | Count | Source | 294 | 5.77k | { | 295 | 5.77k | return IntrinsicAddSub<T, Order, Recording>::sub(aPtr, 1); | 296 | 5.77k | } |
mozilla::detail::IntrinsicIncDec<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::dec(std::__1::atomic<int>&) Line | Count | Source | 294 | 5.80k | { | 295 | 5.80k | return IntrinsicAddSub<T, Order, Recording>::sub(aPtr, 1); | 296 | 5.80k | } |
Unexecuted instantiation: mozilla::detail::IntrinsicIncDec<unsigned int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::dec(std::__1::atomic<unsigned int>&) Unexecuted instantiation: mozilla::detail::IntrinsicIncDec<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::dec(std::__1::atomic<unsigned int>&) Unexecuted instantiation: mozilla::detail::IntrinsicIncDec<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::dec(std::__1::atomic<unsigned long>&) Unexecuted instantiation: mozilla::detail::IntrinsicIncDec<int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::dec(std::__1::atomic<int>&) mozilla::detail::IntrinsicIncDec<unsigned long, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::dec(std::__1::atomic<unsigned long>&) Line | Count | Source | 294 | 1.76k | { | 295 | 1.76k | return IntrinsicAddSub<T, Order, Recording>::sub(aPtr, 1); | 296 | 1.76k | } |
mozilla::detail::IntrinsicIncDec<unsigned int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::dec(std::__1::atomic<unsigned int>&) Line | Count | Source | 294 | 23.2k | { | 295 | 23.2k | return IntrinsicAddSub<T, Order, Recording>::sub(aPtr, 1); | 296 | 23.2k | } |
mozilla::detail::IntrinsicIncDec<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::dec(std::__1::atomic<unsigned long>&) Line | Count | Source | 294 | 14 | { | 295 | 14 | return IntrinsicAddSub<T, Order, Recording>::sub(aPtr, 1); | 296 | 14 | } |
Unexecuted instantiation: mozilla::detail::IntrinsicIncDec<int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::dec(std::__1::atomic<int>&) mozilla::detail::IntrinsicIncDec<int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0>::dec(std::__1::atomic<int>&) Line | Count | Source | 294 | 11 | { | 295 | 11 | return IntrinsicAddSub<T, Order, Recording>::sub(aPtr, 1); | 296 | 11 | } |
|
297 | | }; |
298 | | |
299 | | template<typename T, MemoryOrdering Order, recordreplay::Behavior Recording> |
300 | | struct AtomicIntrinsics : public IntrinsicMemoryOps<T, Order, Recording>, |
301 | | public IntrinsicIncDec<T, Order, Recording> |
302 | | { |
303 | | typedef IntrinsicBase<T, Order> Base; |
304 | | |
305 | | static T or_(typename Base::ValueType& aPtr, T aVal) |
306 | 114 | { |
307 | 114 | AutoRecordAtomicAccess<Recording> record; |
308 | 114 | return aPtr.fetch_or(aVal, Base::OrderedOp::AtomicRMWOrder); |
309 | 114 | } Unexecuted instantiation: mozilla::detail::AtomicIntrinsics<unsigned int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::or_(std::__1::atomic<unsigned int>&, unsigned int) mozilla::detail::AtomicIntrinsics<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0>::or_(std::__1::atomic<unsigned int>&, unsigned int) Line | Count | Source | 306 | 114 | { | 307 | 114 | AutoRecordAtomicAccess<Recording> record; | 308 | 114 | return aPtr.fetch_or(aVal, Base::OrderedOp::AtomicRMWOrder); | 309 | 114 | } |
|
310 | | |
311 | | static T xor_(typename Base::ValueType& aPtr, T aVal) |
312 | | { |
313 | | AutoRecordAtomicAccess<Recording> record; |
314 | | return aPtr.fetch_xor(aVal, Base::OrderedOp::AtomicRMWOrder); |
315 | | } |
316 | | |
317 | | static T and_(typename Base::ValueType& aPtr, T aVal) |
318 | | { |
319 | | AutoRecordAtomicAccess<Recording> record; |
320 | | return aPtr.fetch_and(aVal, Base::OrderedOp::AtomicRMWOrder); |
321 | | } |
322 | | }; |
323 | | |
324 | | template<typename T, MemoryOrdering Order, recordreplay::Behavior Recording> |
325 | | struct AtomicIntrinsics<T*, Order, Recording> |
326 | | : public IntrinsicMemoryOps<T*, Order, Recording>, |
327 | | public IntrinsicIncDec<T*, Order, Recording> |
328 | | { |
329 | | }; |
330 | | |
331 | | template<typename T> |
332 | | struct ToStorageTypeArgument |
333 | | { |
334 | 3.25M | static constexpr T convert (T aT) { return aT; } mozilla::detail::ToStorageTypeArgument<int>::convert(int) Line | Count | Source | 334 | 5.84k | static constexpr T convert (T aT) { return aT; } |
mozilla::detail::ToStorageTypeArgument<unsigned long>::convert(unsigned long) Line | Count | Source | 334 | 91 | static constexpr T convert (T aT) { return aT; } |
mozilla::detail::ToStorageTypeArgument<mozilla::detail::LogFile*>::convert(mozilla::detail::LogFile*) Line | Count | Source | 334 | 6 | static constexpr T convert (T aT) { return aT; } |
mozilla::detail::ToStorageTypeArgument<PRThread*>::convert(PRThread*) Line | Count | Source | 334 | 3 | static constexpr T convert (T aT) { return aT; } |
Unexecuted instantiation: mozilla::detail::ToStorageTypeArgument<nsTArray<nsTString<char> >*>::convert(nsTArray<nsTString<char> >*) mozilla::detail::ToStorageTypeArgument<mozilla::net::TRRService::ConfirmationState>::convert(mozilla::net::TRRService::ConfirmationState) Line | Count | Source | 334 | 3 | static constexpr T convert (T aT) { return aT; } |
Unexecuted instantiation: mozilla::detail::ToStorageTypeArgument<mozilla::net::CompressMode>::convert(mozilla::net::CompressMode) Unexecuted instantiation: mozilla::detail::ToStorageTypeArgument<char*>::convert(char*) Unexecuted instantiation: mozilla::detail::ToStorageTypeArgument<nsresult>::convert(nsresult) Unexecuted instantiation: mozilla::detail::ToStorageTypeArgument<nsIThread*>::convert(nsIThread*) Unexecuted instantiation: mozilla::detail::ToStorageTypeArgument<long>::convert(long) Unexecuted instantiation: mozilla::detail::ToStorageTypeArgument<mozilla::net::nsHttpChannel::ResponseSource>::convert(mozilla::net::nsHttpChannel::ResponseSource) Unexecuted instantiation: mozilla::detail::ToStorageTypeArgument<GMPErr>::convert(GMPErr) Unexecuted instantiation: mozilla::detail::ToStorageTypeArgument<webrtc::VideoCodecMode>::convert(webrtc::VideoCodecMode) Unexecuted instantiation: mozilla::detail::ToStorageTypeArgument<mozilla::gfx::Job*>::convert(mozilla::gfx::Job*) Unexecuted instantiation: mozilla::detail::ToStorageTypeArgument<SkTypeface*>::convert(SkTypeface*) Unexecuted instantiation: mozilla::detail::ToStorageTypeArgument<mozilla::layers::APZCTreeManager*>::convert(mozilla::layers::APZCTreeManager*) Unexecuted instantiation: mozilla::detail::ToStorageTypeArgument<mozilla::dom::cache::ReadStream::Inner::State>::convert(mozilla::dom::cache::ReadStream::Inner::State) Unexecuted instantiation: mozilla::detail::ToStorageTypeArgument<mozilla::dom::AlternativeDataStreamListener::eStatus>::convert(mozilla::dom::AlternativeDataStreamListener::eStatus) Unexecuted instantiation: mozilla::detail::ToStorageTypeArgument<mozilla::Benchmark*>::convert(mozilla::Benchmark*) Unexecuted instantiation: mozilla::detail::ToStorageTypeArgument<mozilla::MultiWriterQueue<mozilla::DDLogMessage, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*>::convert(mozilla::MultiWriterQueue<mozilla::DDLogMessage, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*) Unexecuted instantiation: mozilla::detail::ToStorageTypeArgument<mozilla::TrackBuffersManager::EvictionState>::convert(mozilla::TrackBuffersManager::EvictionState) Unexecuted instantiation: mozilla::detail::ToStorageTypeArgument<mozilla::dom::IndexedDatabaseManager::LoggingMode>::convert(mozilla::dom::IndexedDatabaseManager::LoggingMode) Unexecuted instantiation: mozilla::detail::ToStorageTypeArgument<nsTString<char>*>::convert(nsTString<char>*) Unexecuted instantiation: mozilla::detail::ToStorageTypeArgument<mozilla::MultiWriterQueue<int, 1u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*>::convert(mozilla::MultiWriterQueue<int, 1u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::ToStorageTypeArgument<mozilla::MultiWriterQueue<int, 2u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*>::convert(mozilla::MultiWriterQueue<int, 2u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::ToStorageTypeArgument<mozilla::MultiWriterQueue<int, 4u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*>::convert(mozilla::MultiWriterQueue<int, 4u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::ToStorageTypeArgument<mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*>::convert(mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::ToStorageTypeArgument<mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*>::convert(mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::ToStorageTypeArgument<mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*>::convert(mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*) Unexecuted instantiation: mozilla::detail::ToStorageTypeArgument<mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*>::convert(mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*) mozilla::detail::ToStorageTypeArgument<JS::Zone::HelperThreadUse>::convert(JS::Zone::HelperThreadUse) Line | Count | Source | 334 | 9 | static constexpr T convert (T aT) { return aT; } |
mozilla::detail::ToStorageTypeArgument<JS::HeapState>::convert(JS::HeapState) Line | Count | Source | 334 | 3 | static constexpr T convert (T aT) { return aT; } |
mozilla::detail::ToStorageTypeArgument<js::StackFormat>::convert(js::StackFormat) Line | Count | Source | 334 | 3 | static constexpr T convert (T aT) { return aT; } |
mozilla::detail::ToStorageTypeArgument<void*>::convert(void*) Line | Count | Source | 334 | 3.24M | static constexpr T convert (T aT) { return aT; } |
mozilla::detail::ToStorageTypeArgument<mozilla::Vector<js::wasm::CodeSegment const*, 0ul, js::SystemAllocPolicy> const*>::convert(mozilla::Vector<js::wasm::CodeSegment const*, 0ul, js::SystemAllocPolicy> const*) Line | Count | Source | 334 | 3 | static constexpr T convert (T aT) { return aT; } |
mozilla::detail::ToStorageTypeArgument<JS::gcreason::Reason>::convert(JS::gcreason::Reason) Line | Count | Source | 334 | 3 | static constexpr T convert (T aT) { return aT; } |
mozilla::detail::ToStorageTypeArgument<js::gc::TriggerKind>::convert(js::gc::TriggerKind) Line | Count | Source | 334 | 21 | static constexpr T convert (T aT) { return aT; } |
|
335 | | }; |
336 | | |
337 | | template<typename T, MemoryOrdering Order, recordreplay::Behavior Recording> |
338 | | class AtomicBase |
339 | | { |
340 | | static_assert(sizeof(T) == 4 || sizeof(T) == 8, |
341 | | "mozilla/Atomics.h only supports 32-bit and 64-bit types"); |
342 | | |
343 | | protected: |
344 | | typedef typename detail::AtomicIntrinsics<T, Order, Recording> Intrinsics; |
345 | | typedef typename Intrinsics::ValueType ValueType; |
346 | | ValueType mValue; |
347 | | |
348 | | public: |
349 | 27.6k | constexpr AtomicBase() : mValue() {} Unexecuted instantiation: mozilla::detail::AtomicBase<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBase() mozilla::detail::AtomicBase<unsigned int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBase() Line | Count | Source | 349 | 3 | constexpr AtomicBase() : mValue() {} |
Unexecuted instantiation: mozilla::detail::AtomicBase<PRThread*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBase() mozilla::detail::AtomicBase<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::AtomicBase() Line | Count | Source | 349 | 7 | constexpr AtomicBase() : mValue() {} |
Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::detail::ThreadSafeWeakReference<mozilla::gfx::UnscaledFont>*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBase() Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::detail::ThreadSafeWeakReference<mozilla::gfx::ScaledFont>*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBase() Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::gfx::UnscaledFont*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBase() Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::gfx::ScaledFont*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBase() Unexecuted instantiation: mozilla::detail::AtomicBase<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBase() Unexecuted instantiation: mozilla::detail::AtomicBase<long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBase() Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::MediaEngineSourceState, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBase() mozilla::detail::AtomicBase<long long, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::AtomicBase() Line | Count | Source | 349 | 270 | constexpr AtomicBase() : mValue() {} |
mozilla::detail::AtomicBase<char const*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::AtomicBase() Line | Count | Source | 349 | 10.2k | constexpr AtomicBase() : mValue() {} |
mozilla::detail::AtomicBase<void*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::AtomicBase() Line | Count | Source | 349 | 5.12k | constexpr AtomicBase() : mValue() {} |
mozilla::detail::AtomicBase<int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::AtomicBase() Line | Count | Source | 349 | 5.12k | constexpr AtomicBase() : mValue() {} |
mozilla::detail::AtomicBase<unsigned int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::AtomicBase() Line | Count | Source | 349 | 5.13k | constexpr AtomicBase() : mValue() {} |
mozilla::detail::AtomicBase<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0>::AtomicBase() Line | Count | Source | 349 | 1.50k | constexpr AtomicBase() : mValue() {} |
mozilla::detail::AtomicBase<js::gc::ArenaLists::ConcurrentUse, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::AtomicBase() Line | Count | Source | 349 | 261 | constexpr AtomicBase() : mValue() {} |
|
350 | | explicit constexpr AtomicBase(T aInit) |
351 | | : mValue(ToStorageTypeArgument<T>::convert(aInit)) |
352 | 3.25M | {} mozilla::detail::AtomicBase<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBase(int) Line | Count | Source | 352 | 53 | {} |
mozilla::detail::AtomicBase<mozilla::LogLevel, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0>::AtomicBase(mozilla::LogLevel) Line | Count | Source | 352 | 75 | {} |
mozilla::detail::AtomicBase<unsigned int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::AtomicBase(unsigned int) Line | Count | Source | 352 | 3 | {} |
mozilla::detail::AtomicBase<mozilla::detail::LogFile*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::AtomicBase(mozilla::detail::LogFile*) Line | Count | Source | 352 | 3 | {} |
mozilla::detail::AtomicBase<mozilla::detail::LogFile*, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::AtomicBase(mozilla::detail::LogFile*) Line | Count | Source | 352 | 3 | {} |
mozilla::detail::AtomicBase<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::AtomicBase(unsigned int) Line | Count | Source | 352 | 69 | {} |
mozilla::detail::AtomicBase<PRThread*, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::AtomicBase(PRThread*) Line | Count | Source | 352 | 3 | {} |
mozilla::detail::AtomicBase<unsigned int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBase(unsigned int) Line | Count | Source | 352 | 160 | {} |
mozilla::detail::AtomicBase<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBase(unsigned long) Line | Count | Source | 352 | 1 | {} |
mozilla::detail::AtomicBase<unsigned int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::AtomicBase(unsigned int) Line | Count | Source | 352 | 45 | {} |
mozilla::detail::AtomicBase<int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::AtomicBase(int) Line | Count | Source | 352 | 3 | {} |
mozilla::detail::AtomicBase<mozilla::net::TRRService::ConfirmationState, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::AtomicBase(mozilla::net::TRRService::ConfirmationState) Line | Count | Source | 352 | 3 | {} |
Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::net::CompressMode, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::AtomicBase(mozilla::net::CompressMode) Unexecuted instantiation: mozilla::detail::AtomicBase<unsigned long, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::AtomicBase(unsigned long) Unexecuted instantiation: mozilla::detail::AtomicBase<char*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBase(char*) Unexecuted instantiation: mozilla::detail::AtomicBase<nsresult, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::AtomicBase(nsresult) Unexecuted instantiation: mozilla::detail::AtomicBase<nsIThread*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBase(nsIThread*) Unexecuted instantiation: mozilla::detail::AtomicBase<long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBase(long) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::net::nsHttpChannel::ResponseSource, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::AtomicBase(mozilla::net::nsHttpChannel::ResponseSource) Unexecuted instantiation: mozilla::detail::AtomicBase<long, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::AtomicBase(long) Unexecuted instantiation: mozilla::detail::AtomicBase<GMPErr, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::AtomicBase(GMPErr) Unexecuted instantiation: mozilla::detail::AtomicBase<webrtc::VideoCodecMode, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBase(webrtc::VideoCodecMode) mozilla::detail::AtomicBase<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::AtomicBase(int) Line | Count | Source | 352 | 5.79k | {} |
Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::gfx::Job*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBase(mozilla::gfx::Job*) Unexecuted instantiation: mozilla::detail::AtomicBase<SkTypeface*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBase(SkTypeface*) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::layers::APZCTreeManager*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBase(mozilla::layers::APZCTreeManager*) Unexecuted instantiation: mozilla::detail::AtomicBase<unsigned long, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::AtomicBase(unsigned long) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::dom::cache::ReadStream::Inner::State, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBase(mozilla::dom::cache::ReadStream::Inner::State) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::dom::AlternativeDataStreamListener::eStatus, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBase(mozilla::dom::AlternativeDataStreamListener::eStatus) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::Benchmark*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBase(mozilla::Benchmark*) mozilla::detail::AtomicBase<mozilla::LogModule*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::AtomicBase(mozilla::LogModule*) Line | Count | Source | 352 | 3 | {} |
Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::MultiWriterQueue<mozilla::DDLogMessage, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::AtomicBase(mozilla::MultiWriterQueue<mozilla::DDLogMessage, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::TrackBuffersManager::EvictionState, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBase(mozilla::TrackBuffersManager::EvictionState) mozilla::detail::AtomicBase<js::ProfilingStackFrame*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::AtomicBase(js::ProfilingStackFrame*) Line | Count | Source | 352 | 49 | {} |
mozilla::detail::AtomicBase<unsigned int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::AtomicBase(unsigned int) Line | Count | Source | 352 | 352 | {} |
Unexecuted instantiation: mozilla::detail::AtomicBase<nsresult, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBase(nsresult) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::MultiWriterQueue<int, 1u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::AtomicBase(mozilla::MultiWriterQueue<int, 1u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::MultiWriterQueue<int, 2u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::AtomicBase(mozilla::MultiWriterQueue<int, 2u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::MultiWriterQueue<int, 4u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::AtomicBase(mozilla::MultiWriterQueue<int, 4u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::AtomicBase(mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::AtomicBase(mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::AtomicBase(mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::AtomicBase(mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*) mozilla::detail::AtomicBase<JS::Zone::HelperThreadUse, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::AtomicBase(JS::Zone::HelperThreadUse) Line | Count | Source | 352 | 9 | {} |
mozilla::detail::AtomicBase<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0>::AtomicBase(unsigned int) Line | Count | Source | 352 | 50 | {} |
mozilla::detail::AtomicBase<unsigned long, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::AtomicBase(unsigned long) Line | Count | Source | 352 | 45 | {} |
mozilla::detail::AtomicBase<unsigned long, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0>::AtomicBase(unsigned long) Line | Count | Source | 352 | 36 | {} |
mozilla::detail::AtomicBase<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::AtomicBase(unsigned long) Line | Count | Source | 352 | 9 | {} |
mozilla::detail::AtomicBase<JS::HeapState, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::AtomicBase(JS::HeapState) Line | Count | Source | 352 | 3 | {} |
mozilla::detail::AtomicBase<js::StackFormat, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::AtomicBase(js::StackFormat) Line | Count | Source | 352 | 3 | {} |
mozilla::detail::AtomicBase<void*, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::AtomicBase(void*) Line | Count | Source | 352 | 3.24M | {} |
mozilla::detail::AtomicBase<mozilla::Vector<js::wasm::CodeSegment const*, 0ul, js::SystemAllocPolicy> const*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBase(mozilla::Vector<js::wasm::CodeSegment const*, 0ul, js::SystemAllocPolicy> const*) Line | Count | Source | 352 | 3 | {} |
mozilla::detail::AtomicBase<JS::gcreason::Reason, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0>::AtomicBase(JS::gcreason::Reason) Line | Count | Source | 352 | 3 | {} |
mozilla::detail::AtomicBase<js::gc::TriggerKind, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::AtomicBase(js::gc::TriggerKind) Line | Count | Source | 352 | 21 | {} |
|
353 | | |
354 | | // Note: we can't provide operator T() here because Atomic<bool> inherits |
355 | | // from AtomcBase with T=uint32_t and not T=bool. If we implemented |
356 | | // operator T() here, it would cause errors when comparing Atomic<bool> with |
357 | | // a regular bool. |
358 | | |
359 | | T operator=(T aVal) |
360 | 8.89M | { |
361 | 8.89M | Intrinsics::store(mValue, aVal); |
362 | 8.89M | return aVal; |
363 | 8.89M | } Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::LogLevel, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0>::operator=(mozilla::LogLevel) mozilla::detail::AtomicBase<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator=(int) Line | Count | Source | 360 | 416 | { | 361 | 416 | Intrinsics::store(mValue, aVal); | 362 | 416 | return aVal; | 363 | 416 | } |
Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::gfx::UnscaledFont*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator=(mozilla::gfx::UnscaledFont*) mozilla::detail::AtomicBase<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0>::operator=(unsigned int) Line | Count | Source | 360 | 743 | { | 361 | 743 | Intrinsics::store(mValue, aVal); | 362 | 743 | return aVal; | 363 | 743 | } |
mozilla::detail::AtomicBase<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::operator=(int) Line | Count | Source | 360 | 5.79k | { | 361 | 5.79k | Intrinsics::store(mValue, aVal); | 362 | 5.79k | return aVal; | 363 | 5.79k | } |
mozilla::detail::AtomicBase<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::operator=(unsigned int) Line | Count | Source | 360 | 263 | { | 361 | 263 | Intrinsics::store(mValue, aVal); | 362 | 263 | return aVal; | 363 | 263 | } |
Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::detail::LogFile*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::operator=(mozilla::detail::LogFile*) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::detail::LogFile*, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::operator=(mozilla::detail::LogFile*) mozilla::detail::AtomicBase<mozilla::LogModule*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::operator=(mozilla::LogModule*) Line | Count | Source | 360 | 75 | { | 361 | 75 | Intrinsics::store(mValue, aVal); | 362 | 75 | return aVal; | 363 | 75 | } |
Unexecuted instantiation: mozilla::detail::AtomicBase<unsigned long, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::operator=(unsigned long) mozilla::detail::AtomicBase<unsigned int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator=(unsigned int) Line | Count | Source | 360 | 34 | { | 361 | 34 | Intrinsics::store(mValue, aVal); | 362 | 34 | return aVal; | 363 | 34 | } |
mozilla::detail::AtomicBase<PRThread*, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::operator=(PRThread*) Line | Count | Source | 360 | 8.88M | { | 361 | 8.88M | Intrinsics::store(mValue, aVal); | 362 | 8.88M | return aVal; | 363 | 8.88M | } |
Unexecuted instantiation: mozilla::detail::AtomicBase<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator=(unsigned long) Unexecuted instantiation: mozilla::detail::AtomicBase<PRThread*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator=(PRThread*) Unexecuted instantiation: mozilla::detail::AtomicBase<unsigned int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::operator=(unsigned int) mozilla::detail::AtomicBase<int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::operator=(int) Line | Count | Source | 360 | 21 | { | 361 | 21 | Intrinsics::store(mValue, aVal); | 362 | 21 | return aVal; | 363 | 21 | } |
mozilla::detail::AtomicBase<unsigned int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::operator=(unsigned int) Line | Count | Source | 360 | 1.67k | { | 361 | 1.67k | Intrinsics::store(mValue, aVal); | 362 | 1.67k | return aVal; | 363 | 1.67k | } |
Unexecuted instantiation: mozilla::detail::AtomicBase<int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::operator=(int) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::net::TRRService::ConfirmationState, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::operator=(mozilla::net::TRRService::ConfirmationState) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::net::CompressMode, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::operator=(mozilla::net::CompressMode) Unexecuted instantiation: mozilla::detail::AtomicBase<unsigned long, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::operator=(unsigned long) Unexecuted instantiation: mozilla::detail::AtomicBase<char*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator=(char*) Unexecuted instantiation: mozilla::detail::AtomicBase<nsresult, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::operator=(nsresult) Unexecuted instantiation: mozilla::detail::AtomicBase<nsIThread*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator=(nsIThread*) Unexecuted instantiation: mozilla::detail::AtomicBase<long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator=(long) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::net::nsHttpChannel::ResponseSource, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::operator=(mozilla::net::nsHttpChannel::ResponseSource) Unexecuted instantiation: mozilla::detail::AtomicBase<GMPErr, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::operator=(GMPErr) Unexecuted instantiation: mozilla::detail::AtomicBase<webrtc::VideoCodecMode, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator=(webrtc::VideoCodecMode) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::gfx::ScaledFont*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator=(mozilla::gfx::ScaledFont*) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::layers::APZCTreeManager*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator=(mozilla::layers::APZCTreeManager*) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::dom::AlternativeDataStreamListener::eStatus, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator=(mozilla::dom::AlternativeDataStreamListener::eStatus) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::MultiWriterQueue<mozilla::DDLogMessage, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::operator=(mozilla::MultiWriterQueue<mozilla::DDLogMessage, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::TrackBuffersManager::EvictionState, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator=(mozilla::TrackBuffersManager::EvictionState) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::MediaEngineSourceState, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator=(mozilla::MediaEngineSourceState) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::dom::IndexedDatabaseManager::LoggingMode, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator=(mozilla::dom::IndexedDatabaseManager::LoggingMode) Unexecuted instantiation: ProcessHangMonitor.cpp:mozilla::detail::AtomicBase<(anonymous namespace)::HangMonitorChild*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::operator=((anonymous namespace)::HangMonitorChild*) mozilla::detail::AtomicBase<long long, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::operator=(long long) Line | Count | Source | 360 | 270 | { | 361 | 270 | Intrinsics::store(mValue, aVal); | 362 | 270 | return aVal; | 363 | 270 | } |
Unexecuted instantiation: mozilla::detail::AtomicBase<nsresult, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator=(nsresult) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::MultiWriterQueue<int, 1u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::operator=(mozilla::MultiWriterQueue<int, 1u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::MultiWriterQueue<int, 2u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::operator=(mozilla::MultiWriterQueue<int, 2u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::MultiWriterQueue<int, 4u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::operator=(mozilla::MultiWriterQueue<int, 4u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::operator=(mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::operator=(mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::operator=(mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::operator=(mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*) Unexecuted instantiation: mozilla::detail::AtomicBase<unsigned long, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::operator=(unsigned long) Unexecuted instantiation: mozilla::detail::AtomicBase<void*, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::operator=(void*) Unexecuted instantiation: mozilla::detail::AtomicBase<js::StackFormat, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::operator=(js::StackFormat) Unexecuted instantiation: mozilla::detail::AtomicBase<JS::Zone::HelperThreadUse, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::operator=(JS::Zone::HelperThreadUse) mozilla::detail::AtomicBase<js::ProfilingStackFrame*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::operator=(js::ProfilingStackFrame*) Line | Count | Source | 360 | 40 | { | 361 | 40 | Intrinsics::store(mValue, aVal); | 362 | 40 | return aVal; | 363 | 40 | } |
mozilla::detail::AtomicBase<js::Mutex*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::operator=(js::Mutex*) Line | Count | Source | 360 | 3 | { | 361 | 3 | Intrinsics::store(mValue, aVal); | 362 | 3 | return aVal; | 363 | 3 | } |
mozilla::detail::AtomicBase<bool (*)(mozilla::Vector<char, 0ul, js::SystemAllocPolicy>*), (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator=(bool (*)(mozilla::Vector<char, 0ul, js::SystemAllocPolicy>*)) Line | Count | Source | 360 | 3 | { | 361 | 3 | Intrinsics::store(mValue, aVal); | 362 | 3 | return aVal; | 363 | 3 | } |
mozilla::detail::AtomicBase<void (*)(), (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator=(void (*)()) Line | Count | Source | 360 | 3 | { | 361 | 3 | Intrinsics::store(mValue, aVal); | 362 | 3 | return aVal; | 363 | 3 | } |
mozilla::detail::AtomicBase<double (*)(double), (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::operator=(double (*)(double)) Line | Count | Source | 360 | 3 | { | 361 | 3 | Intrinsics::store(mValue, aVal); | 362 | 3 | return aVal; | 363 | 3 | } |
mozilla::detail::AtomicBase<unsigned long, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0>::operator=(unsigned long) Line | Count | Source | 360 | 396 | { | 361 | 396 | Intrinsics::store(mValue, aVal); | 362 | 396 | return aVal; | 363 | 396 | } |
Unexecuted instantiation: mozilla::detail::AtomicBase<BuiltinThunks const*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator=(BuiltinThunks const*) mozilla::detail::AtomicBase<js::gc::ArenaLists::ConcurrentUse, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::operator=(js::gc::ArenaLists::ConcurrentUse) Line | Count | Source | 360 | 799 | { | 361 | 799 | Intrinsics::store(mValue, aVal); | 362 | 799 | return aVal; | 363 | 799 | } |
mozilla::detail::AtomicBase<js::gc::TriggerKind, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::operator=(js::gc::TriggerKind) Line | Count | Source | 360 | 36 | { | 361 | 36 | Intrinsics::store(mValue, aVal); | 362 | 36 | return aVal; | 363 | 36 | } |
mozilla::detail::AtomicBase<JS::gcreason::Reason, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0>::operator=(JS::gcreason::Reason) Line | Count | Source | 360 | 200 | { | 361 | 200 | Intrinsics::store(mValue, aVal); | 362 | 200 | return aVal; | 363 | 200 | } |
mozilla::detail::AtomicBase<JS::HeapState, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::operator=(JS::HeapState) Line | Count | Source | 360 | 202 | { | 361 | 202 | Intrinsics::store(mValue, aVal); | 362 | 202 | return aVal; | 363 | 202 | } |
|
364 | | |
365 | | /** |
366 | | * Performs an atomic swap operation. aVal is stored and the previous |
367 | | * value of this variable is returned. |
368 | | */ |
369 | | T exchange(T aVal) |
370 | 249 | { |
371 | 249 | return Intrinsics::exchange(mValue, aVal); |
372 | 249 | } Unexecuted instantiation: mozilla::detail::AtomicBase<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::exchange(int) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::detail::LogFile*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::exchange(mozilla::detail::LogFile*) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::detail::LogFile*, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::exchange(mozilla::detail::LogFile*) Unexecuted instantiation: mozilla::detail::AtomicBase<unsigned int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::exchange(unsigned int) Unexecuted instantiation: mozilla::detail::AtomicBase<int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::exchange(int) Unexecuted instantiation: mozilla::detail::AtomicBase<nsTArray<nsTString<char> >*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::exchange(nsTArray<nsTString<char> >*) Unexecuted instantiation: mozilla::detail::AtomicBase<PRThread*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::exchange(PRThread*) Unexecuted instantiation: mozilla::detail::AtomicBase<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::exchange(unsigned long) Unexecuted instantiation: mozilla::detail::AtomicBase<long long, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::exchange(long long) Unexecuted instantiation: mozilla::detail::AtomicBase<nsTString<char>*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::exchange(nsTString<char>*) mozilla::detail::AtomicBase<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0>::exchange(unsigned int) Line | Count | Source | 370 | 249 | { | 371 | 249 | return Intrinsics::exchange(mValue, aVal); | 372 | 249 | } |
Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::Vector<js::wasm::CodeSegment const*, 0ul, js::SystemAllocPolicy> const*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::exchange(mozilla::Vector<js::wasm::CodeSegment const*, 0ul, js::SystemAllocPolicy> const*) |
373 | | |
374 | | /** |
375 | | * Performs an atomic compare-and-swap operation and returns true if it |
376 | | * succeeded. This is equivalent to atomically doing |
377 | | * |
378 | | * if (mValue == aOldValue) { |
379 | | * mValue = aNewValue; |
380 | | * return true; |
381 | | * } else { |
382 | | * return false; |
383 | | * } |
384 | | */ |
385 | | bool compareExchange(T aOldValue, T aNewValue) |
386 | 22 | { |
387 | 22 | return Intrinsics::compareExchange(mValue, aOldValue, aNewValue); |
388 | 22 | } Unexecuted instantiation: mozilla::detail::AtomicBase<unsigned int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::compareExchange(unsigned int, unsigned int) mozilla::detail::AtomicBase<mozilla::OffTheBooksMutex*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::compareExchange(mozilla::OffTheBooksMutex*, mozilla::OffTheBooksMutex*) Line | Count | Source | 386 | 16 | { | 387 | 16 | return Intrinsics::compareExchange(mValue, aOldValue, aNewValue); | 388 | 16 | } |
mozilla::detail::AtomicBase<mozilla::OffTheBooksMutex*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::compareExchange(mozilla::OffTheBooksMutex*, mozilla::OffTheBooksMutex*) Line | Count | Source | 386 | 6 | { | 387 | 6 | return Intrinsics::compareExchange(mValue, aOldValue, aNewValue); | 388 | 6 | } |
Unexecuted instantiation: mozilla::detail::AtomicBase<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::compareExchange(int, int) Unexecuted instantiation: mozilla::detail::AtomicBase<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::compareExchange(unsigned int, unsigned int) Unexecuted instantiation: mozilla::detail::AtomicBase<unsigned long, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::compareExchange(unsigned long, unsigned long) Unexecuted instantiation: mozilla::detail::AtomicBase<int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::compareExchange(int, int) Unexecuted instantiation: mozilla::detail::AtomicBase<unsigned int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::compareExchange(unsigned int, unsigned int) Unexecuted instantiation: mozilla::detail::AtomicBase<nsTArray<nsTString<char> >*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::compareExchange(nsTArray<nsTString<char> >*, nsTArray<nsTString<char> >*) Unexecuted instantiation: mozilla::detail::AtomicBase<unsigned int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::compareExchange(unsigned int, unsigned int) Unexecuted instantiation: mozilla::detail::AtomicBase<PRThread*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::compareExchange(PRThread*, PRThread*) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::gfx::Job*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::compareExchange(mozilla::gfx::Job*, mozilla::gfx::Job*) Unexecuted instantiation: mozilla::detail::AtomicBase<SkTypeface*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::compareExchange(SkTypeface*, SkTypeface*) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::detail::ThreadSafeWeakReference<mozilla::gfx::UnscaledFont>*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::compareExchange(mozilla::detail::ThreadSafeWeakReference<mozilla::gfx::UnscaledFont>*, mozilla::detail::ThreadSafeWeakReference<mozilla::gfx::UnscaledFont>*) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::detail::ThreadSafeWeakReference<mozilla::gfx::ScaledFont>*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::compareExchange(mozilla::detail::ThreadSafeWeakReference<mozilla::gfx::ScaledFont>*, mozilla::detail::ThreadSafeWeakReference<mozilla::gfx::ScaledFont>*) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::dom::cache::ReadStream::Inner::State, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::compareExchange(mozilla::dom::cache::ReadStream::Inner::State, mozilla::dom::cache::ReadStream::Inner::State) Unexecuted instantiation: mozilla::detail::AtomicBase<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::compareExchange(unsigned long, unsigned long) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::MultiWriterQueue<mozilla::DDLogMessage, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::compareExchange(mozilla::MultiWriterQueue<mozilla::DDLogMessage, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*, mozilla::MultiWriterQueue<mozilla::DDLogMessage, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*) Unexecuted instantiation: mozilla::detail::AtomicBase<int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::compareExchange(int, int) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::MultiWriterQueue<int, 1u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::compareExchange(mozilla::MultiWriterQueue<int, 1u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, mozilla::MultiWriterQueue<int, 1u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::MultiWriterQueue<int, 2u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::compareExchange(mozilla::MultiWriterQueue<int, 2u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, mozilla::MultiWriterQueue<int, 2u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::MultiWriterQueue<int, 4u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::compareExchange(mozilla::MultiWriterQueue<int, 4u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, mozilla::MultiWriterQueue<int, 4u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::compareExchange(mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::compareExchange(mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::compareExchange(mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*, mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*) Unexecuted instantiation: mozilla::detail::AtomicBase<mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::compareExchange(mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*, mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*) |
389 | | |
390 | | private: |
391 | | AtomicBase(const AtomicBase& aCopy) = delete; |
392 | | }; |
393 | | |
394 | | template<typename T, MemoryOrdering Order, recordreplay::Behavior Recording> |
395 | | class AtomicBaseIncDec : public AtomicBase<T, Order, Recording> |
396 | | { |
397 | | typedef typename detail::AtomicBase<T, Order, Recording> Base; |
398 | | |
399 | | public: |
400 | 27.3k | constexpr AtomicBaseIncDec() : Base() {} Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec() mozilla::detail::AtomicBaseIncDec<unsigned int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec() Line | Count | Source | 400 | 3 | constexpr AtomicBaseIncDec() : Base() {} |
Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<PRThread*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec() Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<mozilla::detail::ThreadSafeWeakReference<mozilla::gfx::UnscaledFont>*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec() Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<mozilla::detail::ThreadSafeWeakReference<mozilla::gfx::ScaledFont>*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec() Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<mozilla::gfx::UnscaledFont*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec() Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<mozilla::gfx::ScaledFont*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec() Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec() Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec() mozilla::detail::AtomicBaseIncDec<long long, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec() Line | Count | Source | 400 | 270 | constexpr AtomicBaseIncDec() : Base() {} |
mozilla::detail::AtomicBaseIncDec<char const*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::AtomicBaseIncDec() Line | Count | Source | 400 | 10.2k | constexpr AtomicBaseIncDec() : Base() {} |
mozilla::detail::AtomicBaseIncDec<void*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::AtomicBaseIncDec() Line | Count | Source | 400 | 5.12k | constexpr AtomicBaseIncDec() : Base() {} |
mozilla::detail::AtomicBaseIncDec<int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::AtomicBaseIncDec() Line | Count | Source | 400 | 5.12k | constexpr AtomicBaseIncDec() : Base() {} |
mozilla::detail::AtomicBaseIncDec<unsigned int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::AtomicBaseIncDec() Line | Count | Source | 400 | 5.13k | constexpr AtomicBaseIncDec() : Base() {} |
mozilla::detail::AtomicBaseIncDec<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0>::AtomicBaseIncDec() Line | Count | Source | 400 | 1.50k | constexpr AtomicBaseIncDec() : Base() {} |
|
401 | 3.25M | explicit constexpr AtomicBaseIncDec(T aInit) : Base(aInit) {} mozilla::detail::AtomicBaseIncDec<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec(int) Line | Count | Source | 401 | 53 | explicit constexpr AtomicBaseIncDec(T aInit) : Base(aInit) {} |
mozilla::detail::AtomicBaseIncDec<unsigned int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec(unsigned int) Line | Count | Source | 401 | 3 | explicit constexpr AtomicBaseIncDec(T aInit) : Base(aInit) {} |
mozilla::detail::AtomicBaseIncDec<mozilla::detail::LogFile*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec(mozilla::detail::LogFile*) Line | Count | Source | 401 | 3 | explicit constexpr AtomicBaseIncDec(T aInit) : Base(aInit) {} |
mozilla::detail::AtomicBaseIncDec<mozilla::detail::LogFile*, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec(mozilla::detail::LogFile*) Line | Count | Source | 401 | 3 | explicit constexpr AtomicBaseIncDec(T aInit) : Base(aInit) {} |
mozilla::detail::AtomicBaseIncDec<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec(unsigned int) Line | Count | Source | 401 | 24 | explicit constexpr AtomicBaseIncDec(T aInit) : Base(aInit) {} |
mozilla::detail::AtomicBaseIncDec<PRThread*, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec(PRThread*) Line | Count | Source | 401 | 3 | explicit constexpr AtomicBaseIncDec(T aInit) : Base(aInit) {} |
mozilla::detail::AtomicBaseIncDec<unsigned int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec(unsigned int) Line | Count | Source | 401 | 34 | explicit constexpr AtomicBaseIncDec(T aInit) : Base(aInit) {} |
mozilla::detail::AtomicBaseIncDec<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec(unsigned long) Line | Count | Source | 401 | 1 | explicit constexpr AtomicBaseIncDec(T aInit) : Base(aInit) {} |
mozilla::detail::AtomicBaseIncDec<int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec(int) Line | Count | Source | 401 | 3 | explicit constexpr AtomicBaseIncDec(T aInit) : Base(aInit) {} |
Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<unsigned long, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec(unsigned long) Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<char*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec(char*) Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<nsIThread*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec(nsIThread*) Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec(long) Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<long, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec(long) mozilla::detail::AtomicBaseIncDec<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::AtomicBaseIncDec(int) Line | Count | Source | 401 | 5.79k | explicit constexpr AtomicBaseIncDec(T aInit) : Base(aInit) {} |
Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<mozilla::gfx::Job*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec(mozilla::gfx::Job*) Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<SkTypeface*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec(SkTypeface*) Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<mozilla::layers::APZCTreeManager*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec(mozilla::layers::APZCTreeManager*) Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<unsigned long, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec(unsigned long) Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<mozilla::Benchmark*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec(mozilla::Benchmark*) mozilla::detail::AtomicBaseIncDec<mozilla::LogModule*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::AtomicBaseIncDec(mozilla::LogModule*) Line | Count | Source | 401 | 3 | explicit constexpr AtomicBaseIncDec(T aInit) : Base(aInit) {} |
Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<mozilla::MultiWriterQueue<mozilla::DDLogMessage, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec(mozilla::MultiWriterQueue<mozilla::DDLogMessage, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*) mozilla::detail::AtomicBaseIncDec<js::ProfilingStackFrame*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::AtomicBaseIncDec(js::ProfilingStackFrame*) Line | Count | Source | 401 | 49 | explicit constexpr AtomicBaseIncDec(T aInit) : Base(aInit) {} |
mozilla::detail::AtomicBaseIncDec<unsigned int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::AtomicBaseIncDec(unsigned int) Line | Count | Source | 401 | 70 | explicit constexpr AtomicBaseIncDec(T aInit) : Base(aInit) {} |
Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<mozilla::MultiWriterQueue<int, 1u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec(mozilla::MultiWriterQueue<int, 1u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<mozilla::MultiWriterQueue<int, 2u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec(mozilla::MultiWriterQueue<int, 2u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<mozilla::MultiWriterQueue<int, 4u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec(mozilla::MultiWriterQueue<int, 4u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec(mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec(mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec(mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*) Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec(mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*) mozilla::detail::AtomicBaseIncDec<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0>::AtomicBaseIncDec(unsigned int) Line | Count | Source | 401 | 36 | explicit constexpr AtomicBaseIncDec(T aInit) : Base(aInit) {} |
mozilla::detail::AtomicBaseIncDec<unsigned long, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::AtomicBaseIncDec(unsigned long) Line | Count | Source | 401 | 45 | explicit constexpr AtomicBaseIncDec(T aInit) : Base(aInit) {} |
mozilla::detail::AtomicBaseIncDec<unsigned long, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0>::AtomicBaseIncDec(unsigned long) Line | Count | Source | 401 | 36 | explicit constexpr AtomicBaseIncDec(T aInit) : Base(aInit) {} |
mozilla::detail::AtomicBaseIncDec<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::AtomicBaseIncDec(unsigned long) Line | Count | Source | 401 | 9 | explicit constexpr AtomicBaseIncDec(T aInit) : Base(aInit) {} |
mozilla::detail::AtomicBaseIncDec<void*, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec(void*) Line | Count | Source | 401 | 3.24M | explicit constexpr AtomicBaseIncDec(T aInit) : Base(aInit) {} |
mozilla::detail::AtomicBaseIncDec<mozilla::Vector<js::wasm::CodeSegment const*, 0ul, js::SystemAllocPolicy> const*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::AtomicBaseIncDec(mozilla::Vector<js::wasm::CodeSegment const*, 0ul, js::SystemAllocPolicy> const*) Line | Count | Source | 401 | 3 | explicit constexpr AtomicBaseIncDec(T aInit) : Base(aInit) {} |
|
402 | | |
403 | | using Base::operator=; |
404 | | |
405 | 59.4M | operator T() const { return Base::Intrinsics::load(Base::mValue); } Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::operator int() const Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<char const*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::operator char const*() const mozilla::detail::AtomicBaseIncDec<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator int() const Line | Count | Source | 405 | 512 | operator T() const { return Base::Intrinsics::load(Base::mValue); } |
mozilla::detail::AtomicBaseIncDec<mozilla::OffTheBooksMutex*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator mozilla::OffTheBooksMutex*() const Line | Count | Source | 405 | 1.08k | operator T() const { return Base::Intrinsics::load(Base::mValue); } |
mozilla::detail::AtomicBaseIncDec<mozilla::OffTheBooksMutex*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::operator mozilla::OffTheBooksMutex*() const Line | Count | Source | 405 | 5.05k | operator T() const { return Base::Intrinsics::load(Base::mValue); } |
mozilla::detail::AtomicBaseIncDec<unsigned int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator unsigned int() const Line | Count | Source | 405 | 57 | operator T() const { return Base::Intrinsics::load(Base::mValue); } |
Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<mozilla::detail::ThreadSafeWeakReference<mozilla::gfx::UnscaledFont>*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator mozilla::detail::ThreadSafeWeakReference<mozilla::gfx::UnscaledFont>*() const Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<mozilla::detail::ThreadSafeWeakReference<mozilla::gfx::ScaledFont>*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator mozilla::detail::ThreadSafeWeakReference<mozilla::gfx::ScaledFont>*() const mozilla::detail::AtomicBaseIncDec<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0>::operator unsigned int() const Line | Count | Source | 405 | 14.6M | operator T() const { return Base::Intrinsics::load(Base::mValue); } |
mozilla::detail::AtomicBaseIncDec<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::operator unsigned int() const Line | Count | Source | 405 | 17 | operator T() const { return Base::Intrinsics::load(Base::mValue); } |
Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<mozilla::detail::LogFile*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::operator mozilla::detail::LogFile*() const Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<mozilla::detail::LogFile*, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::operator mozilla::detail::LogFile*() const mozilla::detail::AtomicBaseIncDec<mozilla::LogModule*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::operator mozilla::LogModule*() const Line | Count | Source | 405 | 23.5M | operator T() const { return Base::Intrinsics::load(Base::mValue); } |
Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<unsigned long, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::operator unsigned long() const mozilla::detail::AtomicBaseIncDec<PRThread*, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::operator PRThread*() const Line | Count | Source | 405 | 6.36M | operator T() const { return Base::Intrinsics::load(Base::mValue); } |
Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator unsigned long() const Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<PRThread*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator PRThread*() const Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::operator int() const mozilla::detail::AtomicBaseIncDec<int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::operator int() const Line | Count | Source | 405 | 4 | operator T() const { return Base::Intrinsics::load(Base::mValue); } |
mozilla::detail::AtomicBaseIncDec<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::operator unsigned long() const Line | Count | Source | 405 | 1.62M | operator T() const { return Base::Intrinsics::load(Base::mValue); } |
Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator long() const Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::operator int() const Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<long, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::operator long() const Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<unsigned long, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::operator unsigned long() const Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<char*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator char*() const Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<unsigned int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::operator unsigned int() const Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<nsIThread*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator nsIThread*() const Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<mozilla::gfx::Job*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator mozilla::gfx::Job*() const Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<SkTypeface*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator SkTypeface*() const Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<mozilla::gfx::UnscaledFont*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator mozilla::gfx::UnscaledFont*() const Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<mozilla::gfx::ScaledFont*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator mozilla::gfx::ScaledFont*() const Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<mozilla::layers::APZCTreeManager*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator mozilla::layers::APZCTreeManager*() const Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<mozilla::Benchmark*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator mozilla::Benchmark*() const Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<mozilla::MultiWriterQueue<mozilla::DDLogMessage, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::operator mozilla::MultiWriterQueue<mozilla::DDLogMessage, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*() const ProcessHangMonitor.cpp:mozilla::detail::AtomicBaseIncDec<(anonymous namespace)::HangMonitorChild*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::operator (anonymous namespace)::HangMonitorChild*() const Line | Count | Source | 405 | 1.62M | operator T() const { return Base::Intrinsics::load(Base::mValue); } |
Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<long long, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::operator long long() const Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<mozilla::MultiWriterQueue<int, 1u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::operator mozilla::MultiWriterQueue<int, 1u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*() const Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<mozilla::MultiWriterQueue<int, 2u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::operator mozilla::MultiWriterQueue<int, 2u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*() const Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<mozilla::MultiWriterQueue<int, 4u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::operator mozilla::MultiWriterQueue<int, 4u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*() const Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::operator mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*() const Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::operator mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*() const Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::operator mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*() const Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::operator mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*() const mozilla::detail::AtomicBaseIncDec<unsigned long, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::operator unsigned long() const Line | Count | Source | 405 | 9.85M | operator T() const { return Base::Intrinsics::load(Base::mValue); } |
mozilla::detail::AtomicBaseIncDec<unsigned long, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0>::operator unsigned long() const Line | Count | Source | 405 | 1.79M | operator T() const { return Base::Intrinsics::load(Base::mValue); } |
Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<void*, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::operator void*() const mozilla::detail::AtomicBaseIncDec<js::Mutex*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::operator js::Mutex*() const Line | Count | Source | 405 | 3 | operator T() const { return Base::Intrinsics::load(Base::mValue); } |
Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<double (*)(double), (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::operator double (*)(double)() const Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<void (*)(), (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator void (*)()() const mozilla::detail::AtomicBaseIncDec<bool (*)(mozilla::Vector<char, 0ul, js::SystemAllocPolicy>*), (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator bool (*)(mozilla::Vector<char, 0ul, js::SystemAllocPolicy>*)() const Line | Count | Source | 405 | 5 | operator T() const { return Base::Intrinsics::load(Base::mValue); } |
Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<BuiltinThunks const*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator BuiltinThunks const*() const Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<mozilla::Vector<js::wasm::CodeSegment const*, 0ul, js::SystemAllocPolicy> const*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator mozilla::Vector<js::wasm::CodeSegment const*, 0ul, js::SystemAllocPolicy> const*() const mozilla::detail::AtomicBaseIncDec<int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0>::operator int() const Line | Count | Source | 405 | 22 | operator T() const { return Base::Intrinsics::load(Base::mValue); } |
|
406 | 1.57k | T operator++(int) { return Base::Intrinsics::inc(Base::mValue); } Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator++(int) mozilla::detail::AtomicBaseIncDec<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::operator++(int) Line | Count | Source | 406 | 86 | T operator++(int) { return Base::Intrinsics::inc(Base::mValue); } |
mozilla::detail::AtomicBaseIncDec<unsigned int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator++(int) Line | Count | Source | 406 | 3 | T operator++(int) { return Base::Intrinsics::inc(Base::mValue); } |
mozilla::detail::AtomicBaseIncDec<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator++(int) Line | Count | Source | 406 | 3 | T operator++(int) { return Base::Intrinsics::inc(Base::mValue); } |
Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::operator++(int) Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator++(int) mozilla::detail::AtomicBaseIncDec<unsigned int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::operator++(int) Line | Count | Source | 406 | 1.47k | T operator++(int) { return Base::Intrinsics::inc(Base::mValue); } |
Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::operator++(int) mozilla::detail::AtomicBaseIncDec<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::operator++(int) Line | Count | Source | 406 | 14 | T operator++(int) { return Base::Intrinsics::inc(Base::mValue); } |
|
407 | 5.78k | T operator--(int) { return Base::Intrinsics::dec(Base::mValue); } Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<unsigned int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::operator--(int) Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator--(int) mozilla::detail::AtomicBaseIncDec<int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::operator--(int) Line | Count | Source | 407 | 5.77k | T operator--(int) { return Base::Intrinsics::dec(Base::mValue); } |
Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::operator--(int) Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<unsigned int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator--(int) Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator--(int) mozilla::detail::AtomicBaseIncDec<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::operator--(int) Line | Count | Source | 407 | 14 | T operator--(int) { return Base::Intrinsics::dec(Base::mValue); } |
Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::operator--(int) |
408 | 1.82M | T operator++() { return Base::Intrinsics::inc(Base::mValue) + 1; } Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<unsigned int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::operator++() mozilla::detail::AtomicBaseIncDec<int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::operator++() Line | Count | Source | 408 | 5.78k | T operator++() { return Base::Intrinsics::inc(Base::mValue) + 1; } |
Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator++() mozilla::detail::AtomicBaseIncDec<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator++() Line | Count | Source | 408 | 19 | T operator++() { return Base::Intrinsics::inc(Base::mValue) + 1; } |
Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<unsigned int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator++() Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<unsigned long, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::operator++() Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::operator++() Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::operator++() mozilla::detail::AtomicBaseIncDec<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::operator++() Line | Count | Source | 408 | 5.83k | T operator++() { return Base::Intrinsics::inc(Base::mValue) + 1; } |
mozilla::detail::AtomicBaseIncDec<unsigned long, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::operator++() Line | Count | Source | 408 | 1.62M | T operator++() { return Base::Intrinsics::inc(Base::mValue) + 1; } |
Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::operator++() mozilla::detail::AtomicBaseIncDec<unsigned int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::operator++() Line | Count | Source | 408 | 188k | T operator++() { return Base::Intrinsics::inc(Base::mValue) + 1; } |
Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0>::operator++() |
409 | 32.3k | T operator--() { return Base::Intrinsics::dec(Base::mValue) - 1; } Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<unsigned int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1>::operator--() Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator--() Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::operator--() Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1>::operator--() Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1>::operator--() mozilla::detail::AtomicBaseIncDec<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::operator--() Line | Count | Source | 409 | 5.80k | T operator--() { return Base::Intrinsics::dec(Base::mValue) - 1; } |
mozilla::detail::AtomicBaseIncDec<unsigned long, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::operator--() Line | Count | Source | 409 | 1.76k | T operator--() { return Base::Intrinsics::dec(Base::mValue) - 1; } |
mozilla::detail::AtomicBaseIncDec<unsigned int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0>::operator--() Line | Count | Source | 409 | 23.2k | T operator--() { return Base::Intrinsics::dec(Base::mValue) - 1; } |
mozilla::detail::AtomicBaseIncDec<unsigned int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::operator--() Line | Count | Source | 409 | 1.54k | T operator--() { return Base::Intrinsics::dec(Base::mValue) - 1; } |
Unexecuted instantiation: mozilla::detail::AtomicBaseIncDec<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0>::operator--() mozilla::detail::AtomicBaseIncDec<int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0>::operator--() Line | Count | Source | 409 | 11 | T operator--() { return Base::Intrinsics::dec(Base::mValue) - 1; } |
|
410 | | |
411 | | private: |
412 | | AtomicBaseIncDec(const AtomicBaseIncDec& aCopy) = delete; |
413 | | }; |
414 | | |
415 | | } // namespace detail |
416 | | |
417 | | /** |
418 | | * A wrapper for a type that enforces that all memory accesses are atomic. |
419 | | * |
420 | | * In general, where a variable |T foo| exists, |Atomic<T> foo| can be used in |
421 | | * its place. Implementations for integral and pointer types are provided |
422 | | * below. |
423 | | * |
424 | | * Atomic accesses are sequentially consistent by default. You should |
425 | | * use the default unless you are tall enough to ride the |
426 | | * memory-ordering roller coaster (if you're not sure, you aren't) and |
427 | | * you have a compelling reason to do otherwise. |
428 | | * |
429 | | * There is one exception to the case of atomic memory accesses: providing an |
430 | | * initial value of the atomic value is not guaranteed to be atomic. This is a |
431 | | * deliberate design choice that enables static atomic variables to be declared |
432 | | * without introducing extra static constructors. |
433 | | */ |
434 | | template<typename T, |
435 | | MemoryOrdering Order = SequentiallyConsistent, |
436 | | recordreplay::Behavior Recording = recordreplay::Behavior::Preserve, |
437 | | typename Enable = void> |
438 | | class Atomic; |
439 | | |
440 | | /** |
441 | | * Atomic<T> implementation for integral types. |
442 | | * |
443 | | * In addition to atomic store and load operations, compound assignment and |
444 | | * increment/decrement operators are implemented which perform the |
445 | | * corresponding read-modify-write operation atomically. Finally, an atomic |
446 | | * swap method is provided. |
447 | | */ |
448 | | template<typename T, MemoryOrdering Order, recordreplay::Behavior Recording> |
449 | | class Atomic<T, Order, Recording, |
450 | | typename EnableIf<IsIntegral<T>::value && |
451 | | !IsSame<T, bool>::value>::Type> |
452 | | : public detail::AtomicBaseIncDec<T, Order, Recording> |
453 | | { |
454 | | typedef typename detail::AtomicBaseIncDec<T, Order, Recording> Base; |
455 | | |
456 | | public: |
457 | 12.0k | constexpr Atomic() : Base() {} Unexecuted instantiation: mozilla::Atomic<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::Atomic() mozilla::Atomic<unsigned int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::Atomic() Line | Count | Source | 457 | 3 | constexpr Atomic() : Base() {} |
Unexecuted instantiation: mozilla::Atomic<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::Atomic() Unexecuted instantiation: mozilla::Atomic<long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::Atomic() mozilla::Atomic<long long, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1, void>::Atomic() Line | Count | Source | 457 | 270 | constexpr Atomic() : Base() {} |
mozilla::Atomic<int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0, void>::Atomic() Line | Count | Source | 457 | 5.12k | constexpr Atomic() : Base() {} |
mozilla::Atomic<unsigned int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0, void>::Atomic() Line | Count | Source | 457 | 5.13k | constexpr Atomic() : Base() {} |
mozilla::Atomic<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0, void>::Atomic() Line | Count | Source | 457 | 1.50k | constexpr Atomic() : Base() {} |
|
458 | 6.10k | explicit constexpr Atomic(T aInit) : Base(aInit) {} mozilla::Atomic<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::Atomic(int) Line | Count | Source | 458 | 53 | explicit constexpr Atomic(T aInit) : Base(aInit) {} |
mozilla::Atomic<unsigned int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1, void>::Atomic(unsigned int) Line | Count | Source | 458 | 3 | explicit constexpr Atomic(T aInit) : Base(aInit) {} |
mozilla::Atomic<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1, void>::Atomic(unsigned int) Line | Count | Source | 458 | 24 | explicit constexpr Atomic(T aInit) : Base(aInit) {} |
mozilla::Atomic<unsigned int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::Atomic(unsigned int) Line | Count | Source | 458 | 34 | explicit constexpr Atomic(T aInit) : Base(aInit) {} |
mozilla::Atomic<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::Atomic(unsigned long) Line | Count | Source | 458 | 1 | explicit constexpr Atomic(T aInit) : Base(aInit) {} |
mozilla::Atomic<int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1, void>::Atomic(int) Line | Count | Source | 458 | 3 | explicit constexpr Atomic(T aInit) : Base(aInit) {} |
Unexecuted instantiation: mozilla::Atomic<unsigned long, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1, void>::Atomic(unsigned long) Unexecuted instantiation: mozilla::Atomic<long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::Atomic(long) Unexecuted instantiation: mozilla::Atomic<long, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1, void>::Atomic(long) mozilla::Atomic<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0, void>::Atomic(int) Line | Count | Source | 458 | 5.79k | explicit constexpr Atomic(T aInit) : Base(aInit) {} |
Unexecuted instantiation: mozilla::Atomic<unsigned long, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1, void>::Atomic(unsigned long) mozilla::Atomic<unsigned int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0, void>::Atomic(unsigned int) Line | Count | Source | 458 | 70 | explicit constexpr Atomic(T aInit) : Base(aInit) {} |
mozilla::Atomic<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0, void>::Atomic(unsigned int) Line | Count | Source | 458 | 36 | explicit constexpr Atomic(T aInit) : Base(aInit) {} |
mozilla::Atomic<unsigned long, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0, void>::Atomic(unsigned long) Line | Count | Source | 458 | 45 | explicit constexpr Atomic(T aInit) : Base(aInit) {} |
mozilla::Atomic<unsigned long, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0, void>::Atomic(unsigned long) Line | Count | Source | 458 | 36 | explicit constexpr Atomic(T aInit) : Base(aInit) {} |
mozilla::Atomic<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0, void>::Atomic(unsigned long) Line | Count | Source | 458 | 9 | explicit constexpr Atomic(T aInit) : Base(aInit) {} |
|
459 | | |
460 | | using Base::operator=; |
461 | | |
462 | | T operator+=(T aDelta) |
463 | 49.1M | { |
464 | 49.1M | return Base::Intrinsics::add(Base::mValue, aDelta) + aDelta; |
465 | 49.1M | } Unexecuted instantiation: mozilla::Atomic<unsigned int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::operator+=(unsigned int) Unexecuted instantiation: mozilla::Atomic<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::operator+=(unsigned long) mozilla::Atomic<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0, void>::operator+=(unsigned long) Line | Count | Source | 463 | 2.70k | { | 464 | 2.70k | return Base::Intrinsics::add(Base::mValue, aDelta) + aDelta; | 465 | 2.70k | } |
Unexecuted instantiation: mozilla::Atomic<long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::operator+=(long) Unexecuted instantiation: mozilla::Atomic<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1, void>::operator+=(unsigned int) Unexecuted instantiation: mozilla::Atomic<unsigned int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1, void>::operator+=(unsigned int) Unexecuted instantiation: mozilla::Atomic<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::operator+=(int) Unexecuted instantiation: mozilla::Atomic<long, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1, void>::operator+=(long) mozilla::Atomic<unsigned long, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0, void>::operator+=(unsigned long) Line | Count | Source | 463 | 8.52M | { | 464 | 8.52M | return Base::Intrinsics::add(Base::mValue, aDelta) + aDelta; | 465 | 8.52M | } |
mozilla::Atomic<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0, void>::operator+=(unsigned int) Line | Count | Source | 463 | 40.5M | { | 464 | 40.5M | return Base::Intrinsics::add(Base::mValue, aDelta) + aDelta; | 465 | 40.5M | } |
|
466 | | |
467 | | T operator-=(T aDelta) |
468 | 393k | { |
469 | 393k | return Base::Intrinsics::sub(Base::mValue, aDelta) - aDelta; |
470 | 393k | } Unexecuted instantiation: mozilla::Atomic<int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0, void>::operator-=(int) mozilla::Atomic<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0, void>::operator-=(unsigned long) Line | Count | Source | 468 | 2.47k | { | 469 | 2.47k | return Base::Intrinsics::sub(Base::mValue, aDelta) - aDelta; | 470 | 2.47k | } |
Unexecuted instantiation: mozilla::Atomic<long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::operator-=(long) Unexecuted instantiation: mozilla::Atomic<unsigned int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1, void>::operator-=(unsigned int) Unexecuted instantiation: mozilla::Atomic<int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::operator-=(int) Unexecuted instantiation: mozilla::Atomic<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1, void>::operator-=(unsigned int) Unexecuted instantiation: mozilla::Atomic<unsigned long, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::operator-=(unsigned long) mozilla::Atomic<unsigned long, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0, void>::operator-=(unsigned long) Line | Count | Source | 468 | 376k | { | 469 | 376k | return Base::Intrinsics::sub(Base::mValue, aDelta) - aDelta; | 470 | 376k | } |
mozilla::Atomic<unsigned int, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0, void>::operator-=(unsigned int) Line | Count | Source | 468 | 655 | { | 469 | 655 | return Base::Intrinsics::sub(Base::mValue, aDelta) - aDelta; | 470 | 655 | } |
mozilla::Atomic<unsigned long, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0, void>::operator-=(unsigned long) Line | Count | Source | 468 | 13.6k | { | 469 | 13.6k | return Base::Intrinsics::sub(Base::mValue, aDelta) - aDelta; | 470 | 13.6k | } |
|
471 | | |
472 | | T operator|=(T aVal) |
473 | 114 | { |
474 | 114 | return Base::Intrinsics::or_(Base::mValue, aVal) | aVal; |
475 | 114 | } Unexecuted instantiation: mozilla::Atomic<unsigned int, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::operator|=(unsigned int) mozilla::Atomic<unsigned int, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0, void>::operator|=(unsigned int) Line | Count | Source | 473 | 114 | { | 474 | 114 | return Base::Intrinsics::or_(Base::mValue, aVal) | aVal; | 475 | 114 | } |
|
476 | | |
477 | | T operator^=(T aVal) |
478 | | { |
479 | | return Base::Intrinsics::xor_(Base::mValue, aVal) ^ aVal; |
480 | | } |
481 | | |
482 | | T operator&=(T aVal) |
483 | | { |
484 | | return Base::Intrinsics::and_(Base::mValue, aVal) & aVal; |
485 | | } |
486 | | |
487 | | private: |
488 | | Atomic(Atomic& aOther) = delete; |
489 | | }; |
490 | | |
491 | | /** |
492 | | * Atomic<T> implementation for pointer types. |
493 | | * |
494 | | * An atomic compare-and-swap primitive for pointer variables is provided, as |
495 | | * are atomic increment and decement operators. Also provided are the compound |
496 | | * assignment operators for addition and subtraction. Atomic swap (via |
497 | | * exchange()) is included as well. |
498 | | */ |
499 | | template<typename T, MemoryOrdering Order, recordreplay::Behavior Recording> |
500 | | class Atomic<T*, Order, Recording> : public detail::AtomicBaseIncDec<T*, Order, Recording> |
501 | | { |
502 | | typedef typename detail::AtomicBaseIncDec<T*, Order, Recording> Base; |
503 | | |
504 | | public: |
505 | 15.3k | constexpr Atomic() : Base() {} Unexecuted instantiation: mozilla::Atomic<PRThread*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::Atomic() Unexecuted instantiation: mozilla::Atomic<mozilla::detail::ThreadSafeWeakReference<mozilla::gfx::UnscaledFont>*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::Atomic() Unexecuted instantiation: mozilla::Atomic<mozilla::detail::ThreadSafeWeakReference<mozilla::gfx::ScaledFont>*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::Atomic() Unexecuted instantiation: mozilla::Atomic<mozilla::gfx::UnscaledFont*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::Atomic() Unexecuted instantiation: mozilla::Atomic<mozilla::gfx::ScaledFont*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::Atomic() mozilla::Atomic<char const*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0, void>::Atomic() Line | Count | Source | 505 | 10.2k | constexpr Atomic() : Base() {} |
mozilla::Atomic<void*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0, void>::Atomic() Line | Count | Source | 505 | 5.12k | constexpr Atomic() : Base() {} |
|
506 | 3.24M | explicit constexpr Atomic(T* aInit) : Base(aInit) {} mozilla::Atomic<mozilla::detail::LogFile*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1, void>::Atomic(mozilla::detail::LogFile*) Line | Count | Source | 506 | 3 | explicit constexpr Atomic(T* aInit) : Base(aInit) {} |
mozilla::Atomic<mozilla::detail::LogFile*, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1, void>::Atomic(mozilla::detail::LogFile*) Line | Count | Source | 506 | 3 | explicit constexpr Atomic(T* aInit) : Base(aInit) {} |
mozilla::Atomic<PRThread*, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1, void>::Atomic(PRThread*) Line | Count | Source | 506 | 3 | explicit constexpr Atomic(T* aInit) : Base(aInit) {} |
Unexecuted instantiation: mozilla::Atomic<char*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::Atomic(char*) Unexecuted instantiation: mozilla::Atomic<nsIThread*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::Atomic(nsIThread*) Unexecuted instantiation: mozilla::Atomic<mozilla::gfx::Job*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::Atomic(mozilla::gfx::Job*) Unexecuted instantiation: mozilla::Atomic<SkTypeface*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::Atomic(SkTypeface*) Unexecuted instantiation: mozilla::Atomic<mozilla::layers::APZCTreeManager*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::Atomic(mozilla::layers::APZCTreeManager*) Unexecuted instantiation: mozilla::Atomic<mozilla::Benchmark*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::Atomic(mozilla::Benchmark*) mozilla::Atomic<mozilla::LogModule*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0, void>::Atomic(mozilla::LogModule*) Line | Count | Source | 506 | 3 | explicit constexpr Atomic(T* aInit) : Base(aInit) {} |
Unexecuted instantiation: mozilla::Atomic<mozilla::MultiWriterQueue<mozilla::DDLogMessage, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1, void>::Atomic(mozilla::MultiWriterQueue<mozilla::DDLogMessage, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*) mozilla::Atomic<js::ProfilingStackFrame*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0, void>::Atomic(js::ProfilingStackFrame*) Line | Count | Source | 506 | 49 | explicit constexpr Atomic(T* aInit) : Base(aInit) {} |
Unexecuted instantiation: mozilla::Atomic<mozilla::MultiWriterQueue<int, 1u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1, void>::Atomic(mozilla::MultiWriterQueue<int, 1u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::Atomic<mozilla::MultiWriterQueue<int, 2u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1, void>::Atomic(mozilla::MultiWriterQueue<int, 2u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::Atomic<mozilla::MultiWriterQueue<int, 4u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1, void>::Atomic(mozilla::MultiWriterQueue<int, 4u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::Atomic<mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1, void>::Atomic(mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::Atomic<mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1, void>::Atomic(mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_Mutex>::Buffer*) Unexecuted instantiation: mozilla::Atomic<mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1, void>::Atomic(mozilla::MultiWriterQueue<int, 10u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*) Unexecuted instantiation: mozilla::Atomic<mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1, void>::Atomic(mozilla::MultiWriterQueue<int, 8192u, mozilla::MultiWriterQueueReaderLocking_None>::Buffer*) mozilla::Atomic<void*, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1, void>::Atomic(void*) Line | Count | Source | 506 | 3.24M | explicit constexpr Atomic(T* aInit) : Base(aInit) {} |
mozilla::Atomic<mozilla::Vector<js::wasm::CodeSegment const*, 0ul, js::SystemAllocPolicy> const*, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::Atomic(mozilla::Vector<js::wasm::CodeSegment const*, 0ul, js::SystemAllocPolicy> const*) Line | Count | Source | 506 | 3 | explicit constexpr Atomic(T* aInit) : Base(aInit) {} |
|
507 | | |
508 | | using Base::operator=; |
509 | | |
510 | | T* operator+=(ptrdiff_t aDelta) |
511 | | { |
512 | | return Base::Intrinsics::add(Base::mValue, aDelta) + aDelta; |
513 | | } |
514 | | |
515 | | T* operator-=(ptrdiff_t aDelta) |
516 | | { |
517 | | return Base::Intrinsics::sub(Base::mValue, aDelta) - aDelta; |
518 | | } |
519 | | |
520 | | private: |
521 | | Atomic(Atomic& aOther) = delete; |
522 | | }; |
523 | | |
524 | | /** |
525 | | * Atomic<T> implementation for enum types. |
526 | | * |
527 | | * The atomic store and load operations and the atomic swap method is provided. |
528 | | */ |
529 | | template<typename T, MemoryOrdering Order, recordreplay::Behavior Recording> |
530 | | class Atomic<T, Order, Recording, typename EnableIf<IsEnum<T>::value>::Type> |
531 | | : public detail::AtomicBase<T, Order, Recording> |
532 | | { |
533 | | typedef typename detail::AtomicBase<T, Order, Recording> Base; |
534 | | |
535 | | public: |
536 | 261 | constexpr Atomic() : Base() {} Unexecuted instantiation: mozilla::Atomic<mozilla::MediaEngineSourceState, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::Atomic() mozilla::Atomic<js::gc::ArenaLists::ConcurrentUse, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0, void>::Atomic() Line | Count | Source | 536 | 261 | constexpr Atomic() : Base() {} |
|
537 | 117 | explicit constexpr Atomic(T aInit) : Base(aInit) {} mozilla::Atomic<mozilla::LogLevel, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0, void>::Atomic(mozilla::LogLevel) Line | Count | Source | 537 | 75 | explicit constexpr Atomic(T aInit) : Base(aInit) {} |
mozilla::Atomic<mozilla::net::TRRService::ConfirmationState, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1, void>::Atomic(mozilla::net::TRRService::ConfirmationState) Line | Count | Source | 537 | 3 | explicit constexpr Atomic(T aInit) : Base(aInit) {} |
Unexecuted instantiation: mozilla::Atomic<mozilla::net::CompressMode, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1, void>::Atomic(mozilla::net::CompressMode) Unexecuted instantiation: mozilla::Atomic<nsresult, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1, void>::Atomic(nsresult) Unexecuted instantiation: mozilla::Atomic<mozilla::net::nsHttpChannel::ResponseSource, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1, void>::Atomic(mozilla::net::nsHttpChannel::ResponseSource) Unexecuted instantiation: mozilla::Atomic<GMPErr, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1, void>::Atomic(GMPErr) Unexecuted instantiation: mozilla::Atomic<webrtc::VideoCodecMode, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::Atomic(webrtc::VideoCodecMode) Unexecuted instantiation: mozilla::Atomic<mozilla::dom::cache::ReadStream::Inner::State, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::Atomic(mozilla::dom::cache::ReadStream::Inner::State) Unexecuted instantiation: mozilla::Atomic<mozilla::dom::AlternativeDataStreamListener::eStatus, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::Atomic(mozilla::dom::AlternativeDataStreamListener::eStatus) Unexecuted instantiation: mozilla::Atomic<mozilla::TrackBuffersManager::EvictionState, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::Atomic(mozilla::TrackBuffersManager::EvictionState) Unexecuted instantiation: mozilla::Atomic<nsresult, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::Atomic(nsresult) mozilla::Atomic<JS::Zone::HelperThreadUse, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0, void>::Atomic(JS::Zone::HelperThreadUse) Line | Count | Source | 537 | 9 | explicit constexpr Atomic(T aInit) : Base(aInit) {} |
mozilla::Atomic<JS::HeapState, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0, void>::Atomic(JS::HeapState) Line | Count | Source | 537 | 3 | explicit constexpr Atomic(T aInit) : Base(aInit) {} |
mozilla::Atomic<js::StackFormat, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1, void>::Atomic(js::StackFormat) Line | Count | Source | 537 | 3 | explicit constexpr Atomic(T aInit) : Base(aInit) {} |
mozilla::Atomic<JS::gcreason::Reason, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0, void>::Atomic(JS::gcreason::Reason) Line | Count | Source | 537 | 3 | explicit constexpr Atomic(T aInit) : Base(aInit) {} |
mozilla::Atomic<js::gc::TriggerKind, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0, void>::Atomic(js::gc::TriggerKind) Line | Count | Source | 537 | 21 | explicit constexpr Atomic(T aInit) : Base(aInit) {} |
|
538 | | |
539 | 73.3M | operator T() const { return T(Base::Intrinsics::load(Base::mValue)); } Unexecuted instantiation: mozilla::Atomic<mozilla::net::TRRService::ConfirmationState, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1, void>::operator mozilla::net::TRRService::ConfirmationState() const Unexecuted instantiation: mozilla::Atomic<mozilla::net::CompressMode, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1, void>::operator mozilla::net::CompressMode() const Unexecuted instantiation: mozilla::Atomic<nsresult, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1, void>::operator nsresult() const Unexecuted instantiation: mozilla::Atomic<mozilla::net::nsHttpChannel::ResponseSource, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1, void>::operator mozilla::net::nsHttpChannel::ResponseSource() const Unexecuted instantiation: mozilla::Atomic<mozilla::dom::IndexedDatabaseManager::LoggingMode, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::operator mozilla::dom::IndexedDatabaseManager::LoggingMode() const Unexecuted instantiation: mozilla::Atomic<webrtc::VideoCodecMode, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::operator webrtc::VideoCodecMode() const Unexecuted instantiation: mozilla::Atomic<GMPErr, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1, void>::operator GMPErr() const Unexecuted instantiation: mozilla::Atomic<mozilla::dom::cache::ReadStream::Inner::State, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::operator mozilla::dom::cache::ReadStream::Inner::State() const Unexecuted instantiation: mozilla::Atomic<mozilla::dom::AlternativeDataStreamListener::eStatus, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::operator mozilla::dom::AlternativeDataStreamListener::eStatus() const Unexecuted instantiation: mozilla::Atomic<mozilla::TrackBuffersManager::EvictionState, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::operator mozilla::TrackBuffersManager::EvictionState() const Unexecuted instantiation: mozilla::Atomic<mozilla::MediaEngineSourceState, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::operator mozilla::MediaEngineSourceState() const Unexecuted instantiation: mozilla::Atomic<nsresult, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::operator nsresult() const mozilla::Atomic<js::gc::ArenaLists::ConcurrentUse, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0, void>::operator js::gc::ArenaLists::ConcurrentUse() const Line | Count | Source | 539 | 197k | operator T() const { return T(Base::Intrinsics::load(Base::mValue)); } |
Unexecuted instantiation: mozilla::Atomic<js::gc::TriggerKind, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0, void>::operator js::gc::TriggerKind() const mozilla::Atomic<JS::gcreason::Reason, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0, void>::operator JS::gcreason::Reason() const Line | Count | Source | 539 | 1.16k | operator T() const { return T(Base::Intrinsics::load(Base::mValue)); } |
mozilla::Atomic<JS::HeapState, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0, void>::operator JS::HeapState() const Line | Count | Source | 539 | 42.1M | operator T() const { return T(Base::Intrinsics::load(Base::mValue)); } |
Unexecuted instantiation: mozilla::Atomic<js::StackFormat, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1, void>::operator js::StackFormat() const mozilla::Atomic<JS::Zone::HelperThreadUse, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0, void>::operator JS::Zone::HelperThreadUse() const Line | Count | Source | 539 | 30.9M | operator T() const { return T(Base::Intrinsics::load(Base::mValue)); } |
|
540 | | |
541 | | using Base::operator=; |
542 | | |
543 | | private: |
544 | | Atomic(Atomic& aOther) = delete; |
545 | | }; |
546 | | |
547 | | /** |
548 | | * Atomic<T> implementation for boolean types. |
549 | | * |
550 | | * The atomic store and load operations and the atomic swap method is provided. |
551 | | * |
552 | | * Note: |
553 | | * |
554 | | * - sizeof(Atomic<bool>) != sizeof(bool) for some implementations of |
555 | | * bool and/or some implementations of std::atomic. This is allowed in |
556 | | * [atomic.types.generic]p9. |
557 | | * |
558 | | * - It's not obvious whether the 8-bit atomic functions on Windows are always |
559 | | * inlined or not. If they are not inlined, the corresponding functions in the |
560 | | * runtime library are not available on Windows XP. This is why we implement |
561 | | * Atomic<bool> with an underlying type of uint32_t. |
562 | | */ |
563 | | template<MemoryOrdering Order, recordreplay::Behavior Recording> |
564 | | class Atomic<bool, Order, Recording> |
565 | | : protected detail::AtomicBase<uint32_t, Order, Recording> |
566 | | { |
567 | | typedef typename detail::AtomicBase<uint32_t, Order, Recording> Base; |
568 | | |
569 | | public: |
570 | 7 | constexpr Atomic() : Base() {} mozilla::Atomic<bool, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1, void>::Atomic() Line | Count | Source | 570 | 7 | constexpr Atomic() : Base() {} |
Unexecuted instantiation: mozilla::Atomic<bool, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::Atomic() |
571 | 512 | explicit constexpr Atomic(bool aInit) : Base(aInit) {} mozilla::Atomic<bool, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1, void>::Atomic(bool) Line | Count | Source | 571 | 45 | explicit constexpr Atomic(bool aInit) : Base(aInit) {} |
Unexecuted instantiation: mozilla::Atomic<bool, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1, void>::Atomic(bool) mozilla::Atomic<bool, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::Atomic(bool) Line | Count | Source | 571 | 126 | explicit constexpr Atomic(bool aInit) : Base(aInit) {} |
mozilla::Atomic<bool, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0, void>::Atomic(bool) Line | Count | Source | 571 | 45 | explicit constexpr Atomic(bool aInit) : Base(aInit) {} |
mozilla::Atomic<bool, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0, void>::Atomic(bool) Line | Count | Source | 571 | 14 | explicit constexpr Atomic(bool aInit) : Base(aInit) {} |
mozilla::Atomic<bool, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0, void>::Atomic(bool) Line | Count | Source | 571 | 282 | explicit constexpr Atomic(bool aInit) : Base(aInit) {} |
|
572 | | |
573 | | // We provide boolean wrappers for the underlying AtomicBase methods. |
574 | | MOZ_IMPLICIT operator bool() const |
575 | 57.6k | { |
576 | 57.6k | return Base::Intrinsics::load(Base::mValue); |
577 | 57.6k | } mozilla::Atomic<bool, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1, void>::operator bool() const Line | Count | Source | 575 | 116 | { | 576 | 116 | return Base::Intrinsics::load(Base::mValue); | 577 | 116 | } |
mozilla::Atomic<bool, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::operator bool() const Line | Count | Source | 575 | 20.9k | { | 576 | 20.9k | return Base::Intrinsics::load(Base::mValue); | 577 | 20.9k | } |
Unexecuted instantiation: mozilla::Atomic<bool, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1, void>::operator bool() const mozilla::Atomic<bool, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0, void>::operator bool() const Line | Count | Source | 575 | 230 | { | 576 | 230 | return Base::Intrinsics::load(Base::mValue); | 577 | 230 | } |
mozilla::Atomic<bool, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0, void>::operator bool() const Line | Count | Source | 575 | 11.7k | { | 576 | 11.7k | return Base::Intrinsics::load(Base::mValue); | 577 | 11.7k | } |
mozilla::Atomic<bool, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0, void>::operator bool() const Line | Count | Source | 575 | 24.6k | { | 576 | 24.6k | return Base::Intrinsics::load(Base::mValue); | 577 | 24.6k | } |
|
578 | | |
579 | | bool operator=(bool aVal) |
580 | 1.51k | { |
581 | 1.51k | return Base::operator=(aVal); |
582 | 1.51k | } mozilla::Atomic<bool, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)1, void>::operator=(bool) Line | Count | Source | 580 | 212 | { | 581 | 212 | return Base::operator=(aVal); | 582 | 212 | } |
mozilla::Atomic<bool, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::operator=(bool) Line | Count | Source | 580 | 31 | { | 581 | 31 | return Base::operator=(aVal); | 582 | 31 | } |
Unexecuted instantiation: mozilla::Atomic<bool, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1, void>::operator=(bool) mozilla::Atomic<bool, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0, void>::operator=(bool) Line | Count | Source | 580 | 180 | { | 581 | 180 | return Base::operator=(aVal); | 582 | 180 | } |
mozilla::Atomic<bool, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)0, void>::operator=(bool) Line | Count | Source | 580 | 1.09k | { | 581 | 1.09k | return Base::operator=(aVal); | 582 | 1.09k | } |
Unexecuted instantiation: mozilla::Atomic<bool, (mozilla::MemoryOrdering)0, (mozilla::recordreplay::Behavior)0, void>::operator=(bool) |
583 | | |
584 | | bool exchange(bool aVal) |
585 | 0 | { |
586 | 0 | return Base::exchange(aVal); |
587 | 0 | } |
588 | | |
589 | | bool compareExchange(bool aOldValue, bool aNewValue) |
590 | 0 | { |
591 | 0 | return Base::compareExchange(aOldValue, aNewValue); |
592 | 0 | } Unexecuted instantiation: mozilla::Atomic<bool, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)0, void>::compareExchange(bool, bool) Unexecuted instantiation: mozilla::Atomic<bool, (mozilla::MemoryOrdering)2, (mozilla::recordreplay::Behavior)1, void>::compareExchange(bool, bool) Unexecuted instantiation: mozilla::Atomic<bool, (mozilla::MemoryOrdering)1, (mozilla::recordreplay::Behavior)1, void>::compareExchange(bool, bool) |
593 | | |
594 | | private: |
595 | | Atomic(Atomic& aOther) = delete; |
596 | | }; |
597 | | |
598 | | // If you want to atomically swap two atomic values, use exchange(). |
599 | | template<typename T, MemoryOrdering Order> |
600 | | void |
601 | | Swap(Atomic<T, Order>&, Atomic<T, Order>&) = delete; |
602 | | |
603 | | } // namespace mozilla |
604 | | |
605 | | #endif /* mozilla_Atomics_h */ |