31 #ifndef GOOGLE_PROTOBUF_ATOMICOPS_INTERNALS_AIX_H_ 32 #define GOOGLE_PROTOBUF_ATOMICOPS_INTERNALS_AIX_H_ 44 "1: lwarx %[res], %[zero], %[obj] \n\t" 45 " cmpw %[cmp], %[res] \n\t" 47 " stwcx. %[val], %[zero], %[obj] \n\t" 52 [cmp]
"b" (old_value),
53 [
val]
"b" (new_value),
65 "1: lwarx %[res], %[zero], %[obj] \n\t" 66 " stwcx. %[val], %[zero], %[obj] \n\t" 70 [
val]
"b" (new_value),
82 "1: lwarx %[res], %[zero], %[obj] \n\t" 83 " add %[res], %[val], %[res] \n\t" 84 " stwcx. %[res], %[zero], %[obj] \n\t" 89 [
val]
"b" (increment),
112 "1: lwarx %[res], %[zero], %[obj] \n\t" 113 " add %[res], %[val], %[res] \n\t" 114 " stwcx. %[res], %[zero], %[obj] \n\t" 120 [
val]
"b" (increment),
133 "1: lwarx %[res], %[zero], %[obj] \n\t" 134 " cmpw %[cmp], %[res] \n\t" 136 " stwcx. %[val], %[zero], %[obj] \n\t" 143 [cmp]
"b" (old_value),
144 [
val]
"b" (new_value),
159 "1: lwarx %[res], %[zero], %[obj] \n\t" 160 " cmpw %[cmp], %[res] \n\t" 162 " stwcx. %[val], %[zero], %[obj] \n\t" 168 [cmp]
"b" (old_value),
169 [
val]
"b" (new_value),
182 " stw %[val], %[obj] \n\t" 191 " stw %[val], %[obj] \n\t" 204 "1: lwz %[res], %[obj] \n\t" 205 " cmpw %[res], %[res] \n\t" 225 "1: lwz %[res], %[obj] \n\t" 226 " cmpw %[res], %[res] \n\t" 238 #ifdef GOOGLE_PROTOBUF_ARCH_64_BIT 241 Atomic64 new_value) {
245 "1: ldarx %[res], %[zero], %[obj] \n\t" 246 " cmpd %[cmp], %[res] \n\t" 249 " stdcx. %[val], %[zero], %[obj] \n\t" 254 [cmp]
"b" (old_value),
255 [
val]
"b" (new_value),
263 Atomic64 new_value) {
267 "1: ldarx %[res], %[zero], %[obj] \n\t" 268 " stdcx. %[val], %[zero], %[obj] \n\t" 272 [
val]
"b" (new_value),
280 Atomic64 increment) {
284 "1: ldarx %[res], %[zero], %[obj] \n\t" 285 " add %[res], %[res], %[val] \n\t" 286 " stdcx. %[res], %[zero], %[obj] \n\t" 292 [
val]
"b" (increment),
300 Atomic64 increment) {
307 "1: ldarx %[res], %[zero], %[obj] \n\t" 308 " add %[res], %[res], %[val] \n\t" 309 " stdcx. %[res], %[zero], %[obj] \n\t" 317 [
val]
"b" (increment),
326 Atomic64 new_value) {
330 "1: ldarx %[res], %[zero], %[obj] \n\t" 331 " cmpd %[cmp], %[res] \n\t" 334 " stdcx. %[val], %[zero], %[obj] \n\t" 340 [cmp]
"b" (old_value),
341 [
val]
"b" (new_value),
350 Atomic64 new_value) {
356 "1: ldarx %[res], %[zero], %[obj] \n\t" 357 " cmpd %[cmp], %[res] \n\t" 360 " stdcx. %[val], %[zero], %[obj] \n\t" 365 [cmp]
"b" (old_value),
366 [
val]
"b" (new_value),
379 " std %[val], %[obj] \n\t" 388 " std %[val], %[obj] \n\t" 397 inline Atomic64
Acquire_Load(
volatile const Atomic64* ptr) {
401 "1: ld %[res], %[obj] \n\t" 402 " cmpd %[res], %[res] \n\t" 416 inline Atomic64
Release_Load(
volatile const Atomic64* ptr) {
422 "1: ld %[res], %[obj] \n\t" 423 " cmpd %[res], %[res] \n\t" 440 #endif // GOOGLE_PROTOBUF_ATOMICOPS_INTERNALS_SPARC_GCC_H_ 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
OPENSSL_EXPORT const ASN1_OBJECT * obj
Definition: x509.h:1053
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
result
Definition: target-blank-opener-post-window.php:5
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
res
Definition: harness.py:111
GLuint GLsizei GLsizei GLfloat * val
Definition: gl2ext.h:3301
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