Coverage Report

Created: 2018-09-25 14:53

/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 */