On Fri, Feb 07, 2014 at 11:31:39AM +0100, Peter Zijlstra wrote: > Anyway, what might work is something like (please forgive my ppc asm, I > can barely read the thing, I've never before attempted writing it): > > lock: > 1: lharx %0, 0, &head > mov %1, %0 > addic %0, %0, 1 > stwcd %0, 0, &head > bne- 1b > 2: lhax %0, 0, &tail
That might need to be lhz too, I'm confused on all the load variants. > lwsync > cmp 0, %0, %0 cmp 0, %0, %1 So we compare the &tail load to the xadd return %1 above. > bne- 2b > > > unlock: > lhz %0, 0, &tail > addic %0, %0, 1 > lwsync > sth %0, 0, &tail > _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev