freebsd-dev/sys/cddl/contrib/opensolaris/common
Andriy Gapon 3251c5ae51 fix up r353168, add atomic_swap_64 to i386 version of opensolaris_atomic.S
The compatibility code for the atomic operations in ZFS code is a bit
messy.  In some cases the native definitions are directly made
available, in some cases there are emulated operations in
opensolaris_atomic.c and in yet other cases there are atomic operations
implemented in assembly that were obtained from OpenSolaris / illumos.

This commit adds atomic_swap_64 for use with i386 userland.
The code is copied from illumos.

I am not sure why FreeBSD does not provide that operation natively.
Maybe because we try (or pretend) to support processors that did not
have the necessary instructions.

While here I also added atomic_load_64 for the same reasons.
This is original code based on iilumos atomic_swap_64 and FreeBSD
atomic_load_acq_64_i586.

Pointyhat to:	avg
MFC after:	1 week
2019-10-07 12:53:27 +00:00
..
acl Revert r299454 and r299448. 2016-06-30 14:55:49 +00:00
atomic fix up r353168, add atomic_swap_64 to i386 version of opensolaris_atomic.S 2019-10-07 12:53:27 +00:00
avl MFV r287684: 6091 avl_add doesn't assert on non-debug builds 2015-09-12 08:50:43 +00:00
nvpair MFV r337223: 2018-08-03 01:52:25 +00:00
unicode
util
zfs MFV r350898, r351075: 8423 8199 7432 Implement large_dnode pool feature 2019-10-07 08:14:45 +00:00