Do previous differently as the API is different.
This commit is contained in:
parent
a32fdb6548
commit
fd9a2ad443
@ -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_64.S
|
||||
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
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: atomic_swap_rel_32.S,v 1.1 2021/04/21 07:31:37 skrll Exp $ */
|
||||
/* $NetBSD: __aarch64_swp1_acq.S,v 1.1 2021/04/21 16:23:47 skrll Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2021 The NetBSD Foundation, Inc.
|
||||
@ -31,14 +31,11 @@
|
||||
|
||||
#include "atomic_op_asm.h"
|
||||
|
||||
ENTRY_NP(_atomic_swap_rel_32)
|
||||
ENTRY_NP(__aarch64_swp1_acq)
|
||||
mov x4, x0
|
||||
1: ldxr w0, [x4]
|
||||
stlxr w3, w1, [x4]
|
||||
1: ldaxrb w0, [x1]
|
||||
stxrb w3, w4, [x1]
|
||||
cbnz w3, 2f
|
||||
ret
|
||||
2: b 1b
|
||||
END(_atomic_swap_rel_32)
|
||||
|
||||
ATOMIC_OP_ALIAS(atomic_swap_rel_32,_atomic_swap_rel_32)
|
||||
ATOMIC_OP_ALIAS(__aarch64_swp4_rel,_atomic_swap_rel_32)
|
||||
END(__aarch64_swp1_acq)
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: atomic_swap_rel_8.S,v 1.1 2021/04/21 07:31:37 skrll Exp $ */
|
||||
/* $NetBSD: __aarch64_swp1_acq_rel.S,v 1.1 2021/04/21 16:23:47 skrll Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2021 The NetBSD Foundation, Inc.
|
||||
@ -31,14 +31,11 @@
|
||||
|
||||
#include "atomic_op_asm.h"
|
||||
|
||||
ENTRY_NP(_atomic_swap_rel_8)
|
||||
ENTRY_NP(__aarch64_swp1_acq_rel)
|
||||
mov x4, x0
|
||||
1: ldxrb w0, [x4]
|
||||
stlxrb w3, w1, [x4]
|
||||
1: ldaxrb w0, [x1]
|
||||
stlxrb w3, w4, [x1]
|
||||
cbnz w3, 2f
|
||||
ret
|
||||
2: b 1b
|
||||
END(_atomic_swap_rel_8)
|
||||
|
||||
ATOMIC_OP_ALIAS(atomic_swap_rel_8,_atomic_swap_rel_8)
|
||||
ATOMIC_OP_ALIAS(__aarch64_swp1_rel,_atomic_swap_rel_8)
|
||||
END(__aarch64_swp1_acq_rel)
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: atomic_swap_acq_32.S,v 1.1 2021/04/21 07:31:37 skrll Exp $ */
|
||||
/* $NetBSD: __aarch64_swp1_rel.S,v 1.1 2021/04/21 16:23:47 skrll Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2021 The NetBSD Foundation, Inc.
|
||||
@ -31,14 +31,11 @@
|
||||
|
||||
#include "atomic_op_asm.h"
|
||||
|
||||
ENTRY_NP(_atomic_swap_acq_32)
|
||||
ENTRY_NP(__aarch64_swp1_rel)
|
||||
mov x4, x0
|
||||
1: ldaxr w0, [x4]
|
||||
stxr w3, w1, [x4]
|
||||
1: ldxrb w0, [x1]
|
||||
stlxrb w3, w4, [x1]
|
||||
cbnz w3, 2f
|
||||
ret
|
||||
2: b 1b
|
||||
END(_atomic_swap_acq_32)
|
||||
|
||||
ATOMIC_OP_ALIAS(atomic_swap_acq_32,_atomic_swap_acq_32)
|
||||
ATOMIC_OP_ALIAS(__aarch64_swp4_acq,_atomic_swap_acq_32)
|
||||
END(__aarch64_swp1_rel)
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: atomic_swap_acq_8.S,v 1.1 2021/04/21 07:31:37 skrll Exp $ */
|
||||
/* $NetBSD: __aarch64_swp1_relax.S,v 1.1 2021/04/21 16:23:47 skrll Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2021 The NetBSD Foundation, Inc.
|
||||
@ -31,14 +31,11 @@
|
||||
|
||||
#include "atomic_op_asm.h"
|
||||
|
||||
ENTRY_NP(_atomic_swap_acq_8)
|
||||
ENTRY_NP(__aarch64_swp1_relax)
|
||||
mov x4, x0
|
||||
1: ldaxrb w0, [x4]
|
||||
stxrb w3, w1, [x4]
|
||||
1: ldxrb w0, [x1]
|
||||
stxrb w3, w4, [x1]
|
||||
cbnz w3, 2f
|
||||
ret
|
||||
2: b 1b
|
||||
END(_atomic_swap_acq_8)
|
||||
|
||||
ATOMIC_OP_ALIAS(atomic_swap_acq_8,_atomic_swap_acq_8)
|
||||
ATOMIC_OP_ALIAS(__aarch64_swp1_acq,_atomic_swap_acq_8)
|
||||
END(__aarch64_swp1_relax)
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: atomic_swap_acq_64.S,v 1.1 2021/04/21 07:31:37 skrll Exp $ */
|
||||
/* $NetBSD: __aarch64_swp2_acq.S,v 1.1 2021/04/21 16:23:47 skrll Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2021 The NetBSD Foundation, Inc.
|
||||
@ -31,14 +31,11 @@
|
||||
|
||||
#include "atomic_op_asm.h"
|
||||
|
||||
ENTRY_NP(_atomic_swap_acq_64)
|
||||
ENTRY_NP(__aarch64_swp2_acq)
|
||||
mov x4, x0
|
||||
1: ldaxr x0, [x4]
|
||||
stxr w3, x1, [x4]
|
||||
1: ldaxrh w0, [x1]
|
||||
stxrh w3, w4, [x1]
|
||||
cbnz w3, 2f
|
||||
ret
|
||||
2: b 1b
|
||||
END(_atomic_swap_acq_64)
|
||||
|
||||
ATOMIC_OP_ALIAS(atomic_swap_acq_64,_atomic_swap_acq_64)
|
||||
ATOMIC_OP_ALIAS(__aarch64_swp8_acq,_atomic_swap_acq_64)
|
||||
END(__aarch64_swp2_acq)
|
41
common/lib/libc/arch/aarch64/atomic/__aarch64_swp2_acq_rel.S
Normal file
41
common/lib/libc/arch/aarch64/atomic/__aarch64_swp2_acq_rel.S
Normal file
@ -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)
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: atomic_swap_rel_64.S,v 1.1 2021/04/21 07:31:37 skrll Exp $ */
|
||||
/* $NetBSD: __aarch64_swp2_rel.S,v 1.1 2021/04/21 16:23:47 skrll Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2021 The NetBSD Foundation, Inc.
|
||||
@ -31,14 +31,11 @@
|
||||
|
||||
#include "atomic_op_asm.h"
|
||||
|
||||
ENTRY_NP(_atomic_swap_rel_64)
|
||||
ENTRY_NP(__aarch64_swp2_rel)
|
||||
mov x4, x0
|
||||
1: ldxr x0, [x4]
|
||||
stlxr w3, x1, [x4]
|
||||
1: ldxrh w0, [x1]
|
||||
stlxrh w3, w4, [x1]
|
||||
cbnz w3, 2f
|
||||
ret
|
||||
2: b 1b
|
||||
END(_atomic_swap_rel_64)
|
||||
|
||||
ATOMIC_OP_ALIAS(atomic_swap_rel_64,_atomic_swap_rel_64)
|
||||
ATOMIC_OP_ALIAS(__aarch64_swp8_rel,_atomic_swap_rel_64)
|
||||
END(__aarch64_swp2_rel)
|
41
common/lib/libc/arch/aarch64/atomic/__aarch64_swp2_relax.S
Normal file
41
common/lib/libc/arch/aarch64/atomic/__aarch64_swp2_relax.S
Normal file
@ -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)
|
41
common/lib/libc/arch/aarch64/atomic/__aarch64_swp4_acq.S
Normal file
41
common/lib/libc/arch/aarch64/atomic/__aarch64_swp4_acq.S
Normal file
@ -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)
|
41
common/lib/libc/arch/aarch64/atomic/__aarch64_swp4_acq_rel.S
Normal file
41
common/lib/libc/arch/aarch64/atomic/__aarch64_swp4_acq_rel.S
Normal file
@ -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)
|
41
common/lib/libc/arch/aarch64/atomic/__aarch64_swp4_rel.S
Normal file
41
common/lib/libc/arch/aarch64/atomic/__aarch64_swp4_rel.S
Normal file
@ -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)
|
41
common/lib/libc/arch/aarch64/atomic/__aarch64_swp4_relax.S
Normal file
41
common/lib/libc/arch/aarch64/atomic/__aarch64_swp4_relax.S
Normal file
@ -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)
|
41
common/lib/libc/arch/aarch64/atomic/__aarch64_swp8_acq.S
Normal file
41
common/lib/libc/arch/aarch64/atomic/__aarch64_swp8_acq.S
Normal file
@ -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)
|
41
common/lib/libc/arch/aarch64/atomic/__aarch64_swp8_acq_rel.S
Normal file
41
common/lib/libc/arch/aarch64/atomic/__aarch64_swp8_acq_rel.S
Normal file
@ -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)
|
41
common/lib/libc/arch/aarch64/atomic/__aarch64_swp8_rel.S
Normal file
41
common/lib/libc/arch/aarch64/atomic/__aarch64_swp8_rel.S
Normal file
@ -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)
|
41
common/lib/libc/arch/aarch64/atomic/__aarch64_swp8_relax.S
Normal file
41
common/lib/libc/arch/aarch64/atomic/__aarch64_swp8_relax.S
Normal file
@ -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)
|
@ -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)
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -1,44 +0,0 @@
|
||||
/* $NetBSD: atomic_swap_acq_16.S,v 1.1 2021/04/21 07:31:37 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(_atomic_swap_acq_16)
|
||||
mov x4, x0
|
||||
1: ldaxrh w0, [x4]
|
||||
stxrh w3, w1, [x4]
|
||||
cbnz w3, 2f
|
||||
ret
|
||||
2: b 1b
|
||||
END(_atomic_swap_acq_16)
|
||||
|
||||
ATOMIC_OP_ALIAS(atomic_swap_acq_16,_atomic_swap_acq_16)
|
||||
ATOMIC_OP_ALIAS(__aarch64_swp2_acq,_atomic_swap_acq_16)
|
@ -1,44 +0,0 @@
|
||||
/* $NetBSD: atomic_swap_acq_rel_16.S,v 1.1 2021/04/21 07:31:37 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(_atomic_swap_acq_rel_16)
|
||||
mov x4, x0
|
||||
1: ldaxrh w0, [x4]
|
||||
stlxrh w3, w1, [x4]
|
||||
cbnz w3, 2f
|
||||
ret
|
||||
2: b 1b
|
||||
END(_atomic_swap_acq_rel_16)
|
||||
|
||||
ATOMIC_OP_ALIAS(atomic_swap_acq_rel_16,_atomic_swap_acq_rel_16)
|
||||
ATOMIC_OP_ALIAS(__aarch64_swp2_acq_rel,_atomic_swap_acq_rel_16)
|
@ -1,44 +0,0 @@
|
||||
/* $NetBSD: atomic_swap_acq_rel_32.S,v 1.1 2021/04/21 07:31:37 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(_atomic_swap_acq_rel_32)
|
||||
mov x4, x0
|
||||
1: ldaxr w0, [x4]
|
||||
stlxr w3, w1, [x4]
|
||||
cbnz w3, 2f
|
||||
ret
|
||||
2: b 1b
|
||||
END(_atomic_swap_acq_rel_32)
|
||||
|
||||
ATOMIC_OP_ALIAS(atomic_swap_acq_rel_32,_atomic_swap_acq_rel_32)
|
||||
ATOMIC_OP_ALIAS(__aarch64_swp4_acq_rel,_atomic_swap_acq_rel_32)
|
@ -1,44 +0,0 @@
|
||||
/* $NetBSD: atomic_swap_acq_rel_64.S,v 1.1 2021/04/21 07:31:37 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(_atomic_swap_acq_rel_64)
|
||||
mov x4, x0
|
||||
1: ldaxr x0, [x4]
|
||||
stlxr w3, x1, [x4]
|
||||
cbnz w3, 2f
|
||||
ret
|
||||
2: b 1b
|
||||
END(_atomic_swap_acq_rel_64)
|
||||
|
||||
ATOMIC_OP_ALIAS(atomic_swap_acq_rel_64,_atomic_swap_acq_rel_64)
|
||||
ATOMIC_OP_ALIAS(__aarch64_swp8_acq_rel,_atomic_swap_acq_rel_64)
|
@ -1,44 +0,0 @@
|
||||
/* $NetBSD: atomic_swap_acq_rel_8.S,v 1.1 2021/04/21 07:31:37 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(_atomic_swap_acq_rel_8)
|
||||
mov x4, x0
|
||||
1: ldaxrb w0, [x4]
|
||||
stlxrb w3, w1, [x4]
|
||||
cbnz w3, 2f
|
||||
ret
|
||||
2: b 1b
|
||||
END(_atomic_swap_acq_rel_8)
|
||||
|
||||
ATOMIC_OP_ALIAS(atomic_swap_rel_8,_atomic_swap_rel_8)
|
||||
ATOMIC_OP_ALIAS(__aarch64_swp1_rel,_atomic_swap_rel_8)
|
@ -1,44 +0,0 @@
|
||||
/* $NetBSD: atomic_swap_rel_16.S,v 1.1 2021/04/21 07:31:37 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(_atomic_swap_rel_16)
|
||||
mov x4, x0
|
||||
1: ldxrh w0, [x4]
|
||||
stlxrh w3, w1, [x4]
|
||||
cbnz w3, 2f
|
||||
ret
|
||||
2: b 1b
|
||||
END(_atomic_swap_rel_16)
|
||||
|
||||
ATOMIC_OP_ALIAS(atomic_swap_rel_16,_atomic_swap_rel_16)
|
||||
ATOMIC_OP_ALIAS(__aarch64_swp2_rel,_atomic_swap_rel_16)
|
Loading…
Reference in New Issue
Block a user