Use improved __sync_*() intrinsics for MIPS in userspace as well.
r251524 introduced custom tailored versions for MIPS of these functions for kernel-space code. We can just reuse them in userspace as well.
This commit is contained in:
parent
2e5d5dc936
commit
e737464f59
@ -157,7 +157,7 @@ SRCF+= divsi3 \
|
||||
.endif
|
||||
|
||||
# FreeBSD-specific atomic intrinsics.
|
||||
.if ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "mips"
|
||||
.if ${MACHINE_CPUARCH} == "arm"
|
||||
SRCF+= __sync_fetch_and_add_4 \
|
||||
__sync_fetch_and_and_4 \
|
||||
__sync_fetch_and_or_4 \
|
||||
@ -166,15 +166,10 @@ SRCF+= __sync_fetch_and_add_4 \
|
||||
__sync_lock_test_and_set_4 \
|
||||
__sync_synchronize \
|
||||
__sync_val_compare_and_swap_4
|
||||
.endif
|
||||
.if ${MACHINE_ARCH:Mmips64*} != ""
|
||||
SRCF+= __sync_fetch_and_add_8 \
|
||||
__sync_fetch_and_and_8 \
|
||||
__sync_fetch_and_or_8 \
|
||||
__sync_fetch_and_sub_8 \
|
||||
__sync_fetch_and_xor_8 \
|
||||
__sync_lock_test_and_set_8 \
|
||||
__sync_val_compare_and_swap_8
|
||||
.elif ${MACHINE_CPUARCH} == "mips"
|
||||
.PATH: ${.CURDIR}/../../sys/mips/mips
|
||||
|
||||
SRCF+= stdatomic
|
||||
.endif
|
||||
|
||||
.for file in ${SRCF}
|
||||
|
@ -1,6 +0,0 @@
|
||||
/* $FreeBSD$ */
|
||||
#define NAME __sync_fetch_and_add_8
|
||||
#define TYPE int64_t
|
||||
#define FETCHADD(x, y) atomic_fetchadd_64(x, y)
|
||||
|
||||
#include "__sync_fetch_and_op_n.h"
|
@ -1,7 +0,0 @@
|
||||
/* $FreeBSD$ */
|
||||
#define NAME __sync_fetch_and_and_8
|
||||
#define TYPE int64_t
|
||||
#define CMPSET atomic_cmpset_64
|
||||
#define EXPRESSION t & value
|
||||
|
||||
#include "__sync_fetch_and_op_n.h"
|
@ -1,7 +0,0 @@
|
||||
/* $FreeBSD$ */
|
||||
#define NAME __sync_fetch_and_or_8
|
||||
#define TYPE int64_t
|
||||
#define CMPSET atomic_cmpset_64
|
||||
#define EXPRESSION t | value
|
||||
|
||||
#include "__sync_fetch_and_op_n.h"
|
@ -1,6 +0,0 @@
|
||||
/* $FreeBSD$ */
|
||||
#define NAME __sync_fetch_and_sub_8
|
||||
#define TYPE int64_t
|
||||
#define FETCHADD(x, y) atomic_fetchadd_64(x, -(y))
|
||||
|
||||
#include "__sync_fetch_and_op_n.h"
|
@ -1,7 +0,0 @@
|
||||
/* $FreeBSD$ */
|
||||
#define NAME __sync_fetch_and_xor_8
|
||||
#define TYPE int64_t
|
||||
#define CMPSET atomic_cmpset_64
|
||||
#define EXPRESSION t ^ value
|
||||
|
||||
#include "__sync_fetch_and_op_n.h"
|
@ -1,7 +0,0 @@
|
||||
/* $FreeBSD$ */
|
||||
#define NAME __sync_lock_test_and_set_8
|
||||
#define TYPE int64_t
|
||||
#define CMPSET atomic_cmpset_64
|
||||
#define EXPRESSION value
|
||||
|
||||
#include "__sync_fetch_and_op_n.h"
|
@ -1,6 +0,0 @@
|
||||
/* $FreeBSD$ */
|
||||
#define NAME __sync_val_compare_and_swap_8
|
||||
#define TYPE int64_t
|
||||
#define CMPSET atomic_cmpset_64
|
||||
|
||||
#include "__sync_val_compare_and_swap_n.h"
|
Loading…
x
Reference in New Issue
Block a user