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:
Ed Schouten 2013-06-08 13:22:53 +00:00
parent 2e5d5dc936
commit e737464f59
8 changed files with 5 additions and 56 deletions

View File

@ -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}

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"