Someone inquired on IRC about the atomic increment/decrement functions on
i386/amd64.

The atomic_{inc,dec}_*_nv functions are implemented as a leaq + cmpxchg
loop. For example:
http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/common/atomic/amd64/atomic.s#76

The question was why these don't use an xadd instead. I'm pretty sure it
would take fewer cycles in any case, so this is weird.

Any thoughts?

-Albert
_______________________________________________
opensolaris-code mailing list
opensolaris-code@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/opensolaris-code

Reply via email to