113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
"addq %1, %0"
: "+&r"(i)
: "r"(i), "m"(*p)
);
return (void*)i;
#elif defined(OF_HAVE_GCC_ATOMIC_OPS)
return __sync_add_and_fetch(p, i);
#elif defined(OF_HAVE_OSATOMIC)
if (sizeof(void*) == 4)
return (void*)OSAtomicAdd32Barrier(i, (int32_t*)p);
# ifdef OF_HAVE_OSATOMIC_64
else if (sizeof(void*) == 8)
return (void*)OSAtomicAdd64Barrier(i, (int64_t*)p);
# endif
|
|
|
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
"addq %1, %0"
: "+&r"(i)
: "r"(i), "m"(*p)
);
return (void*)i;
#elif defined(OF_HAVE_GCC_ATOMIC_OPS)
return __sync_add_and_fetch(p, (void*)i);
#elif defined(OF_HAVE_OSATOMIC)
if (sizeof(void*) == 4)
return (void*)OSAtomicAdd32Barrier(i, (int32_t*)p);
# ifdef OF_HAVE_OSATOMIC_64
else if (sizeof(void*) == 8)
return (void*)OSAtomicAdd64Barrier(i, (int64_t*)p);
# endif
|
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
|
"subq %1, %0"
: "+&r"(i)
: "r"(i), "m"(*p)
);
return (void*)i;
#elif defined(OF_HAVE_GCC_ATOMIC_OPS)
return __sync_sub_and_fetch(p, i);
#elif defined(OF_HAVE_OSATOMIC)
if (sizeof(void*) == 4)
return (void*)OSAtomicAdd32Barrier(-i, (int32_t*)p);
# ifdef OF_HAVE_OSATOMIC_64
else if (sizeof(void*) == 8)
return (void*)OSAtomicAdd64Barrier(-i, (int64_t*)p);
# endif
|
|
|
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
|
"subq %1, %0"
: "+&r"(i)
: "r"(i), "m"(*p)
);
return (void*)i;
#elif defined(OF_HAVE_GCC_ATOMIC_OPS)
return __sync_sub_and_fetch(p, (void*)i);
#elif defined(OF_HAVE_OSATOMIC)
if (sizeof(void*) == 4)
return (void*)OSAtomicAdd32Barrier(-i, (int32_t*)p);
# ifdef OF_HAVE_OSATOMIC_64
else if (sizeof(void*) == 8)
return (void*)OSAtomicAdd64Barrier(-i, (int64_t*)p);
# endif
|