summaryrefslogtreecommitdiffstats
path: root/lib/libgssapi/gss_pname_to_uid.c
diff options
context:
space:
mode:
authored <ed@FreeBSD.org>2013-06-08 13:19:11 +0000
committered <ed@FreeBSD.org>2013-06-08 13:19:11 +0000
commit10554f30575cd190e163e334156c6270c2e88a48 (patch)
tree9cf919cf8c648029ada2c496b50207d4e967706d /lib/libgssapi/gss_pname_to_uid.c
parent163379d62d47e4f123dc7ec4a8272fedd248d52d (diff)
downloadFreeBSD-src-10554f30575cd190e163e334156c6270c2e88a48.zip
FreeBSD-src-10554f30575cd190e163e334156c6270c2e88a48.tar.gz
Add proper __sync_*() intrinsics for MIPS.
To make <stdatomic.h> work on MIPS (and ARM) using GCC, we need to provide implementations of the __sync_*() functions. I already added these functions for 4 and 8 byte types to libcompiler-rt some time ago, based on top of <machine/atomic.h>. Unfortunately, <machine/atomic.h> only provides a subset of the features needed to implement <stdatomic.h>. This means that in some cases we had to do compare-and-exchange calls in loops, where a simple ll/sc would suffice. Also implement these functions for 1 and 2 byte types. MIPS only provides ll/sc instructions for 4 and 8 byte types, but this is of course no limitation. We can simply load 4 bytes and use some bitmask tricks to modify only the bytes affected. Discussed on: mips, arch Tested with: QEMU
Diffstat (limited to 'lib/libgssapi/gss_pname_to_uid.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud