#if defined(__sparcv9) || defined(__sparc)
- .section ".text"
- .align 8
- .skip 24
- .align 4
+ .section ".text"
+ .align 8
+ .skip 24
+ .align 4
- .global pg_atomic_cas
+ .global pg_atomic_cas
pg_atomic_cas:
- cas [%o0],%o2,%o1
- mov %o1,%o0
- retl
- nop
- .type pg_atomic_cas,2
- .size pg_atomic_cas,(.-pg_atomic_cas)
+
+ cas [%o0],%o2,%o1
+ mov %o1,%o0
+ retl
+ nop
+ .type pg_atomic_cas,2
+ .size pg_atomic_cas,(.-pg_atomic_cas)
#endif
/ '/' is the comment for x86, while '!' is the comment for Sparc
- .file "tas.s"
+ .file "tas.s"
#if defined(__amd64)
- .code64
+ .code64
#endif
- .globl pg_atomic_cas
- .type pg_atomic_cas, @function
+ .globl pg_atomic_cas
+ .type pg_atomic_cas, @function
- .section .text, "ax"
- .align 16
+ .section .text, "ax"
+ .align 16
pg_atomic_cas:
#if defined(__amd64)
- movl %edx,%eax
- lock
- cmpxchgl %esi,(%rdi)
+ movl %edx,%eax
+ lock
+ cmpxchgl %esi,(%rdi)
#else
- movl 4(%esp), %edx
- movl 8(%esp), %ecx
- movl 12(%esp), %eax
- lock
- cmpxchgl %ecx, (%edx)
+ movl 4(%esp), %edx
+ movl 8(%esp), %ecx
+ movl 12(%esp), %eax
+ lock
+ cmpxchgl %ecx, (%edx)
#endif
- ret
- .size pg_atomic_cas, . - pg_atomic_cas
+ ret
+ .size pg_atomic_cas, . - pg_atomic_cas