[Bug target/36793] x86-64 does not get __sync_synchronize right
samuel dot thibault at ens-lyon dot org
gcc-bugzilla@gcc.gnu.org
Fri Nov 21 11:18:00 GMT 2008
------- Comment #1 from samuel dot thibault at ens-lyon dot org 2008-11-21 11:16 -------
Just to confirm the bug: the gcc doc says it follows the Intel itanium binary
interface. The Intel documentation says « Associated with each instrinsic are
certain memory barrier properties that restrict the movement of memory
references to visible data across the intrinsic operation (by either the
compiler or the processor). » Not including the mfence instruction would let
the processor move references across the instruction, so it is mandatory. And
that is not only for x86_64, but also x86, on which you can use e.g. a locked
nop if you don't know the arch, or a mfence when using -march= (IIRC it
appeared with SSE2)
--
samuel dot thibault at ens-lyon dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |samuel dot thibault at ens-
| |lyon dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36793
More information about the Gcc-bugs
mailing list