------- Comment #8 from hjl dot tools at gmail dot com 2010-08-16 13:19 -------
Created an attachment (id=21490)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21490&action=view)
The preprocessed source
It should be compiled with
-march=i486 -ftls-model=initial-exec -mtune=i586 -O2 -fPIC
The bad assembly has
lock cmpxchgl %edx, (%ecx)
je .L2
subl $12, %esp
pushl %ecx
call gomp_mutex_lock_slow
addl $16, %esp
.L2:
testl $1, %esi
je .L3
movl 1224(%edi), %eax
testl %eax, %eax
je .L21
movl 68(%edi), %edx
orl $2, %edx
movl %edx, 68(%edi)
.L3:
movl %esi, %eax
sete -33(%ebp)
...
lock cmpxchgl %edx, (%ecx)
addl $16, %esp
cmpb $0, -33(%ebp)
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45292