
6 Apr
2005
6 Apr
'05
5:26 p.m.
Alexander Terekhov wrote: [... missing sync ...]
loop0:
lwarx add -1 beq acquire-without-sync
sync
loop1:
stwcx. beq+ done
loop2:
lwarx add -1 bne loop1
acquire-with-sync:
stwcx. bne- loop2 isync blr
acquire-without-sync:
stwcx. bne- loop0 isync
done:
blr
I must be missing something, but it looks to me that you have way too much branching and isync-ing.
Got it now. Thanks. regards, alexander.