Module Name:    src
Committed By:   skrll
Date:           Wed Apr 21 16:23:47 UTC 2021

Modified Files:
        src/common/lib/libc/arch/aarch64/atomic: Makefile.inc atomic_swap_16.S
            atomic_swap_32.S atomic_swap_64.S atomic_swap_8.S
Added Files:
        src/common/lib/libc/arch/aarch64/atomic: __aarch64_swp1_acq.S
            __aarch64_swp1_acq_rel.S __aarch64_swp1_rel.S
            __aarch64_swp1_relax.S __aarch64_swp2_acq.S
            __aarch64_swp2_acq_rel.S __aarch64_swp2_rel.S
            __aarch64_swp2_relax.S __aarch64_swp4_acq.S
            __aarch64_swp4_acq_rel.S __aarch64_swp4_rel.S
            __aarch64_swp4_relax.S __aarch64_swp8_acq.S
            __aarch64_swp8_acq_rel.S __aarch64_swp8_rel.S
            __aarch64_swp8_relax.S
Removed Files:
        src/common/lib/libc/arch/aarch64/atomic: atomic_swap_acq_16.S
            atomic_swap_acq_32.S atomic_swap_acq_64.S atomic_swap_acq_8.S
            atomic_swap_acq_rel_16.S atomic_swap_acq_rel_32.S
            atomic_swap_acq_rel_64.S atomic_swap_acq_rel_8.S
            atomic_swap_rel_16.S atomic_swap_rel_32.S atomic_swap_rel_64.S
            atomic_swap_rel_8.S

Log Message:
Do previous differently as the API is different.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/common/lib/libc/arch/aarch64/atomic/Makefile.inc
cvs rdiff -u -r0 -r1.1 \
    src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp1_acq.S \
    src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp1_acq_rel.S \
    src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp1_rel.S \
    src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp1_relax.S \
    src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp2_acq.S \
    src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp2_acq_rel.S \
    src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp2_rel.S \
    src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp2_relax.S \
    src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp4_acq.S \
    src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp4_acq_rel.S \
    src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp4_rel.S \
    src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp4_relax.S \
    src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp8_acq.S \
    src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp8_acq_rel.S \
    src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp8_rel.S \
    src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp8_relax.S
cvs rdiff -u -r1.3 -r1.4 \
    src/common/lib/libc/arch/aarch64/atomic/atomic_swap_16.S \
    src/common/lib/libc/arch/aarch64/atomic/atomic_swap_32.S \
    src/common/lib/libc/arch/aarch64/atomic/atomic_swap_64.S \
    src/common/lib/libc/arch/aarch64/atomic/atomic_swap_8.S
cvs rdiff -u -r1.1 -r0 \
    src/common/lib/libc/arch/aarch64/atomic/atomic_swap_acq_16.S \
    src/common/lib/libc/arch/aarch64/atomic/atomic_swap_acq_32.S \
    src/common/lib/libc/arch/aarch64/atomic/atomic_swap_acq_64.S \
    src/common/lib/libc/arch/aarch64/atomic/atomic_swap_acq_8.S \
    src/common/lib/libc/arch/aarch64/atomic/atomic_swap_acq_rel_16.S \
    src/common/lib/libc/arch/aarch64/atomic/atomic_swap_acq_rel_32.S \
    src/common/lib/libc/arch/aarch64/atomic/atomic_swap_acq_rel_64.S \
    src/common/lib/libc/arch/aarch64/atomic/atomic_swap_acq_rel_8.S \
    src/common/lib/libc/arch/aarch64/atomic/atomic_swap_rel_16.S \
    src/common/lib/libc/arch/aarch64/atomic/atomic_swap_rel_32.S \
    src/common/lib/libc/arch/aarch64/atomic/atomic_swap_rel_64.S \
    src/common/lib/libc/arch/aarch64/atomic/atomic_swap_rel_8.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/aarch64/atomic/Makefile.inc
