Add simplified sparc8 ASM for solaris_sparc.s, from Alan Stange.
authorBruce Momjian
Thu, 18 May 2006 00:05:01 +0000 (00:05 +0000)
committerBruce Momjian
Thu, 18 May 2006 00:05:01 +0000 (00:05 +0000)
src/backend/port/tas/solaris_sparc.s

index 59c44874998d3b30d17a593defb4151af5d0c644..51ba569f8d7697225ddcfaa1f8b3769c0b0bd53c 100644 (file)
@@ -19,21 +19,19 @@ pg_atomic_cas:
    ! "cas" only works on sparcv9 chips, and requies a compiler
    ! that is targeting sparcv9.  It will fail on a compiler
    ! targeting sparcv8, and of course will not be understood
-   ! by a sparcv8 CPU.  If this fails on existing Solaris
-   ! systems, we need to use a !defined(__sparcv9) test
-   ! to fall back to the old "ldstub" call for sparcv8 compiles.
-   ! gcc continues to use "ldstub" because there is no indication
-   ! which sparc version it is targeting.
+   ! by a sparcv8 CPU.  gcc continues to use "ldstub" because
+   ! there is no indication which sparc version it is targeting.
    !
    ! There actually is a trick for embedding "cas" for a compiler
    ! that is targeting sparcv8:
    !
    !   http://cvs.opensolaris.org/source/xref/on/usr/src/lib/libc/sparc/threads/sparc.il
-   !
-   ! This might work for sparc8:
-   ! ldstub [%o0],%o1  ! moves only a byte
 
+#ifdef __sparcv9
    cas     [%o0],%o2,%o1
+#else
+   ldstub [%o0],%o1
+#endif
    mov     %o1,%o0
    retl
    nop