On 3/1/07, Rana Dasgupta <[EMAIL PROTECTED]> wrote:

What is the purpose of the Dekker test in 2986? Is it intended to test
correct implementation of long volatile? Other than this, I am not sure
why
the test exists.



For now, I linked JIRA H2986 so that it is "a part of" JIRA H2092.  We also
need to write an "int" version of the H2092.

If this test is to work, 64 bit volatile load/stores will have to be atomic,
and there is no workaround for Weldon's locked implementation of volatile
long on x86. sse2 supports 64 bit aligned moves, and effectively memory
moves that don't split cache lines should be atomic because they are a
single bus transaction. But x86 does not provide an atomicity guarantee on
the 64 bit moves. Worse, no write ordering guarantees are provided with
sse2
instructions( eg movntps, movaps etc. ) which is a much bigger problem,
unless we want to start generating all the sfence, lfence etc.
instructions
also.

Reply via email to