Go to the source code of this file.
◆ PG_HAVE_8BYTE_SINGLE_COPY_ATOMICITY
#define PG_HAVE_8BYTE_SINGLE_COPY_ATOMICITY |
◆ PG_HAVE_ATOMIC_COMPARE_EXCHANGE_U32
#define PG_HAVE_ATOMIC_COMPARE_EXCHANGE_U32 |
◆ PG_HAVE_ATOMIC_FETCH_ADD_U32
#define PG_HAVE_ATOMIC_FETCH_ADD_U32 |
◆ PG_HAVE_ATOMIC_U32_SUPPORT
#define PG_HAVE_ATOMIC_U32_SUPPORT |
◆ pg_atomic_uint32
◆ pg_atomic_compare_exchange_u32_impl()
Definition at line 80 of file arch-ppc.h.
87 #ifdef HAVE_I_CONSTRAINT__BUILTIN_CONSTANT_P
88 if (__builtin_constant_p(*expected) &&
100 :
"=&r"(found),
"=r"(condition_register),
"+m"(ptr->value)
101 :
"i"(*expected),
"r"(
newval),
"r"(&ptr->value)
105 __asm__ __volatile__(
107 " lwarx %0,0,%5,1 \n"
114 :
"=&r"(found),
"=r"(condition_register),
"+m"(ptr->value)
115 :
"r"(*expected),
"r"(
newval),
"r"(&ptr->value)
118 ret = (condition_register >> 29) & 1;
References newval, PG_INT16_MAX, PG_INT16_MIN, and pg_atomic_uint32::value.
Referenced by pg_atomic_compare_exchange_u32().
◆ pg_atomic_fetch_add_u32_impl()
Definition at line 131 of file arch-ppc.h.
136 #ifdef HAVE_I_CONSTRAINT__BUILTIN_CONSTANT_P
137 if (__builtin_constant_p(add_) &&
139 __asm__ __volatile__(
141 " lwarx %1,0,%4,1 \n"
146 :
"=&r"(_t),
"=&b"(
res),
"+m"(ptr->value)
147 :
"i"(add_),
"r"(&ptr->value)
151 __asm__ __volatile__(
153 " lwarx %1,0,%4,1 \n"
158 :
"=&r"(_t),
"=&r"(
res),
"+m"(ptr->value)
159 :
"r"(add_),
"r"(&ptr->value)
static void PGresult * res
References PG_INT16_MIN, res, and pg_atomic_uint32::value.
Referenced by pg_atomic_fetch_add_u32().