Commit 8d988c7d authored by Bruce Momjian's avatar Bruce Momjian

Allow sparcv8plus to use "cas".

Theo Schlossnagle
parent d8f940f2
...@@ -16,21 +16,20 @@ ...@@ -16,21 +16,20 @@
.global pg_atomic_cas .global pg_atomic_cas
pg_atomic_cas: pg_atomic_cas:
! "cas" only works on sparcv9 chips, and requies a compiler ! "cas" only works on sparcv9 and sparcv8plus chips, and
! that is targeting sparcv9. It will fail on a compiler ! requies a compiler targeting these CPUs. It will fail
! targeting sparcv8, and of course will not be understood ! on a compiler targeting sparcv8, and of course will not
! by a sparcv8 CPU. gcc continues to use "ldstub" because ! be understood by a sparcv8 CPU. gcc continues to use
! there is no indication which sparc version it is targeting. ! "ldstub" because it targets sparcv7.
! !
! It is actually possible to use "cas" for sparcv8 binaries if ! There is actually a trick for embedding "cas" in a
! -xarch=v8plus is used for compilation. There is actually a ! sparcv8-targeted compiler, but it can only be run
! trick for embedding "cas" in a sparcv8-targeted compiler, but ! on a sparcv8plus/v9 cpus:
! it can only be run on a sparcv8plus cpus:
! !
! http://cvs.opensolaris.org/source/xref/on/usr/src/lib/libc/sparc/threads/sparc.il ! http://cvs.opensolaris.org/source/xref/on/usr/src/lib/libc/sparc/threads/sparc.il
! !
#ifdef __sparcv9 #if defined(__sparcv9) || defined(__sparcv8plus)
cas [%o0],%o2,%o1 cas [%o0],%o2,%o1
#else #else
ldstub [%o0],%o1 ldstub [%o0],%o1
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment