put mpi's atomics back in, but with the return value of add (and therefore sub, inc...
authordlg <dlg@openbsd.org>
Wed, 6 May 2015 03:30:03 +0000 (03:30 +0000)
committerdlg <dlg@openbsd.org>
Wed, 6 May 2015 03:30:03 +0000 (03:30 +0000)
commit3c99142581a6a3b344bc85a3d07af12953b9c513
tree3b09a7c908814289e71b2ba9c1a9f879ac36ffbf
parent611d62353b8351a1e0ffb6dfe66f66ff3498bc4a
put mpi's atomics back in, but with the return value of add (and therefore sub, inc, and dec) fixed.

the asm read the value from memory into a register, added to it,
and then tried to write it back. after succeeding it doesnt have
to add again before returning.

this splits sub, inc, and dec off from add. sub can use the subf
opcode, and inc and dec can use the addic opcode. explicitely
identify where the modified memory is so we can avoid using "memory"
as a clobber.

ok mpi@
sys/arch/powerpc/include/atomic.h