]> git.saurik.com Git - apple/libc.git/blobdiff - i386/sys/OSAtomic.s
Libc-391.4.1.tar.gz
[apple/libc.git] / i386 / sys / OSAtomic.s
index f43b40bc8302b15e06d87e56855ac17bd307c5db..c6dd1515fadf67978da8df56693e966e033f2dd0 100644 (file)
@@ -117,6 +117,11 @@ DECLARE(_OSAtomicAdd64)
 DECLARE(_OSAtomicTestAndSet)
        movl    4(%esp), %eax
        movl    8(%esp), %edx
+       movl    %eax, %ecx
+       andl    $-8, %ecx
+       notl    %eax
+       andl    $7, %eax
+       orl     %ecx, %eax
        call    *_COMM_PAGE_BTS
        setc    %al
        ret
@@ -124,6 +129,11 @@ DECLARE(_OSAtomicTestAndSet)
 DECLARE(_OSAtomicTestAndClear)
        movl    4(%esp), %eax
        movl    8(%esp), %edx
+       movl    %eax, %ecx
+       andl    $-8, %ecx
+       notl    %eax
+       andl    $7, %eax
+       orl     %ecx, %eax
        call    *_COMM_PAGE_BTC
        setc    %al
        ret