diff -u src/common/lib/libc/arch/aarch64/atomic/Makefile.inc:1.2 src/common/lib/libc/arch/aarch64/atomic/Makefile.inc:1.3
--- src/common/lib/libc/arch/aarch64/atomic/Makefile.inc:1.2	Wed Apr 21 07:31:37 2021
+++ src/common/lib/libc/arch/aarch64/atomic/Makefile.inc	Wed Apr 21 16:23:47 2021
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.inc,v 1.2 2021/04/21 07:31:37 skrll Exp $
+# $NetBSD: Makefile.inc,v 1.3 2021/04/21 16:23:47 skrll Exp $
 
 .if defined(LIB) && (${LIB} == "kern" || ${LIB} == "c" || ${LIB} == "pthread" \
 	|| ${LIB} == "rump")
@@ -12,10 +12,10 @@ SRCS.atomic+=	atomic_dec_32.S atomic_dec
 SRCS.atomic+=	atomic_inc_32.S atomic_inc_64.S
 SRCS.atomic+=	membar_ops.S
 #and cas nand or sub swap xor
-.for op in swap
-.for sz in 8 16 32 64
-.for ar in acq rel acq_rel
-SRCS.atomic+=	atomic_${op}_${ar}_${sz}.S
+.for op in swp
+.for sz in 1 2 4 8
+.for ar in relax acq rel acq_rel
+SRCS.atomic+=	__aarch64_${op}${sz}_${ar}.S
 .endfor
 .endfor
 .endfor

