On Sat, Feb 02, 2002 at 01:53:23PM -0500, Justin Carlson wrote: > 2) More importantly, most implementations don't use any sort of dynamic > branch prediction on branch likelies. They predict taken, always, since > that's the specified intent (it's a branch *likely* to be taken). CPU guys hate branch likely and would probably love if whoever invented them hires at Intel ;-) > For most spin locks, the normal behaviour is a fall through, not taking > that branch, so you're inflicting a branch mispredict penalty on every > lock grabbed without contention. Even for locks which the general case > is contention, giving the processor branch predictor a chance to learn > that is a Good Idea. I was thinking about spinlocks like retry: la addrreg, retry ll reg, lockvar ... sc reg, lockvar teq $0, reg That would depend on the price of a trap instruction when it's not taken and the probability of the lock being congested. Ralf