[v3] atomics
David Daney
ddaney@avtrex.com
Sat Apr 19 01:40:00 GMT 2008
David Miller wrote:
> From: David Daney <ddaney@avtrex.com>
> Date: Fri, 18 Apr 2008 10:51:33 -0700
>
>> At this point I don't really have an opinion as to how to fix the
>> problem. One thought that comes to mind is to change the definition of
>> atomic_flag so that the size of the atomic variable is appropriate for
>> the target architecture (32 bits in the case of MIPS)
>
> It's trivial to synthesize 1-byte and 2-byte atomics if you only have
> word sized ones.
>
> You compute a shift and a mask based upon the offset of the byte
> within the word, and then do your LL/SC sequence, shifting and masking
> the byte you want to change in and out of the word.
Right, I had already thought that part out. However it is even more
trivial to change the libstdc++ code so that it only uses 32 bit wide
locations.
The real question is which is the 'right way' to fix the problem. My
feeling is that adding 1 and 2 byte atomics is the right way to go, but
I am open to other options as well.
David Daney
More information about the Gcc-patches
mailing list