33 #ifndef GOOGLE_PROTOBUF_ATOMICOPS_INTERNALS_MIPS_GCC_H_ 34 #define GOOGLE_PROTOBUF_ATOMICOPS_INTERNALS_MIPS_GCC_H_ 36 #define ATOMICOPS_COMPILER_BARRIER() __asm__ __volatile__("" : : : "memory") 56 __asm__ __volatile__(
".set push\n" 67 :
"=&r" (prev),
"=m" (*ptr),
"=&r" (tmp)
68 :
"r" (old_value),
"r" (new_value),
"m" (*ptr)
78 __asm__ __volatile__(
".set push\n" 87 :
"=&r" (temp),
"=&r" (old),
"=m" (*ptr)
88 :
"r" (new_value),
"m" (*ptr)
100 __asm__ __volatile__(
".set push\n" 109 :
"=&r" (temp),
"=&r" (temp2),
"=m" (*ptr)
110 :
"Ir" (increment),
"m" (*ptr)
153 __asm__ __volatile__(
"sync" : : :
"memory");
181 #if defined(__LP64__) 186 Atomic64 new_value) {
188 __asm__ __volatile__(
".set push\n" 199 :
"=&r" (prev),
"=m" (*ptr),
"=&r" (tmp)
200 :
"r" (old_value),
"r" (new_value),
"m" (*ptr)
208 Atomic64 new_value) {
210 __asm__ __volatile__(
".set push\n" 219 :
"=&r" (temp),
"=&r" (old),
"=m" (*ptr)
220 :
"r" (new_value),
"m" (*ptr)
229 Atomic64 increment) {
230 Atomic64
temp, temp2;
232 __asm__ __volatile__(
".set push\n" 241 :
"=&r" (temp),
"=&r" (temp2),
"=m" (*ptr)
242 :
"Ir" (increment),
"m" (*ptr)
249 Atomic64 increment) {
264 Atomic64 new_value) {
272 Atomic64 new_value) {
281 inline void Acquire_Store(
volatile Atomic64* ptr, Atomic64 value) {
286 inline void Release_Store(
volatile Atomic64* ptr, Atomic64 value) {
295 inline Atomic64
Acquire_Load(
volatile const Atomic64* ptr) {
296 Atomic64 value = *ptr;
301 inline Atomic64
Release_Load(
volatile const Atomic64* ptr) {
311 #undef ATOMICOPS_COMPILER_BARRIER 313 #endif // GOOGLE_PROTOBUF_ATOMICOPS_INTERNALS_MIPS_GCC_H_ #define ATOMICOPS_COMPILER_BARRIER()
Definition: atomicops_internals_mips_gcc.h:36
Atomic32 Acquire_Load(volatile const Atomic32 *ptr)
Definition: atomicops_internals_arm64_gcc.h:167
void Acquire_Store(volatile Atomic32 *ptr, Atomic32 value)
Definition: atomicops_internals_arm64_gcc.h:149
Atomic32 NoBarrier_CompareAndSwap(volatile Atomic32 *ptr, Atomic32 old_value, Atomic32 new_value)
Definition: atomicops_internals_arm64_gcc.h:52
const FieldDescriptor const OneofDescriptor value
Definition: descriptor.h:1717
void Release_Store(volatile Atomic32 *ptr, Atomic32 value)
Definition: atomicops_internals_arm64_gcc.h:154
EGLAttrib * value
Definition: eglext.h:120
Definition: __init__.py:1
Atomic32 Release_Load(volatile const Atomic32 *ptr)
Definition: atomicops_internals_arm64_gcc.h:180
Definition: document.h:393
Atomic32 Release_CompareAndSwap(volatile Atomic32 *ptr, Atomic32 old_value, Atomic32 new_value)
Definition: atomicops_internals_arm64_gcc.h:136
Atomic32 Barrier_AtomicIncrement(volatile Atomic32 *ptr, Atomic32 increment)
Definition: atomicops_internals_arm64_gcc.h:118
Definition: gflags_completions.h:115
Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32 *ptr, Atomic32 increment)
Definition: atomicops_internals_arm64_gcc.h:97
int32 Atomic32
Definition: atomicops.h:75
Definition: interfaces.idl:174
res
Definition: harness.py:111
temp
Definition: parse_delay_file.m:64
Atomic32 NoBarrier_AtomicExchange(volatile Atomic32 *ptr, Atomic32 new_value)
Definition: atomicops_internals_arm64_gcc.h:77
void NoBarrier_Store(volatile Atomic32 *ptr, Atomic32 value)
Definition: atomicops_internals_arm64_gcc.h:145
Atomic32 NoBarrier_Load(volatile const Atomic32 *ptr)
Definition: atomicops_internals_arm64_gcc.h:163
Atomic32 Acquire_CompareAndSwap(volatile Atomic32 *ptr, Atomic32 old_value, Atomic32 new_value)
Definition: atomicops_internals_arm64_gcc.h:127
void MemoryBarrier()
Definition: atomicops_internals_arm64_gcc.h:40