Micha Nelissen pisze:
Dariusz Mazur wrote:
Don't know about this one, can't you use a do nothing loop?
in spin-lock there is NOOP used, I think that is instruction, that every
processor do nothing but not avoid (duration is very small but not zero)
Why do you use a NOP in a spin-lock?
its only exaple form sparc manual, I need (I want to test) it to in my
FIFO algo.
form SPARCV9.PDF:
LockWithLDSTUB(lock)
retry:
ldstub [lock],%l0
tst %l0
be out
nop
loop:
ldub [lock],%l0
tst %l0
bne loop
nop
ba,a retry
out:
membar #LoadLoad | #LoadStore
UnLockWithLDSTUB(lock)
membar #StoreStore !RMO and PSO only
membar #LoadStore !RMO only
stub %g0,[lock]
Example 7---Lock and Unlock Using LDSTUB
Darek
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel