This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
__sync_bool_compare_and_swap
- From: Magnus Fromreide <magfr at lysator dot liu dot se>
- To: gcc at gcc dot gnu dot org
- Date: Fri, 05 Jan 2007 17:57:19 +0100
- Subject: __sync_bool_compare_and_swap
I got so happy when __sync_bool_compare_and_swap showed up in 4.1 but
now HEAD have changed the behaviour for me.
Earlier I got (gcc version 4.1.2 20061028 (prerelease) (Debian
4.1.1-19)) (Yes, vendor version, but gcc.gnu.org versions did the same)
lock
cmpxchgl %edx, (%ecx)
but now I get (gcc version 4.3.0 20070105 (experimental)) (rev 120486
(this would be interesting in the output of gcc -v, is there a way to
put the revision there?))
call __sync_bool_compare_and_swap_4
Now, reading the manual suggests that if I use the wrong architecture I
should get a call of this form but since the code I used was
int main()
{
int a;
return __sync_bool_compare_and_swap(&a, 0, 1);
}
I think it should generate the cmpxchgl.
/MF