Index: src/common/lib/libc/arch/aarch64/atomic/atomic_swap_16.S
diff -u src/common/lib/libc/arch/aarch64/atomic/atomic_swap_16.S:1.3 src/common/lib/libc/arch/aarch64/atomic/atomic_swap_16.S:1.4
--- src/common/lib/libc/arch/aarch64/atomic/atomic_swap_16.S:1.3	Wed Apr 21 07:31:37 2021
+++ src/common/lib/libc/arch/aarch64/atomic/atomic_swap_16.S	Wed Apr 21 16:23:47 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_swap_16.S,v 1.3 2021/04/21 07:31:37 skrll Exp $ */
+/* $NetBSD: atomic_swap_16.S,v 1.4 2021/04/21 16:23:47 skrll Exp $ */
 
 /*-
  * Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -43,7 +43,6 @@ END(_atomic_swap_16)
 ATOMIC_OP_ALIAS(atomic_swap_16,_atomic_swap_16)
 ATOMIC_OP_ALIAS(atomic_swap_short,_atomic_swap_16)
 ATOMIC_OP_ALIAS(atomic_swap_ushort,_atomic_swap_16)
-ATOMIC_OP_ALIAS(__aarch64_swp2_relax,_atomic_swap_16)
 STRONG_ALIAS(__sync_lock_test_and_set_2,_atomic_swap_16)
 STRONG_ALIAS(_atomic_swap_short,_atomic_swap_16)
 STRONG_ALIAS(_atomic_swap_ushort,_atomic_swap_16)
Index: src/common/lib/libc/arch/aarch64/atomic/atomic_swap_32.S
diff -u src/common/lib/libc/arch/aarch64/atomic/atomic_swap_32.S:1.3 src/common/lib/libc/arch/aarch64/atomic/atomic_swap_32.S:1.4
--- src/common/lib/libc/arch/aarch64/atomic/atomic_swap_32.S:1.3	Wed Apr 21 07:31:37 2021
+++ src/common/lib/libc/arch/aarch64/atomic/atomic_swap_32.S	Wed Apr 21 16:23:47 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_swap_32.S,v 1.3 2021/04/21 07:31:37 skrll Exp $ */
+/* $NetBSD: atomic_swap_32.S,v 1.4 2021/04/21 16:23:47 skrll Exp $ */
 
 /*-
  * Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -42,7 +42,6 @@ END(_atomic_swap_32)
 
 ATOMIC_OP_ALIAS(atomic_swap_32,_atomic_swap_32)
 ATOMIC_OP_ALIAS(atomic_swap_uint,_atomic_swap_32)
-ATOMIC_OP_ALIAS(__aarch64_swp4_relax,_atomic_swap_32)
 STRONG_ALIAS(__sync_lock_test_and_set_4,_atomic_swap_32)
 STRONG_ALIAS(_atomic_swap_uint,_atomic_swap_32)
 
Index: src/common/lib/libc/arch/aarch64/atomic/atomic_swap_64.S
diff -u src/common/lib/libc/arch/aarch64/atomic/atomic_swap_64.S:1.3 src/common/lib/libc/arch/aarch64/atomic/atomic_swap_64.S:1.4
--- src/common/lib/libc/arch/aarch64/atomic/atomic_swap_64.S:1.3	Wed Apr 21 07:31:37 2021
+++ src/common/lib/libc/arch/aarch64/atomic/atomic_swap_64.S	Wed Apr 21 16:23:47 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_swap_64.S,v 1.3 2021/04/21 07:31:37 skrll Exp $ */
+/* $NetBSD: atomic_swap_64.S,v 1.4 2021/04/21 16:23:47 skrll Exp $ */
 
 /*-
  * Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -43,7 +43,6 @@ END(_atomic_swap_64)
 ATOMIC_OP_ALIAS(atomic_swap_64,_atomic_swap_64)
 ATOMIC_OP_ALIAS(atomic_swap_ulong,_atomic_swap_64)
 ATOMIC_OP_ALIAS(atomic_swap_ptr,_atomic_swap_64)
-ATOMIC_OP_ALIAS(__aarch64_swp8_relax,_atomic_swap_64)
 STRONG_ALIAS(__sync_lock_test_and_set_8,_atomic_swap_64)
 STRONG_ALIAS(_atomic_swap_ulong,_atomic_swap_64)
 STRONG_ALIAS(_atomic_swap_ptr,_atomic_swap_64)
Index: src/common/lib/libc/arch/aarch64/atomic/atomic_swap_8.S
diff -u src/common/lib/libc/arch/aarch64/atomic/atomic_swap_8.S:1.3 src/common/lib/libc/arch/aarch64/atomic/atomic_swap_8.S:1.4
--- src/common/lib/libc/arch/aarch64/atomic/atomic_swap_8.S:1.3	Wed Apr 21 07:31:37 2021
+++ src/common/lib/libc/arch/aarch64/atomic/atomic_swap_8.S	Wed Apr 21 16:23:47 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_swap_8.S,v 1.3 2021/04/21 07:31:37 skrll Exp $ */
+/* $NetBSD: atomic_swap_8.S,v 1.4 2021/04/21 16:23:47 skrll Exp $ */
 
 /*-
  * Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -43,7 +43,6 @@ END(_atomic_swap_8)
 ATOMIC_OP_ALIAS(atomic_swap_8,_atomic_swap_8)
 ATOMIC_OP_ALIAS(atomic_swap_char,_atomic_swap_8)
 ATOMIC_OP_ALIAS(atomic_swap_uchar,_atomic_swap_8)
-ATOMIC_OP_ALIAS(__aarch64_swp1_relax,_atomic_swap_8)
 STRONG_ALIAS(__sync_lock_test_and_set_1,_atomic_swap_8)
 STRONG_ALIAS(_atomic_swap_char,_atomic_swap_8)
 STRONG_ALIAS(_atomic_swap_uchar,_atomic_swap_8)

Added files:

Index: src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp1_acq.S
diff -u /dev/null src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp1_acq.S:1.1
--- /dev/null	Wed Apr 21 16:23:47 2021
+++ src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp1_acq.S	Wed Apr 21 16:23:47 2021
@@ -0,0 +1,41 @@
+/* $NetBSD: __aarch64_swp1_acq.S,v 1.1 2021/04/21 16:23:47 skrll Exp $ */
+
+/*-
+ * Copyright (c) 2021 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Nick Hudson.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "atomic_op_asm.h"
+
+ENTRY_NP(__aarch64_swp1_acq)
+	mov	x4, x0
+1:	ldaxrb	w0, [x1]
+	stxrb	w3, w4, [x1]
+	cbnz	w3, 2f
+	ret
+2:	b	1b
+END(__aarch64_swp1_acq)
Index: src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp1_acq_rel.S
diff -u /dev/null src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp1_acq_rel.S:1.1
--- /dev/null	Wed Apr 21 16:23:47 2021
+++ src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp1_acq_rel.S	Wed Apr 21 16:23:47 2021
@@ -0,0 +1,41 @@
+/* $NetBSD: __aarch64_swp1_acq_rel.S,v 1.1 2021/04/21 16:23:47 skrll Exp $ */
+
+/*-
+ * Copyright (c) 2021 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Nick Hudson.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "atomic_op_asm.h"
+
+ENTRY_NP(__aarch64_swp1_acq_rel)
+	mov	x4, x0
+1:	ldaxrb	w0, [x1]
+	stlxrb	w3, w4, [x1]
+	cbnz	w3, 2f
+	ret
+2:	b	1b
+END(__aarch64_swp1_acq_rel)
Index: src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp1_rel.S
diff -u /dev/null src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp1_rel.S:1.1
--- /dev/null	Wed Apr 21 16:23:47 2021
+++ src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp1_rel.S	Wed Apr 21 16:23:47 2021
@@ -0,0 +1,41 @@
+/* $NetBSD: __aarch64_swp1_rel.S,v 1.1 2021/04/21 16:23:47 skrll Exp $ */
+
+/*-
+ * Copyright (c) 2021 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Nick Hudson.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "atomic_op_asm.h"
+
+ENTRY_NP(__aarch64_swp1_rel)
+	mov	x4, x0
+1:	ldxrb	w0, [x1]
+	stlxrb	w3, w4, [x1]
+	cbnz	w3, 2f
+	ret
+2:	b	1b
+END(__aarch64_swp1_rel)
Index: src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp1_relax.S
diff -u /dev/null src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp1_relax.S:1.1
--- /dev/null	Wed Apr 21 16:23:47 2021
+++ src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp1_relax.S	Wed Apr 21 16:23:47 2021
@@ -0,0 +1,41 @@
+/* $NetBSD: __aarch64_swp1_relax.S,v 1.1 2021/04/21 16:23:47 skrll Exp $ */
+
+/*-
+ * Copyright (c) 2021 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Nick Hudson.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "atomic_op_asm.h"
+
+ENTRY_NP(__aarch64_swp1_relax)
+	mov	x4, x0
+1:	ldxrb	w0, [x1]
+	stxrb	w3, w4, [x1]
+	cbnz	w3, 2f
+	ret
+2:	b	1b
+END(__aarch64_swp1_relax)
Index: src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp2_acq.S
diff -u /dev/null src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp2_acq.S:1.1
--- /dev/null	Wed Apr 21 16:23:47 2021
+++ src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp2_acq.S	Wed Apr 21 16:23:47 2021
@@ -0,0 +1,41 @@
+/* $NetBSD: __aarch64_swp2_acq.S,v 1.1 2021/04/21 16:23:47 skrll Exp $ */
+
+/*-
+ * Copyright (c) 2021 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Nick Hudson.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "atomic_op_asm.h"
+
+ENTRY_NP(__aarch64_swp2_acq)
+	mov	x4, x0
+1:	ldaxrh	w0, [x1]
+	stxrh	w3, w4, [x1]
+	cbnz	w3, 2f
+	ret
+2:	b	1b
+END(__aarch64_swp2_acq)
Index: src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp2_acq_rel.S
diff -u /dev/null src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp2_acq_rel.S:1.1
--- /dev/null	Wed Apr 21 16:23:47 2021
+++ src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp2_acq_rel.S	Wed Apr 21 16:23:47 2021
@@ -0,0 +1,41 @@
+/* $NetBSD: __aarch64_swp2_acq_rel.S,v 1.1 2021/04/21 16:23:47 skrll Exp $ */
+
+/*-
+ * Copyright (c) 2021 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Nick Hudson.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "atomic_op_asm.h"
+
+ENTRY_NP(__aarch64_swp2_acq_rel)
+	mov	x4, x0
+1:	ldaxrh	w0, [x1]
+	stlxrh	w3, w4, [x1]
+	cbnz	w3, 2f
+	ret
+2:	b	1b
+END(__aarch64_swp2_acq_rel)
Index: src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp2_rel.S
diff -u /dev/null src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp2_rel.S:1.1
--- /dev/null	Wed Apr 21 16:23:47 2021
+++ src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp2_rel.S	Wed Apr 21 16:23:47 2021
@@ -0,0 +1,41 @@
+/* $NetBSD: __aarch64_swp2_rel.S,v 1.1 2021/04/21 16:23:47 skrll Exp $ */
+
+/*-
+ * Copyright (c) 2021 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Nick Hudson.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "atomic_op_asm.h"
+
+ENTRY_NP(__aarch64_swp2_rel)
+	mov	x4, x0
+1:	ldxrh	w0, [x1]
+	stlxrh	w3, w4, [x1]
+	cbnz	w3, 2f
+	ret
+2:	b	1b
+END(__aarch64_swp2_rel)
Index: src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp2_relax.S
diff -u /dev/null src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp2_relax.S:1.1
--- /dev/null	Wed Apr 21 16:23:47 2021
+++ src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp2_relax.S	Wed Apr 21 16:23:47 2021
@@ -0,0 +1,41 @@
+/* $NetBSD: __aarch64_swp2_relax.S,v 1.1 2021/04/21 16:23:47 skrll Exp $ */
+
+/*-
+ * Copyright (c) 2021 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Nick Hudson.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "atomic_op_asm.h"
+
+ENTRY_NP(__aarch64_swp2_relax)
+	mov	x4, x0
+1:	ldxrh	w0, [x1]
+	stxrh	w3, w4, [x1]
+	cbnz	w3, 2f
+	ret
+2:	b	1b
+END(__aarch64_swp2_relax)
Index: src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp4_acq.S
diff -u /dev/null src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp4_acq.S:1.1
--- /dev/null	Wed Apr 21 16:23:47 2021
+++ src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp4_acq.S	Wed Apr 21 16:23:47 2021
@@ -0,0 +1,41 @@
+/* $NetBSD: __aarch64_swp4_acq.S,v 1.1 2021/04/21 16:23:47 skrll Exp $ */
+
+/*-
+ * Copyright (c) 2021 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Nick Hudson.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "atomic_op_asm.h"
+
+ENTRY_NP(__aarch64_swp4_acq)
+	mov	x4, x0
+1:	ldaxr	w0, [x1]
+	stxr	w3, w4, [x1]
+	cbnz	w3, 2f
+	ret
+2:	b	1b
+END(__aarch64_swp4_acq)
Index: src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp4_acq_rel.S
diff -u /dev/null src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp4_acq_rel.S:1.1
--- /dev/null	Wed Apr 21 16:23:47 2021
+++ src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp4_acq_rel.S	Wed Apr 21 16:23:47 2021
@@ -0,0 +1,41 @@
+/* $NetBSD: __aarch64_swp4_acq_rel.S,v 1.1 2021/04/21 16:23:47 skrll Exp $ */
+
+/*-
+ * Copyright (c) 2021 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Nick Hudson.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "atomic_op_asm.h"
+
+ENTRY_NP(__aarch64_swp4_acq_rel)
+	mov	x4, x0
+1:	ldaxr	w0, [x1]
+	stlxr	w3, w4, [x1]
+	cbnz	w3, 2f
+	ret
+2:	b	1b
+END(__aarch64_swp4_acq_rel)
Index: src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp4_rel.S
diff -u /dev/null src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp4_rel.S:1.1
--- /dev/null	Wed Apr 21 16:23:47 2021
+++ src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp4_rel.S	Wed Apr 21 16:23:47 2021
@@ -0,0 +1,41 @@
+/* $NetBSD: __aarch64_swp4_rel.S,v 1.1 2021/04/21 16:23:47 skrll Exp $ */
+
+/*-
+ * Copyright (c) 2021 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Nick Hudson.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "atomic_op_asm.h"
+
+ENTRY_NP(__aarch64_swp4_rel)
+	mov	x4, x0
+1:	ldxr	w0, [x1]
+	stlxr	w3, w4, [x1]
+	cbnz	w3, 2f
+	ret
+2:	b	1b
+END(__aarch64_swp4_rel)
Index: src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp4_relax.S
diff -u /dev/null src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp4_relax.S:1.1
--- /dev/null	Wed Apr 21 16:23:47 2021
+++ src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp4_relax.S	Wed Apr 21 16:23:47 2021
@@ -0,0 +1,41 @@
+/* $NetBSD: __aarch64_swp4_relax.S,v 1.1 2021/04/21 16:23:47 skrll Exp $ */
+
+/*-
+ * Copyright (c) 2021 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Nick Hudson.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "atomic_op_asm.h"
+
+ENTRY_NP(__aarch64_swp4_relax)
+	mov	x4, x0
+1:	ldxr	w0, [x1]
+	stxr	w3, w4, [x1]
+	cbnz	w3, 2f
+	ret
+2:	b	1b
+END(__aarch64_swp4_relax)
Index: src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp8_acq.S
diff -u /dev/null src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp8_acq.S:1.1
--- /dev/null	Wed Apr 21 16:23:47 2021
+++ src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp8_acq.S	Wed Apr 21 16:23:47 2021
@@ -0,0 +1,41 @@
+/* $NetBSD: __aarch64_swp8_acq.S,v 1.1 2021/04/21 16:23:47 skrll Exp $ */
+
+/*-
+ * Copyright (c) 2021 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Nick Hudson.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "atomic_op_asm.h"
+
+ENTRY_NP(__aarch64_swp8_acq)
+	mov	x4, x0
+1:	ldaxr	x0, [x1]
+	stxr	w3, x4, [x1]
+	cbnz	w3, 2f
+	ret
+2:	b	1b
+END(__aarch64_swp8_acq)
Index: src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp8_acq_rel.S
diff -u /dev/null src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp8_acq_rel.S:1.1
--- /dev/null	Wed Apr 21 16:23:47 2021
+++ src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp8_acq_rel.S	Wed Apr 21 16:23:47 2021
@@ -0,0 +1,41 @@
+/* $NetBSD: __aarch64_swp8_acq_rel.S,v 1.1 2021/04/21 16:23:47 skrll Exp $ */
+
+/*-
+ * Copyright (c) 2021 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Nick Hudson.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "atomic_op_asm.h"
+
+ENTRY_NP(__aarch64_swp8_acq_rel)
+	mov	x4, x0
+1:	ldaxr	x0, [x1]
+	stlxr	w3, x4, [x1]
+	cbnz	w3, 2f
+	ret
+2:	b	1b
+END(__aarch64_swp8_acq_rel)
Index: src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp8_rel.S
diff -u /dev/null src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp8_rel.S:1.1
--- /dev/null	Wed Apr 21 16:23:47 2021
+++ src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp8_rel.S	Wed Apr 21 16:23:47 2021
@@ -0,0 +1,41 @@
+/* $NetBSD: __aarch64_swp8_rel.S,v 1.1 2021/04/21 16:23:47 skrll Exp $ */
+
+/*-
+ * Copyright (c) 2021 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Nick Hudson.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "atomic_op_asm.h"
+
+ENTRY_NP(__aarch64_swp8_rel)
+	mov	x4, x0
+1:	ldxr	x0, [x1]
+	stlxr	w3, x4, [x1]
+	cbnz	w3, 2f
+	ret
+2:	b	1b
+END(__aarch64_swp8_rel)
Index: src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp8_relax.S
diff -u /dev/null src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp8_relax.S:1.1
--- /dev/null	Wed Apr 21 16:23:47 2021
+++ src/common/lib/libc/arch/aarch64/atomic/__aarch64_swp8_relax.S	Wed Apr 21 16:23:47 2021
@@ -0,0 +1,41 @@
+/* $NetBSD: __aarch64_swp8_relax.S,v 1.1 2021/04/21 16:23:47 skrll Exp $ */
+
+/*-
+ * Copyright (c) 2021 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Nick Hudson.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "atomic_op_asm.h"
+
+ENTRY_NP(__aarch64_swp8_relax)
+	mov	x4, x0
+1:	ldxr	x0, [x1]
+	stxr	w3, x4, [x1]
+	cbnz	w3, 2f
+	ret
+2:	b	1b
+END(__aarch64_swp8_relax)

Reply via email to