diff options
-rw-r--r-- | src/libthread/Linux-power-asm.s | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/libthread/Linux-power-asm.s b/src/libthread/Linux-power-asm.s new file mode 100644 index 00000000..d6e21c15 --- /dev/null +++ b/src/libthread/Linux-power-asm.s @@ -0,0 +1,16 @@ + .globl _tas +_tas: + li %r0, 0 + mr %r4, %r3 + lis %r5, 0xcafe + ori %r5, %r5, 0xbabe +1: + lwarx %r3, %r0, %r4 + cmpwi %r3, 0 + bne 2f + stwcx. %r5, %r0, %r4 + bne- 1b +2: + sync + blr + |