Module Name: src
Committed By: skrll
Date: Wed Jan 29 11:03:04 UTC 2014
Modified Files:
src/common/lib/libc/arch/hppa/atomic: Makefile.inc atomic_cas_up.S
Log Message:
Provide _atomic_cas_8_up and _atomic_cas_16_up functions
To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/common/lib/libc/arch/hppa/atomic/Makefile.inc
cvs rdiff -u -r1.2 -r1.3 src/common/lib/libc/arch/hppa/atomic/atomic_cas_up.S
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/common/lib/libc/arch/hppa/atomic/Makefile.inc
diff -u src/common/lib/libc/arch/hppa/atomic/Makefile.inc:1.8 src/common/lib/libc/arch/hppa/atomic/Makefile.inc:1.9
--- src/common/lib/libc/arch/hppa/atomic/Makefile.inc:1.8 Mon Jan 17 07:29:17 2011
+++ src/common/lib/libc/arch/hppa/atomic/Makefile.inc Wed Jan 29 11:03:04 2014
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.inc,v 1.8 2011/01/17 07:29:17 skrll Exp $
+# $NetBSD: Makefile.inc,v 1.9 2014/01/29 11:03:04 skrll Exp $
.if defined(LIB)
@@ -17,7 +17,8 @@ SRCS+= atomic_add_32_cas.c atomic_add_32
SRCS+= atomic_init_testset.c
SRCS+= atomic_cas_up.S
CPPFLAGS+= -D__HAVE_ASM_ATOMIC_CAS_UP
-
+CPPFLAGS+= -D__HAVE_ASM_ATOMIC_CAS_16_UP
+CPPFLAGS+= -D__HAVE_ASM_ATOMIC_CAS_8_UP
. endif
.endif
Index: src/common/lib/libc/arch/hppa/atomic/atomic_cas_up.S
diff -u src/common/lib/libc/arch/hppa/atomic/atomic_cas_up.S:1.2 src/common/lib/libc/arch/hppa/atomic/atomic_cas_up.S:1.3
--- src/common/lib/libc/arch/hppa/atomic/atomic_cas_up.S:1.2 Sun Jan 16 12:07:26 2011
+++ src/common/lib/libc/arch/hppa/atomic/atomic_cas_up.S Wed Jan 29 11:03:04 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_cas_up.S,v 1.2 2011/01/16 12:07:26 skrll Exp $ */
+/* $NetBSD: atomic_cas_up.S,v 1.3 2014/01/29 11:03:04 skrll Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -44,3 +44,27 @@ RAS_END_ASM_HIDDEN(_atomic_cas)
bv,n %r0(%rp)
EXIT(_atomic_cas_up)
+
+LEAF_ENTRY_NOPROFILE(_atomic_cas_16_up)
+ .hidden _C_LABEL(_atomic_cas_16_up)
+
+RAS_START_ASM_HIDDEN(_atomic_cas_16)
+ ldh 0(%arg0),%ret0
+ comb,<>,n %arg1, %ret0, 1f
+ sth %arg2, 0(%arg0)
+RAS_END_ASM_HIDDEN(_atomic_cas_16)
+1:
+ bv,n %r0(%rp)
+EXIT(_atomic_cas_16_up)
+
+LEAF_ENTRY_NOPROFILE(_atomic_cas_8_up)
+ .hidden _C_LABEL(_atomic_cas_8_up)
+
+RAS_START_ASM_HIDDEN(_atomic_cas_8)
+ ldb 0(%arg0),%ret0
+ comb,<>,n %arg1, %ret0, 1f
+ stb %arg2, 0(%arg0)
+RAS_END_ASM_HIDDEN(_atomic_cas_8)
+1:
+ bv,n %r0(%rp)
+EXIT(_atomic_cas_8_up)