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.
|
* IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if (defined(MISSING_32BIT_ATOMICS) || defined(MISSING_64BIT_ATOMICS)) && \
|
#if defined(MISSING_64BIT_ATOMICS) && defined(HAVE_PTHREAD)
|
||||||
defined(HAVE_PTHREAD)
|
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
@ -35,129 +34,6 @@
|
|||||||
|
|
||||||
static pthread_mutex_t sync_mutex = PTHREAD_MUTEX_INITIALIZER;
|
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__
|
#ifdef __clang__
|
||||||
#pragma redefine_extname __sync_add_and_fetch_8_c __sync_add_and_fetch_8
|
#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
|
#pragma redefine_extname __sync_sub_and_fetch_8_c __sync_sub_and_fetch_8
|
||||||
|
Loading…
Reference in New Issue
Block a user