drop local change for 32 bit atomics via pthread locks
Mesa is no longer built on hppa or sh
This commit is contained in:
parent
abbb20036f
commit
860983ef49
@ -21,8 +21,7 @@
|
||||
* IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#if (defined(MISSING_32BIT_ATOMICS) || defined(MISSING_64BIT_ATOMICS)) && \
|
||||
defined(HAVE_PTHREAD)
|
||||
#if defined(MISSING_64BIT_ATOMICS) && defined(HAVE_PTHREAD)
|
||||
|
||||
#include <stdint.h>
|
||||
#include <pthread.h>
|
||||
@ -35,129 +34,6 @@
|
||||
|
||||
static pthread_mutex_t sync_mutex = PTHREAD_MUTEX_INITIALIZER;
|
||||
|
||||
#ifdef MISSING_32BIT_ATOMICS
|
||||
|
||||
WEAK uint8_t
|
||||
__sync_add_and_fetch_1(uint8_t *ptr, uint8_t val)
|
||||
{
|
||||
uint8_t r;
|
||||
|
||||
pthread_mutex_lock(&sync_mutex);
|
||||
*ptr += val;
|
||||
r = *ptr;
|
||||
pthread_mutex_unlock(&sync_mutex);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
WEAK uint8_t
|
||||
__sync_sub_and_fetch_1(uint8_t *ptr, uint8_t val)
|
||||
{
|
||||
uint8_t r;
|
||||
|
||||
pthread_mutex_lock(&sync_mutex);
|
||||
*ptr -= val;
|
||||
r = *ptr;
|
||||
pthread_mutex_unlock(&sync_mutex);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
WEAK uint8_t
|
||||
__sync_val_compare_and_swap_1(uint8_t *ptr, uint8_t oldval, uint8_t newval)
|
||||
{
|
||||
uint8_t r;
|
||||
|
||||
pthread_mutex_lock(&sync_mutex);
|
||||
r = *ptr;
|
||||
if (*ptr == oldval)
|
||||
*ptr = newval;
|
||||
pthread_mutex_unlock(&sync_mutex);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
WEAK uint16_t
|
||||
__sync_add_and_fetch_2(uint16_t *ptr, uint16_t val)
|
||||
{
|
||||
uint16_t r;
|
||||
|
||||
pthread_mutex_lock(&sync_mutex);
|
||||
*ptr += val;
|
||||
r = *ptr;
|
||||
pthread_mutex_unlock(&sync_mutex);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
WEAK uint16_t
|
||||
__sync_sub_and_fetch_2(uint16_t *ptr, uint16_t val)
|
||||
{
|
||||
uint16_t r;
|
||||
|
||||
pthread_mutex_lock(&sync_mutex);
|
||||
*ptr -= val;
|
||||
r = *ptr;
|
||||
pthread_mutex_unlock(&sync_mutex);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
WEAK uint16_t
|
||||
__sync_val_compare_and_swap_2(uint16_t *ptr, uint16_t oldval, uint16_t newval)
|
||||
{
|
||||
uint16_t r;
|
||||
|
||||
pthread_mutex_lock(&sync_mutex);
|
||||
r = *ptr;
|
||||
if (*ptr == oldval)
|
||||
*ptr = newval;
|
||||
pthread_mutex_unlock(&sync_mutex);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
WEAK uint32_t
|
||||
__sync_add_and_fetch_4(uint32_t *ptr, uint32_t val)
|
||||
{
|
||||
uint32_t r;
|
||||
|
||||
pthread_mutex_lock(&sync_mutex);
|
||||
*ptr += val;
|
||||
r = *ptr;
|
||||
pthread_mutex_unlock(&sync_mutex);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
WEAK uint32_t
|
||||
__sync_sub_and_fetch_4(uint32_t *ptr, uint32_t val)
|
||||
{
|
||||
uint32_t r;
|
||||
|
||||
pthread_mutex_lock(&sync_mutex);
|
||||
*ptr -= val;
|
||||
r = *ptr;
|
||||
pthread_mutex_unlock(&sync_mutex);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
WEAK uint32_t
|
||||
__sync_val_compare_and_swap_4(uint32_t *ptr, uint32_t oldval, uint32_t newval)
|
||||
{
|
||||
uint32_t r;
|
||||
|
||||
pthread_mutex_lock(&sync_mutex);
|
||||
r = *ptr;
|
||||
if (*ptr == oldval)
|
||||
*ptr = newval;
|
||||
pthread_mutex_unlock(&sync_mutex);
|
||||
|
||||
return r;
|
||||
}
|
||||
#endif /* MISSING_32BIT_ATOMICS */
|
||||
|
||||
#ifdef __clang__
|
||||
#pragma redefine_extname __sync_add_and_fetch_8_c __sync_add_and_fetch_8
|
||||
#pragma redefine_extname __sync_sub_and_fetch_8_c __sync_sub_and_fetch_8
|
||||
|
Loading…
Reference in New Issue
Block a user