Module Name: src
Committed By: tls
Date: Sun Aug 10 06:47:06 UTC 2014
Modified Files:
src/common/lib/libc/arch/arm/atomic [tls-earlyentropy]: Makefile.inc
atomic_add_16.S atomic_add_32.S atomic_add_8.S atomic_and_16.S
atomic_and_32.S atomic_and_8.S atomic_or_16.S atomic_or_32.S
atomic_or_8.S atomic_swap.S atomic_swap_16.S atomic_swap_64.S
atomic_xor_16.S atomic_xor_32.S atomic_xor_8.S
sync_fetch_and_add_8.S sync_fetch_and_and_8.S sync_fetch_and_or_8.S
sync_fetch_and_sub_8.S sync_fetch_and_xor_8.S
src/common/lib/libc/arch/arm/quad [tls-earlyentropy]: __aeabi_ldivmod.S
__aeabi_uldivmod.S
src/common/lib/libc/arch/arm/string [tls-earlyentropy]: strcat_arm.S
strlcat_arm.S strlen_arm.S
src/common/lib/libc/arch/i386/atomic [tls-earlyentropy]: atomic.S
src/common/lib/libc/arch/i386/gen [tls-earlyentropy]: byte_swap_2.S
byte_swap_4.S
src/common/lib/libc/arch/i386/string [tls-earlyentropy]: memset.S
src/common/lib/libc/arch/i386/string/small [tls-earlyentropy]: memcpy.S
src/common/lib/libc/arch/m68k/atomic [tls-earlyentropy]: atomic_add.S
atomic_and.S atomic_or.S atomic_sub.S atomic_swap.S atomic_xor.S
src/common/lib/libc/arch/x86_64/atomic [tls-earlyentropy]: atomic.S
src/common/lib/libc/arch/x86_64/gen [tls-earlyentropy]: byte_swap_2.S
byte_swap_4.S byte_swap_8.S
src/common/lib/libc/arch/x86_64/string [tls-earlyentropy]: memset.S
src/common/lib/libc/atomic [tls-earlyentropy]: atomic_add_16_cas.c
atomic_add_32_cas.c atomic_add_64_cas.c atomic_add_8_cas.c
atomic_and_16_cas.c atomic_and_32_cas.c atomic_and_64_cas.c
atomic_and_8_cas.c atomic_or_16_cas.c atomic_or_32_cas.c
atomic_or_64_cas.c atomic_or_8_cas.c atomic_sub_16_cas.c
atomic_sub_32_cas.c atomic_sub_64_cas.c atomic_sub_8_cas.c
atomic_swap_16_cas.c atomic_swap_32_cas.c atomic_swap_64_cas.c
atomic_swap_8_cas.c atomic_xor_16_cas.c atomic_xor_32_cas.c
atomic_xor_64_cas.c atomic_xor_8_cas.c
src/common/lib/libc/stdlib [tls-earlyentropy]: random.c
src/common/lib/libc/string [tls-earlyentropy]: bcopy.c
consttime_memequal.c explicit_memset.c
src/common/lib/libutil [tls-earlyentropy]: snprintb.c
src/common/lib/libx86emu [tls-earlyentropy]: x86emu.c
Added Files:
src/common/lib/libc/atomic [tls-earlyentropy]: atomic_load.c
atomic_store.c
src/common/lib/libc/string [tls-earlyentropy]: strcspn.c strpbrk.c
strspn.c
Log Message:
Rebase.
To generate a diff of this commit:
cvs rdiff -u -r1.22 -r1.22.2.1 \
src/common/lib/libc/arch/arm/atomic/Makefile.inc
cvs rdiff -u -r1.2 -r1.2.2.1 \
src/common/lib/libc/arch/arm/atomic/atomic_add_16.S \
src/common/lib/libc/arch/arm/atomic/atomic_add_8.S \
src/common/lib/libc/arch/arm/atomic/atomic_and_16.S \
src/common/lib/libc/arch/arm/atomic/atomic_and_8.S \
src/common/lib/libc/arch/arm/atomic/atomic_or_16.S \
src/common/lib/libc/arch/arm/atomic/atomic_or_8.S \
src/common/lib/libc/arch/arm/atomic/atomic_swap_16.S \
src/common/lib/libc/arch/arm/atomic/atomic_xor_16.S \
src/common/lib/libc/arch/arm/atomic/atomic_xor_32.S \
src/common/lib/libc/arch/arm/atomic/atomic_xor_8.S \
src/common/lib/libc/arch/arm/atomic/sync_fetch_and_add_8.S \
src/common/lib/libc/arch/arm/atomic/sync_fetch_and_and_8.S \
src/common/lib/libc/arch/arm/atomic/sync_fetch_and_or_8.S \
src/common/lib/libc/arch/arm/atomic/sync_fetch_and_sub_8.S \
src/common/lib/libc/arch/arm/atomic/sync_fetch_and_xor_8.S
cvs rdiff -u -r1.7 -r1.7.2.1 \
src/common/lib/libc/arch/arm/atomic/atomic_add_32.S \
src/common/lib/libc/arch/arm/atomic/atomic_and_32.S \
src/common/lib/libc/arch/arm/atomic/atomic_or_32.S
cvs rdiff -u -r1.10 -r1.10.2.1 \
src/common/lib/libc/arch/arm/atomic/atomic_swap.S
cvs rdiff -u -r1.8 -r1.8.2.1 \
src/common/lib/libc/arch/arm/atomic/atomic_swap_64.S
cvs rdiff -u -r1.12 -r1.12.2.1 \
src/common/lib/libc/arch/arm/quad/__aeabi_ldivmod.S
cvs rdiff -u -r1.8 -r1.8.2.1 \
src/common/lib/libc/arch/arm/quad/__aeabi_uldivmod.S
cvs rdiff -u -r1.5 -r1.5.2.1 src/common/lib/libc/arch/arm/string/strcat_arm.S \
src/common/lib/libc/arch/arm/string/strlcat_arm.S
cvs rdiff -u -r1.8 -r1.8.2.1 src/common/lib/libc/arch/arm/string/strlen_arm.S
cvs rdiff -u -r1.20 -r1.20.2.1 src/common/lib/libc/arch/i386/atomic/atomic.S
cvs rdiff -u -r1.3 -r1.3.48.1 src/common/lib/libc/arch/i386/gen/byte_swap_2.S \
src/common/lib/libc/arch/i386/gen/byte_swap_4.S
cvs rdiff -u -r1.4 -r1.4.40.1 src/common/lib/libc/arch/i386/string/memset.S
cvs rdiff -u -r1.1 -r1.1.20.1 \
src/common/lib/libc/arch/i386/string/small/memcpy.S
cvs rdiff -u -r1.9 -r1.9.2.1 \
src/common/lib/libc/arch/m68k/atomic/atomic_add.S
cvs rdiff -u -r1.10 -r1.10.2.1 \
src/common/lib/libc/arch/m68k/atomic/atomic_and.S \
src/common/lib/libc/arch/m68k/atomic/atomic_or.S
cvs rdiff -u -r1.2 -r1.2.2.1 \
src/common/lib/libc/arch/m68k/atomic/atomic_sub.S \
src/common/lib/libc/arch/m68k/atomic/atomic_xor.S
cvs rdiff -u -r1.8 -r1.8.2.1 \
src/common/lib/libc/arch/m68k/atomic/atomic_swap.S
cvs rdiff -u -r1.16 -r1.16.24.1 \
src/common/lib/libc/arch/x86_64/atomic/atomic.S
cvs rdiff -u -r1.2 -r1.2.70.1 \
src/common/lib/libc/arch/x86_64/gen/byte_swap_2.S \
src/common/lib/libc/arch/x86_64/gen/byte_swap_4.S
cvs rdiff -u -r1.1 -r1.1.24.1 \
src/common/lib/libc/arch/x86_64/gen/byte_swap_8.S
cvs rdiff -u -r1.3 -r1.3.24.1 src/common/lib/libc/arch/x86_64/string/memset.S
cvs rdiff -u -r1.2 -r1.2.2.1 src/common/lib/libc/atomic/atomic_add_16_cas.c \
src/common/lib/libc/atomic/atomic_add_8_cas.c \
src/common/lib/libc/atomic/atomic_and_16_cas.c \
src/common/lib/libc/atomic/atomic_and_8_cas.c \
src/common/lib/libc/atomic/atomic_or_16_cas.c \
src/common/lib/libc/atomic/atomic_or_8_cas.c \
src/common/lib/libc/atomic/atomic_sub_16_cas.c \
src/common/lib/libc/atomic/atomic_sub_64_cas.c \
src/common/lib/libc/atomic/atomic_sub_8_cas.c \
src/common/lib/libc/atomic/atomic_swap_16_cas.c \
src/common/lib/libc/atomic/atomic_swap_8_cas.c \
src/common/lib/libc/atomic/atomic_xor_16_cas.c \
src/common/lib/libc/atomic/atomic_xor_64_cas.c \
src/common/lib/libc/atomic/atomic_xor_8_cas.c
cvs rdiff -u -r1.8 -r1.8.2.1 src/common/lib/libc/atomic/atomic_add_32_cas.c \
src/common/lib/libc/atomic/atomic_add_64_cas.c \
src/common/lib/libc/atomic/atomic_swap_64_cas.c
cvs rdiff -u -r1.9 -r1.9.2.1 src/common/lib/libc/atomic/atomic_and_32_cas.c \
src/common/lib/libc/atomic/atomic_and_64_cas.c \
src/common/lib/libc/atomic/atomic_or_32_cas.c \
src/common/lib/libc/atomic/atomic_or_64_cas.c
cvs rdiff -u -r0 -r1.2.2.2 src/common/lib/libc/atomic/atomic_load.c \
src/common/lib/libc/atomic/atomic_store.c
cvs rdiff -u -r1.1 -r1.1.2.1 src/common/lib/libc/atomic/atomic_sub_32_cas.c \
src/common/lib/libc/atomic/atomic_xor_32_cas.c
cvs rdiff -u -r1.6 -r1.6.2.1 src/common/lib/libc/atomic/atomic_swap_32_cas.c
cvs rdiff -u -r1.3 -r1.3.70.1 src/common/lib/libc/stdlib/random.c
cvs rdiff -u -r1.9 -r1.9.24.1 src/common/lib/libc/string/bcopy.c
cvs rdiff -u -r1.4 -r1.4.2.1 src/common/lib/libc/string/consttime_memequal.c
cvs rdiff -u -r1.3 -r1.3.2.1 src/common/lib/libc/string/explicit_memset.c
cvs rdiff -u -r0 -r1.1.2.2 src/common/lib/libc/string/strcspn.c \
src/common/lib/libc/string/strpbrk.c src/common/lib/libc/string/strspn.c
cvs rdiff -u -r1.14 -r1.14.2.1 src/common/lib/libutil/snprintb.c
cvs rdiff -u -r1.7 -r1.7.26.1 src/common/lib/libx86emu/x86emu.c
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/arm/atomic/Makefile.inc
diff -u src/common/lib/libc/arch/arm/atomic/Makefile.inc:1.22 src/common/lib/libc/arch/arm/atomic/Makefile.inc:1.22.2.1
--- src/common/lib/libc/arch/arm/atomic/Makefile.inc:1.22 Tue Mar 4 16:15:28 2014
+++ src/common/lib/libc/arch/arm/atomic/Makefile.inc Sun Aug 10 06:47:05 2014
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.inc,v 1.22 2014/03/04 16:15:28 matt Exp $
+# $NetBSD: Makefile.inc,v 1.22.2.1 2014/08/10 06:47:05 tls Exp $
.ifnmake obj
.include "${NETBSDSRCDIR}/common/lib/libc/arch/arm/features.mk"
@@ -23,7 +23,8 @@ SRCS.atomic+= atomic_xor_32_cas.c atomic
atomic_and_16_cas.c atomic_and_8_cas.c \
atomic_add_16_cas.c atomic_add_8_cas.c \
atomic_swap_16_cas.c atomic_swap_8_cas.c \
- atomic_cas_32_cas.c atomic_cas_16_cas.c atomic_cas_8_cas.c
+ atomic_cas_32_cas.c atomic_cas_16_cas.c atomic_cas_8_cas.c \
+ atomic_load.c atomic_store.c
.endif
.else
Index: src/common/lib/libc/arch/arm/atomic/atomic_add_16.S
diff -u src/common/lib/libc/arch/arm/atomic/atomic_add_16.S:1.2 src/common/lib/libc/arch/arm/atomic/atomic_add_16.S:1.2.2.1
--- src/common/lib/libc/arch/arm/atomic/atomic_add_16.S:1.2 Tue Mar 4 16:15:28 2014
+++ src/common/lib/libc/arch/arm/atomic/atomic_add_16.S Sun Aug 10 06:47:05 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_add_16.S,v 1.2 2014/03/04 16:15:28 matt Exp $ */
+/* $NetBSD: atomic_add_16.S,v 1.2.2.1 2014/08/10 06:47:05 tls Exp $ */
/*-
* Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -56,6 +56,7 @@ ATOMIC_OP_ALIAS(atomic_add_16,_atomic_ad
ATOMIC_OP_ALIAS(atomic_add_short,_atomic_add_16)
ATOMIC_OP_ALIAS(atomic_add_ushort,_atomic_add_16)
CRT_ALIAS(__sync_fetch_and_add_2,_atomic_add_16)
+CRT_ALIAS(__atomic_fetch_add_2,_atomic_add_16)
STRONG_ALIAS(_atomic_add_short,_atomic_add_16)
STRONG_ALIAS(_atomic_add_ushort,_atomic_add_16)
@@ -63,6 +64,7 @@ ATOMIC_OP_ALIAS(atomic_sub_16,_atomic_su
ATOMIC_OP_ALIAS(atomic_sub_short,_atomic_sub_16)
ATOMIC_OP_ALIAS(atomic_sub_ushort,_atomic_sub_16)
CRT_ALIAS(__sync_fetch_and_sub_2,_atomic_sub_16)
+CRT_ALIAS(__atomic_fetch_sub_2,_atomic_sub_16)
STRONG_ALIAS(_atomic_sub_short,_atomic_sub_16)
STRONG_ALIAS(_atomic_sub_ushort,_atomic_sub_16)
Index: src/common/lib/libc/arch/arm/atomic/atomic_add_8.S
diff -u src/common/lib/libc/arch/arm/atomic/atomic_add_8.S:1.2 src/common/lib/libc/arch/arm/atomic/atomic_add_8.S:1.2.2.1
--- src/common/lib/libc/arch/arm/atomic/atomic_add_8.S:1.2 Tue Mar 4 16:15:28 2014
+++ src/common/lib/libc/arch/arm/atomic/atomic_add_8.S Sun Aug 10 06:47:05 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_add_8.S,v 1.2 2014/03/04 16:15:28 matt Exp $ */
+/* $NetBSD: atomic_add_8.S,v 1.2.2.1 2014/08/10 06:47:05 tls Exp $ */
/*-
* Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -56,6 +56,7 @@ ATOMIC_OP_ALIAS(atomic_add_8,_atomic_add
ATOMIC_OP_ALIAS(atomic_add_char,_atomic_add_8)
ATOMIC_OP_ALIAS(atomic_add_uchar,_atomic_add_8)
CRT_ALIAS(__sync_fetch_and_add_1,_atomic_add_8)
+CRT_ALIAS(__atomic_fetch_add_1,_atomic_add_8)
STRONG_ALIAS(_atomic_add_char,_atomic_add_8)
STRONG_ALIAS(_atomic_add_uchar,_atomic_add_8)
@@ -63,6 +64,7 @@ ATOMIC_OP_ALIAS(atomic_sub_8,_atomic_sub
ATOMIC_OP_ALIAS(atomic_sub_char,_atomic_sub_8)
ATOMIC_OP_ALIAS(atomic_sub_uchar,_atomic_sub_8)
CRT_ALIAS(__sync_fetch_and_sub_1,_atomic_sub_8)
+CRT_ALIAS(__atomic_fetch_sub_1,_atomic_sub_8)
STRONG_ALIAS(_atomic_sub_char,_atomic_sub_8)
STRONG_ALIAS(_atomic_sub_uchar,_atomic_sub_8)
Index: src/common/lib/libc/arch/arm/atomic/atomic_and_16.S
diff -u src/common/lib/libc/arch/arm/atomic/atomic_and_16.S:1.2 src/common/lib/libc/arch/arm/atomic/atomic_and_16.S:1.2.2.1
--- src/common/lib/libc/arch/arm/atomic/atomic_and_16.S:1.2 Tue Mar 4 16:15:28 2014
+++ src/common/lib/libc/arch/arm/atomic/atomic_and_16.S Sun Aug 10 06:47:05 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_and_16.S,v 1.2 2014/03/04 16:15:28 matt Exp $ */
+/* $NetBSD: atomic_and_16.S,v 1.2.2.1 2014/08/10 06:47:05 tls Exp $ */
/*-
* Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -51,6 +51,7 @@ END(_atomic_and_16)
ATOMIC_OP_ALIAS(atomic_and_16,_atomic_and_16)
ATOMIC_OP_ALIAS(atomic_and_ushort,_atomic_and_16)
CRT_ALIAS(__sync_fetch_and_and_2,_atomic_and_16)
+CRT_ALIAS(__atomic_fetch_and_2,_atomic_and_16)
STRONG_ALIAS(_atomic_and_ushort,_atomic_and_16)
ENTRY_NP(_atomic_and_16_nv)
Index: src/common/lib/libc/arch/arm/atomic/atomic_and_8.S
diff -u src/common/lib/libc/arch/arm/atomic/atomic_and_8.S:1.2 src/common/lib/libc/arch/arm/atomic/atomic_and_8.S:1.2.2.1
--- src/common/lib/libc/arch/arm/atomic/atomic_and_8.S:1.2 Tue Mar 4 16:15:28 2014
+++ src/common/lib/libc/arch/arm/atomic/atomic_and_8.S Sun Aug 10 06:47:05 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_and_8.S,v 1.2 2014/03/04 16:15:28 matt Exp $ */
+/* $NetBSD: atomic_and_8.S,v 1.2.2.1 2014/08/10 06:47:05 tls Exp $ */
/*-
* Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -51,6 +51,7 @@ END(_atomic_and_8)
ATOMIC_OP_ALIAS(atomic_and_8,_atomic_and_8)
ATOMIC_OP_ALIAS(atomic_and_uchar,_atomic_and_8)
CRT_ALIAS(__sync_fetch_and_and_1,_atomic_and_8)
+CRT_ALIAS(__atomic_fetch_and_1,_atomic_and_8)
STRONG_ALIAS(_atomic_and_uchar,_atomic_and_8)
ENTRY_NP(_atomic_and_8_nv)
Index: src/common/lib/libc/arch/arm/atomic/atomic_or_16.S
diff -u src/common/lib/libc/arch/arm/atomic/atomic_or_16.S:1.2 src/common/lib/libc/arch/arm/atomic/atomic_or_16.S:1.2.2.1
--- src/common/lib/libc/arch/arm/atomic/atomic_or_16.S:1.2 Tue Mar 4 16:15:28 2014
+++ src/common/lib/libc/arch/arm/atomic/atomic_or_16.S Sun Aug 10 06:47:05 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_or_16.S,v 1.2 2014/03/04 16:15:28 matt Exp $ */
+/* $NetBSD: atomic_or_16.S,v 1.2.2.1 2014/08/10 06:47:05 tls Exp $ */
/*-
* Copyright (c) 2013 The NetBSD Foundation, Inc.
* All rights reserved.
@@ -50,6 +50,7 @@ END(_atomic_or_16)
ATOMIC_OP_ALIAS(atomic_or_16,_atomic_or_16)
ATOMIC_OP_ALIAS(atomic_or_ushort,_atomic_or_16)
CRT_ALIAS(__sync_fetch_and_or_2,_atomic_or_16)
+CRT_ALIAS(__atomic_fetch_or_2,_atomic_or_16)
STRONG_ALIAS(_atomic_or_ushort,_atomic_or_16)
ENTRY_NP(_atomic_or_16_nv)
Index: src/common/lib/libc/arch/arm/atomic/atomic_or_8.S
diff -u src/common/lib/libc/arch/arm/atomic/atomic_or_8.S:1.2 src/common/lib/libc/arch/arm/atomic/atomic_or_8.S:1.2.2.1
--- src/common/lib/libc/arch/arm/atomic/atomic_or_8.S:1.2 Tue Mar 4 16:15:28 2014
+++ src/common/lib/libc/arch/arm/atomic/atomic_or_8.S Sun Aug 10 06:47:05 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_or_8.S,v 1.2 2014/03/04 16:15:28 matt Exp $ */
+/* $NetBSD: atomic_or_8.S,v 1.2.2.1 2014/08/10 06:47:05 tls Exp $ */
/*-
* Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -51,6 +51,7 @@ END(_atomic_or_8)
ATOMIC_OP_ALIAS(atomic_or_8,_atomic_or_8)
ATOMIC_OP_ALIAS(atomic_or_char,_atomic_or_8)
CRT_ALIAS(__sync_fetch_and_or_1,_atomic_or_8)
+CRT_ALIAS(__atomic_fetch_or_1,_atomic_or_8)
STRONG_ALIAS(_atomic_or_char,_atomic_or_8)
ENTRY_NP(_atomic_or_8_nv)
Index: src/common/lib/libc/arch/arm/atomic/atomic_swap_16.S
diff -u src/common/lib/libc/arch/arm/atomic/atomic_swap_16.S:1.2 src/common/lib/libc/arch/arm/atomic/atomic_swap_16.S:1.2.2.1
--- src/common/lib/libc/arch/arm/atomic/atomic_swap_16.S:1.2 Tue Mar 4 16:15:28 2014
+++ src/common/lib/libc/arch/arm/atomic/atomic_swap_16.S Sun Aug 10 06:47:05 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_swap_16.S,v 1.2 2014/03/04 16:15:28 matt Exp $ */
+/* $NetBSD: atomic_swap_16.S,v 1.2.2.1 2014/08/10 06:47:05 tls Exp $ */
/*-
* Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -51,6 +51,7 @@ ATOMIC_OP_ALIAS(atomic_swap_16,_atomic_s
ATOMIC_OP_ALIAS(atomic_swap_short,_atomic_swap_16)
ATOMIC_OP_ALIAS(atomic_swap_ushort,_atomic_swap_16)
CRT_ALIAS(__sync_lock_test_and_set_2,_atomic_swap_16)
+CRT_ALIAS(__atomic_exchange_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/arm/atomic/atomic_xor_16.S
diff -u src/common/lib/libc/arch/arm/atomic/atomic_xor_16.S:1.2 src/common/lib/libc/arch/arm/atomic/atomic_xor_16.S:1.2.2.1
--- src/common/lib/libc/arch/arm/atomic/atomic_xor_16.S:1.2 Tue Mar 4 16:15:28 2014
+++ src/common/lib/libc/arch/arm/atomic/atomic_xor_16.S Sun Aug 10 06:47:05 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_xor_16.S,v 1.2 2014/03/04 16:15:28 matt Exp $ */
+/* $NetBSD: atomic_xor_16.S,v 1.2.2.1 2014/08/10 06:47:05 tls Exp $ */
/*-
* Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -51,6 +51,7 @@ END(_atomic_xor_16)
ATOMIC_OP_ALIAS(atomic_xor_16,_atomic_xor_16)
ATOMIC_OP_ALIAS(atomic_xor_ushort,_atomic_xor_16)
CRT_ALIAS(__sync_fetch_and_xor_2,_atomic_xor_16)
+CRT_ALIAS(__atomic_fetch_xor_2,_atomic_xor_16)
STRONG_ALIAS(_atomic_xor_ushort,_atomic_xor_16)
ENTRY_NP(_atomic_xor_16_nv)
Index: src/common/lib/libc/arch/arm/atomic/atomic_xor_32.S
diff -u src/common/lib/libc/arch/arm/atomic/atomic_xor_32.S:1.2 src/common/lib/libc/arch/arm/atomic/atomic_xor_32.S:1.2.2.1
--- src/common/lib/libc/arch/arm/atomic/atomic_xor_32.S:1.2 Tue Mar 4 16:15:28 2014
+++ src/common/lib/libc/arch/arm/atomic/atomic_xor_32.S Sun Aug 10 06:47:05 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_xor_32.S,v 1.2 2014/03/04 16:15:28 matt Exp $ */
+/* $NetBSD: atomic_xor_32.S,v 1.2.2.1 2014/08/10 06:47:05 tls Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
* All rights reserved.
@@ -51,6 +51,7 @@ ATOMIC_OP_ALIAS(atomic_xor_32,_atomic_xo
ATOMIC_OP_ALIAS(atomic_xor_uint,_atomic_xor_32)
ATOMIC_OP_ALIAS(atomic_xor_ulong,_atomic_xor_32)
CRT_ALIAS(__sync_fetch_and_xor_4,_atomic_xor_32)
+CRT_ALIAS(__atomic_fetch_xor_4,_atomic_xor_32)
STRONG_ALIAS(_atomic_xor_uint,_atomic_xor_32)
STRONG_ALIAS(_atomic_xor_ulong,_atomic_xor_32)
Index: src/common/lib/libc/arch/arm/atomic/atomic_xor_8.S
diff -u src/common/lib/libc/arch/arm/atomic/atomic_xor_8.S:1.2 src/common/lib/libc/arch/arm/atomic/atomic_xor_8.S:1.2.2.1
--- src/common/lib/libc/arch/arm/atomic/atomic_xor_8.S:1.2 Tue Mar 4 16:15:28 2014
+++ src/common/lib/libc/arch/arm/atomic/atomic_xor_8.S Sun Aug 10 06:47:05 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_xor_8.S,v 1.2 2014/03/04 16:15:28 matt Exp $ */
+/* $NetBSD: atomic_xor_8.S,v 1.2.2.1 2014/08/10 06:47:05 tls Exp $ */
/*-
* Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -51,6 +51,7 @@ END(_atomic_xor_8)
ATOMIC_OP_ALIAS(atomic_xor_8,_atomic_xor_8)
ATOMIC_OP_ALIAS(atomic_xor_uchar,_atomic_xor_8)
CRT_ALIAS(__sync_fetch_and_xor_1,_atomic_xor_8)
+CRT_ALIAS(__atomic_fetch_xor_1,_atomic_xor_8)
STRONG_ALIAS(_atomic_xor_uchar,_atomic_xor_8)
ENTRY_NP(_atomic_xor_8_nv)
Index: src/common/lib/libc/arch/arm/atomic/sync_fetch_and_add_8.S
diff -u src/common/lib/libc/arch/arm/atomic/sync_fetch_and_add_8.S:1.2 src/common/lib/libc/arch/arm/atomic/sync_fetch_and_add_8.S:1.2.2.1
--- src/common/lib/libc/arch/arm/atomic/sync_fetch_and_add_8.S:1.2 Sat Nov 30 21:09:11 2013
+++ src/common/lib/libc/arch/arm/atomic/sync_fetch_and_add_8.S Sun Aug 10 06:47:05 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: sync_fetch_and_add_8.S,v 1.2 2013/11/30 21:09:11 joerg Exp $ */
+/* $NetBSD: sync_fetch_and_add_8.S,v 1.2.2.1 2014/08/10 06:47:05 tls Exp $ */
/*-
* Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -55,4 +55,6 @@ ENTRY_NP(__sync_fetch_and_add_8)
RET /* return old value */
END(__sync_fetch_and_add_8)
+CRT_ALIAS(__atomic_fetch_add_8,__sync_fetch_and_add_8)
+
#endif /* _ARM_ARCH_6 */
Index: src/common/lib/libc/arch/arm/atomic/sync_fetch_and_and_8.S
diff -u src/common/lib/libc/arch/arm/atomic/sync_fetch_and_and_8.S:1.2 src/common/lib/libc/arch/arm/atomic/sync_fetch_and_and_8.S:1.2.2.1
--- src/common/lib/libc/arch/arm/atomic/sync_fetch_and_and_8.S:1.2 Sat Nov 30 21:09:11 2013
+++ src/common/lib/libc/arch/arm/atomic/sync_fetch_and_and_8.S Sun Aug 10 06:47:05 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: sync_fetch_and_and_8.S,v 1.2 2013/11/30 21:09:11 joerg Exp $ */
+/* $NetBSD: sync_fetch_and_and_8.S,v 1.2.2.1 2014/08/10 06:47:05 tls Exp $ */
/*-
* Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -55,4 +55,6 @@ ENTRY_NP(__sync_fetch_and_and_8)
RET /* return old value */
END(__sync_fetch_and_and_8)
+CRT_ALIAS(__atomic_fetch_and_8,__sync_fetch_and_and_8)
+
#endif /* _ARM_ARCH_6 */
Index: src/common/lib/libc/arch/arm/atomic/sync_fetch_and_or_8.S
diff -u src/common/lib/libc/arch/arm/atomic/sync_fetch_and_or_8.S:1.2 src/common/lib/libc/arch/arm/atomic/sync_fetch_and_or_8.S:1.2.2.1
--- src/common/lib/libc/arch/arm/atomic/sync_fetch_and_or_8.S:1.2 Sat Nov 30 21:09:11 2013
+++ src/common/lib/libc/arch/arm/atomic/sync_fetch_and_or_8.S Sun Aug 10 06:47:05 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: sync_fetch_and_or_8.S,v 1.2 2013/11/30 21:09:11 joerg Exp $ */
+/* $NetBSD: sync_fetch_and_or_8.S,v 1.2.2.1 2014/08/10 06:47:05 tls Exp $ */
/*-
* Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -55,4 +55,6 @@ ENTRY_NP(__sync_fetch_and_or_8)
RET /* return old value */
END(__sync_fetch_and_or_8)
+CRT_ALIAS(__atomic_fetch_or_8,__sync_fetch_and_or_8)
+
#endif /* _ARM_ARCH_6 */
Index: src/common/lib/libc/arch/arm/atomic/sync_fetch_and_sub_8.S
diff -u src/common/lib/libc/arch/arm/atomic/sync_fetch_and_sub_8.S:1.2 src/common/lib/libc/arch/arm/atomic/sync_fetch_and_sub_8.S:1.2.2.1
--- src/common/lib/libc/arch/arm/atomic/sync_fetch_and_sub_8.S:1.2 Sat Nov 30 21:09:11 2013
+++ src/common/lib/libc/arch/arm/atomic/sync_fetch_and_sub_8.S Sun Aug 10 06:47:05 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: sync_fetch_and_sub_8.S,v 1.2 2013/11/30 21:09:11 joerg Exp $ */
+/* $NetBSD: sync_fetch_and_sub_8.S,v 1.2.2.1 2014/08/10 06:47:05 tls Exp $ */
/*-
* Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -55,4 +55,6 @@ ENTRY_NP(__sync_fetch_and_sub_8)
RET /* return old value */
END(__sync_fetch_and_sub_8)
+CRT_ALIAS(__atomic_fetch_sub_8,__sync_fetch_and_sub_8)
+
#endif /* _ARM_ARCH_6 */
Index: src/common/lib/libc/arch/arm/atomic/sync_fetch_and_xor_8.S
diff -u src/common/lib/libc/arch/arm/atomic/sync_fetch_and_xor_8.S:1.2 src/common/lib/libc/arch/arm/atomic/sync_fetch_and_xor_8.S:1.2.2.1
--- src/common/lib/libc/arch/arm/atomic/sync_fetch_and_xor_8.S:1.2 Sat Nov 30 21:09:11 2013
+++ src/common/lib/libc/arch/arm/atomic/sync_fetch_and_xor_8.S Sun Aug 10 06:47:05 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: sync_fetch_and_xor_8.S,v 1.2 2013/11/30 21:09:11 joerg Exp $ */
+/* $NetBSD: sync_fetch_and_xor_8.S,v 1.2.2.1 2014/08/10 06:47:05 tls Exp $ */
/*-
* Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -55,4 +55,6 @@ ENTRY_NP(__sync_fetch_and_xor_8)
RET /* return old value */
END(__sync_fetch_and_xor_8)
+CRT_ALIAS(__atomic_fetch_xor_8,__sync_fetch_and_xor_8)
+
#endif /* _ARM_ARCH_6 */
Index: src/common/lib/libc/arch/arm/atomic/atomic_add_32.S
diff -u src/common/lib/libc/arch/arm/atomic/atomic_add_32.S:1.7 src/common/lib/libc/arch/arm/atomic/atomic_add_32.S:1.7.2.1
--- src/common/lib/libc/arch/arm/atomic/atomic_add_32.S:1.7 Sat Feb 22 17:08:30 2014
+++ src/common/lib/libc/arch/arm/atomic/atomic_add_32.S Sun Aug 10 06:47:05 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_add_32.S,v 1.7 2014/02/22 17:08:30 martin Exp $ */
+/* $NetBSD: atomic_add_32.S,v 1.7.2.1 2014/08/10 06:47:05 tls Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -57,6 +57,7 @@ ATOMIC_OP_ALIAS(atomic_add_int,_atomic_a
ATOMIC_OP_ALIAS(atomic_add_long,_atomic_add_32)
ATOMIC_OP_ALIAS(atomic_add_ptr,_atomic_add_32)
CRT_ALIAS(__sync_fetch_and_add_4,_atomic_add_32)
+CRT_ALIAS(__atomic_fetch_add_4,_atomic_add_32)
STRONG_ALIAS(_atomic_add_int,_atomic_add_32)
STRONG_ALIAS(_atomic_add_long,_atomic_add_32)
STRONG_ALIAS(_atomic_add_ptr,_atomic_add_32)
@@ -66,6 +67,7 @@ ATOMIC_OP_ALIAS(atomic_sub_int,_atomic_s
ATOMIC_OP_ALIAS(atomic_sub_long,_atomic_sub_32)
ATOMIC_OP_ALIAS(atomic_sub_ptr,_atomic_sub_32)
CRT_ALIAS(__sync_fetch_and_sub_4,_atomic_sub_32)
+CRT_ALIAS(__atomic_fetch_sub_4,_atomic_sub_32)
STRONG_ALIAS(_atomic_sub_int,_atomic_sub_32)
STRONG_ALIAS(_atomic_sub_long,_atomic_sub_32)
STRONG_ALIAS(_atomic_sub_ptr,_atomic_sub_32)
Index: src/common/lib/libc/arch/arm/atomic/atomic_and_32.S
diff -u src/common/lib/libc/arch/arm/atomic/atomic_and_32.S:1.7 src/common/lib/libc/arch/arm/atomic/atomic_and_32.S:1.7.2.1
--- src/common/lib/libc/arch/arm/atomic/atomic_and_32.S:1.7 Sat Feb 22 17:08:30 2014
+++ src/common/lib/libc/arch/arm/atomic/atomic_and_32.S Sun Aug 10 06:47:05 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_and_32.S,v 1.7 2014/02/22 17:08:30 martin Exp $ */
+/* $NetBSD: atomic_and_32.S,v 1.7.2.1 2014/08/10 06:47:05 tls Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -52,6 +52,7 @@ ATOMIC_OP_ALIAS(atomic_and_32,_atomic_an
ATOMIC_OP_ALIAS(atomic_and_uint,_atomic_and_32)
ATOMIC_OP_ALIAS(atomic_and_ulong,_atomic_and_32)
CRT_ALIAS(__sync_fetch_and_and_4,_atomic_and_32)
+CRT_ALIAS(__atomic_fetch_and_4,_atomic_and_32)
STRONG_ALIAS(_atomic_and_uint,_atomic_and_32)
STRONG_ALIAS(_atomic_and_ulong,_atomic_and_32)
Index: src/common/lib/libc/arch/arm/atomic/atomic_or_32.S
diff -u src/common/lib/libc/arch/arm/atomic/atomic_or_32.S:1.7 src/common/lib/libc/arch/arm/atomic/atomic_or_32.S:1.7.2.1
--- src/common/lib/libc/arch/arm/atomic/atomic_or_32.S:1.7 Sat Feb 22 17:08:30 2014
+++ src/common/lib/libc/arch/arm/atomic/atomic_or_32.S Sun Aug 10 06:47:05 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_or_32.S,v 1.7 2014/02/22 17:08:30 martin Exp $ */
+/* $NetBSD: atomic_or_32.S,v 1.7.2.1 2014/08/10 06:47:05 tls Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
* All rights reserved.
@@ -51,6 +51,7 @@ ATOMIC_OP_ALIAS(atomic_or_32,_atomic_or_
ATOMIC_OP_ALIAS(atomic_or_uint,_atomic_or_32)
ATOMIC_OP_ALIAS(atomic_or_ulong,_atomic_or_32)
CRT_ALIAS(__sync_fetch_and_or_4,_atomic_or_32)
+CRT_ALIAS(__atomic_fetch_or_4,_atomic_or_32)
STRONG_ALIAS(_atomic_or_uint,_atomic_or_32)
STRONG_ALIAS(_atomic_or_ulong,_atomic_or_32)
Index: src/common/lib/libc/arch/arm/atomic/atomic_swap.S
diff -u src/common/lib/libc/arch/arm/atomic/atomic_swap.S:1.10 src/common/lib/libc/arch/arm/atomic/atomic_swap.S:1.10.2.1
--- src/common/lib/libc/arch/arm/atomic/atomic_swap.S:1.10 Tue Mar 4 16:15:28 2014
+++ src/common/lib/libc/arch/arm/atomic/atomic_swap.S Sun Aug 10 06:47:05 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_swap.S,v 1.10 2014/03/04 16:15:28 matt Exp $ */
+/* $NetBSD: atomic_swap.S,v 1.10.2.1 2014/08/10 06:47:05 tls Exp $ */
/*-
* Copyright (c) 2007,2012 The NetBSD Foundation, Inc.
@@ -79,6 +79,7 @@ ATOMIC_OP_ALIAS(atomic_swap_uint,_atomic
ATOMIC_OP_ALIAS(atomic_swap_ulong,_atomic_swap_32)
ATOMIC_OP_ALIAS(atomic_swap_ptr,_atomic_swap_32)
CRT_ALIAS(__sync_lock_test_and_set_4,_atomic_swap_32)
+CRT_ALIAS(__atomic_exchange_4,_atomic_swap_32)
STRONG_ALIAS(_atomic_swap_uint,_atomic_swap_32)
STRONG_ALIAS(_atomic_swap_ulong,_atomic_swap_32)
STRONG_ALIAS(_atomic_swap_ptr,_atomic_swap_32)
@@ -115,6 +116,7 @@ ATOMIC_OP_ALIAS(atomic_swap_8,_atomic_sw
ATOMIC_OP_ALIAS(atomic_swap_char,_atomic_swap_8)
ATOMIC_OP_ALIAS(atomic_swap_uchar,_atomic_swap_8)
CRT_ALIAS(__sync_lock_test_and_set_1,_atomic_swap_8)
+CRT_ALIAS(__atomic_exchange_1,_atomic_swap_8)
STRONG_ALIAS(_atomic_swap_char,_atomic_swap_8)
STRONG_ALIAS(_atomic_swap_uchar,_atomic_swap_8)
Index: src/common/lib/libc/arch/arm/atomic/atomic_swap_64.S
diff -u src/common/lib/libc/arch/arm/atomic/atomic_swap_64.S:1.8 src/common/lib/libc/arch/arm/atomic/atomic_swap_64.S:1.8.2.1
--- src/common/lib/libc/arch/arm/atomic/atomic_swap_64.S:1.8 Tue Mar 4 16:15:28 2014
+++ src/common/lib/libc/arch/arm/atomic/atomic_swap_64.S Sun Aug 10 06:47:05 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_swap_64.S,v 1.8 2014/03/04 16:15:28 matt Exp $ */
+/* $NetBSD: atomic_swap_64.S,v 1.8.2.1 2014/08/10 06:47:05 tls Exp $ */
/*-
* Copyright (c) 2012 The NetBSD Foundation, Inc.
* All rights reserved.
@@ -51,6 +51,7 @@ ENTRY_NP(_atomic_swap_64)
END(_atomic_swap_64)
ATOMIC_OP_ALIAS(atomic_swap_64,_atomic_swap_64)
CRT_ALIAS(__sync_lock_test_and_set_8,_atomic_swap_64)
+CRT_ALIAS(__atomic_exchange_8,_atomic_swap_64)
#if (!defined(_KERNEL) || defined(_RUMPKERNEL)) && !defined(_STANDALONE)
ENTRY_NP(__sync_lock_release_8)
Index: src/common/lib/libc/arch/arm/quad/__aeabi_ldivmod.S
diff -u src/common/lib/libc/arch/arm/quad/__aeabi_ldivmod.S:1.12 src/common/lib/libc/arch/arm/quad/__aeabi_ldivmod.S:1.12.2.1
--- src/common/lib/libc/arch/arm/quad/__aeabi_ldivmod.S:1.12 Mon Aug 19 03:27:34 2013
+++ src/common/lib/libc/arch/arm/quad/__aeabi_ldivmod.S Sun Aug 10 06:47:05 2014
@@ -29,7 +29,7 @@
#include <machine/asm.h>
-RCSID("$NetBSD: __aeabi_ldivmod.S,v 1.12 2013/08/19 03:27:34 matt Exp $")
+RCSID("$NetBSD: __aeabi_ldivmod.S,v 1.12.2.1 2014/08/10 06:47:05 tls Exp $")
#ifdef __ARMEB__
#define ALO r1 /* incoming numerator, outgoing quotient */
@@ -45,7 +45,9 @@ RCSID("$NetBSD: __aeabi_ldivmod.S,v 1.12
ENTRY(__aeabi_ldivmod)
#ifdef __ARM_EABI__
+# if !defined(__ARM_DWARF_EH__)
.fnstart
+# endif
.cfi_startproc
#endif
#if !defined(_KERNEL) && !defined(_STANDALONE)
@@ -212,7 +214,9 @@ ENTRY(__aeabi_ldivmod)
.Ldivbyzero:
push {r0-r1,r4,lr}
#ifdef __ARM_EABI__
+# if !defined(__ARM_DWARF_EH__)
.save {r0-r1,r4,lr}
+# endif
.cfi_def_cfa_offset 16
.cfi_offset 14, -4
.cfi_offset 4, -8
@@ -244,6 +248,8 @@ ENTRY(__aeabi_ldivmod)
#endif /* !_KERNEL && !_STANDALONE */
#ifdef __ARM_EABI__
.cfi_endproc
+# if !defined(__ARM_DWARF_EH__)
.fnend
+# endif
#endif
END(__aeabi_ldivmod)
Index: src/common/lib/libc/arch/arm/quad/__aeabi_uldivmod.S
diff -u src/common/lib/libc/arch/arm/quad/__aeabi_uldivmod.S:1.8 src/common/lib/libc/arch/arm/quad/__aeabi_uldivmod.S:1.8.2.1
--- src/common/lib/libc/arch/arm/quad/__aeabi_uldivmod.S:1.8 Thu Dec 12 18:01:14 2013
+++ src/common/lib/libc/arch/arm/quad/__aeabi_uldivmod.S Sun Aug 10 06:47:05 2014
@@ -29,7 +29,7 @@
#include <machine/asm.h>
-RCSID("$NetBSD: __aeabi_uldivmod.S,v 1.8 2013/12/12 18:01:14 matt Exp $")
+RCSID("$NetBSD: __aeabi_uldivmod.S,v 1.8.2.1 2014/08/10 06:47:05 tls Exp $")
/*
* typedef struct { unsigned long long quo, rem } ulldiv_t;
@@ -39,7 +39,9 @@ RCSID("$NetBSD: __aeabi_uldivmod.S,v 1.8
ENTRY(__aeabi_uldivmod)
#ifdef __ARM_EABI__
+# if !defined(__ARM_DWARF_EH__)
.fnstart
+#endif
.cfi_startproc
#endif
#if !defined(_KERNEL) && !defined(_STANDALONE)
@@ -61,7 +63,9 @@ ENTRY(__aeabi_uldivmod)
push {r4,lr}
#ifdef __ARM_EABI__
+# if !defined(__ARM_DWARF_EH__)
.save {r4,lr}
+# endif
.cfi_def_cfa_offset 8
.cfi_offset 14, -4
.cfi_offset 4, -8
@@ -94,7 +98,9 @@ ENTRY(__aeabi_uldivmod)
.Ldivbyzero:
push {r0-r1,r4,lr}
#ifdef __ARM_EABI__
+# if !defined(__ARM_DWARF_EH__)
.save {r0-r1,r4,lr}
+# endif
.cfi_def_cfa_offset 16
.cfi_offset 14, -4
.cfi_offset 4, -8
@@ -111,6 +117,8 @@ ENTRY(__aeabi_uldivmod)
#endif
#ifdef __ARM_EABI__
.cfi_endproc
+# if !defined(__ARM_DWARF_EH__)
.fnend
+# endif
#endif
END(__aeabi_uldivmod)
Index: src/common/lib/libc/arch/arm/string/strcat_arm.S
diff -u src/common/lib/libc/arch/arm/string/strcat_arm.S:1.5 src/common/lib/libc/arch/arm/string/strcat_arm.S:1.5.2.1
--- src/common/lib/libc/arch/arm/string/strcat_arm.S:1.5 Thu Sep 5 05:15:47 2013
+++ src/common/lib/libc/arch/arm/string/strcat_arm.S Sun Aug 10 06:47:05 2014
@@ -34,12 +34,16 @@
*/
ENTRY(strcat)
#if defined(__ARM_EABI__) && defined(__UNWIND_TABLES__)
+# if !defined(__ARM_DWARF_EH__)
.fnstart
+# endif
.cfi_startproc
#endif
push {r3-r5, lr} /* save registers */
#if defined(__ARM_EABI__) && defined(__UNWIND_TABLES__)
+# if !defined(__ARM_DWARF_EH__)
.save {r3-r5, lr}
+# endif
.cfi_def_cfa_offset 16
.cfi_offset 14, -4
.cfi_offset 5, -8
@@ -60,6 +64,8 @@ ENTRY(strcat)
pop {r3-r5, pc} /* restore registers */
#if defined(__ARM_EABI__) && defined(__UNWIND_TABLES__)
.cfi_endproc
+# if !defined(__ARM_DWARF_EH__)
.fnend
+# endif
#endif
END(strcat)
Index: src/common/lib/libc/arch/arm/string/strlcat_arm.S
diff -u src/common/lib/libc/arch/arm/string/strlcat_arm.S:1.5 src/common/lib/libc/arch/arm/string/strlcat_arm.S:1.5.2.1
--- src/common/lib/libc/arch/arm/string/strlcat_arm.S:1.5 Thu Sep 5 05:15:47 2013
+++ src/common/lib/libc/arch/arm/string/strlcat_arm.S Sun Aug 10 06:47:05 2014
@@ -29,17 +29,21 @@
#include <machine/asm.h>
-RCSID("$NetBSD: strlcat_arm.S,v 1.5 2013/09/05 05:15:47 matt Exp $")
+RCSID("$NetBSD: strlcat_arm.S,v 1.5.2.1 2014/08/10 06:47:05 tls Exp $")
/* LINTSTUB: size_t strlcat(char *, const char *, size_t) */
ENTRY(strlcat)
#if defined(__ARM_EABI__) && defined(__UNWIND_TABLES__)
+# if !defined(__ARM_DWARF_EH__)
.fnstart
+# endif
.cfi_startproc
#endif
push {r4-r6, lr}
#if defined(__ARM_EABI__) && defined(__UNWIND_TABLES__)
+# if !defined(__ARM_DWARF_EH__)
.save {r4-r6, lr}
+# endif
.cfi_def_cfa_offset 16
.cfi_offset 14, -4
.cfi_offset 6, -8
@@ -62,6 +66,8 @@ ENTRY(strlcat)
pop {r4-r6, pc} /* restore registers and return */
#if defined(__ARM_EABI__) && defined(__UNWIND_TABLES__)
.cfi_endproc
+# if !defined(__ARM_DWARF_EH__)
.fnend
+# endif
#endif
END(strlcat)
Index: src/common/lib/libc/arch/arm/string/strlen_arm.S
diff -u src/common/lib/libc/arch/arm/string/strlen_arm.S:1.8 src/common/lib/libc/arch/arm/string/strlen_arm.S:1.8.2.1
--- src/common/lib/libc/arch/arm/string/strlen_arm.S:1.8 Thu Sep 5 05:15:47 2013
+++ src/common/lib/libc/arch/arm/string/strlen_arm.S Sun Aug 10 06:47:05 2014
@@ -29,7 +29,7 @@
#include <machine/asm.h>
-RCSID("$NetBSD: strlen_arm.S,v 1.8 2013/09/05 05:15:47 matt Exp $")
+RCSID("$NetBSD: strlen_arm.S,v 1.8.2.1 2014/08/10 06:47:05 tls Exp $")
#if defined(__thumb__) && !defined(_ARM_ARCH_T2)
#error Only Thumb2 or ARM supported
@@ -56,13 +56,17 @@ RCSID("$NetBSD: strlen_arm.S,v 1.8 2013/
.text
ENTRY(FUNCNAME)
#if defined(__ARM_EABI__) && defined(__UNWIND_TABLES__)
+# if !defined(__ARM_DWARF_EH__)
.fnstart
+# endif
.cfi_startproc
#endif
#ifdef STRNLEN
push {r4,r5} /* save some registers */
#if defined(__ARM_EABI__) && defined(__UNWIND_TABLES__)
+# if !defined(__ARM_DWARF_EH__)
.save {r4,r5}
+# endif
.cfi_def_cfa_offset 8
.cfi_offset 5, -4
.cfi_offset 4, -8
@@ -175,6 +179,8 @@ ENTRY(FUNCNAME)
#endif
#if defined(__ARM_EABI__) && defined(__UNWIND_TABLES__)
.cfi_endproc
+# if !defined(__ARM_DWARF_EH__)
.fnend
+# endif
#endif
END(FUNCNAME)
Index: src/common/lib/libc/arch/i386/atomic/atomic.S
diff -u src/common/lib/libc/arch/i386/atomic/atomic.S:1.20 src/common/lib/libc/arch/i386/atomic/atomic.S:1.20.2.1
--- src/common/lib/libc/arch/i386/atomic/atomic.S:1.20 Tue Feb 18 10:16:55 2014
+++ src/common/lib/libc/arch/i386/atomic/atomic.S Sun Aug 10 06:47:05 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic.S,v 1.20 2014/02/18 10:16:55 martin Exp $ */
+/* $NetBSD: atomic.S,v 1.20.2.1 2014/08/10 06:47:05 tls Exp $ */
/*-
* Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -31,7 +31,11 @@
#include <sys/param.h>
#include <machine/asm.h>
-
+/*
+ * __HAVE_ constants should not be in <machine/types.h>
+ * because we can't use them from assembly. OTOH we
+ * only need __HAVE_ATOMIC64_OPS here, and we don't.
+ */
#ifdef _KERNEL
#define ALIAS(f, t) STRONG_ALIAS(f,t)
#else
@@ -54,6 +58,7 @@ ENTRY(_atomic_add_32)
LOCK(1)
addl %eax, (%edx)
ret
+END(_atomic_add_32)
ENTRY(_atomic_add_32_nv)
movl 4(%esp), %edx
@@ -63,6 +68,7 @@ ENTRY(_atomic_add_32_nv)
xaddl %eax, (%edx)
addl %ecx, %eax
ret
+END(_atomic_add_32_nv)
ENTRY(_atomic_and_32)
movl 4(%esp), %edx
@@ -70,6 +76,7 @@ ENTRY(_atomic_and_32)
LOCK(3)
andl %eax, (%edx)
ret
+END(_atomic_and_32)
ENTRY(_atomic_and_32_nv)
movl 4(%esp), %edx
@@ -84,12 +91,14 @@ ENTRY(_atomic_and_32_nv)
ret
1:
jmp 0b
+END(_atomic_and_32_nv)
ENTRY(_atomic_dec_32)
movl 4(%esp), %edx
LOCK(5)
decl (%edx)
ret
+END(_atomic_dec_32)
ENTRY(_atomic_dec_32_nv)
movl 4(%esp), %edx
@@ -98,12 +107,14 @@ ENTRY(_atomic_dec_32_nv)
xaddl %eax, (%edx)
decl %eax
ret
+END(_atomic_dec_32_nv)
ENTRY(_atomic_inc_32)
movl 4(%esp), %edx
LOCK(7)
incl (%edx)
ret
+END(_atomic_inc_32)
ENTRY(_atomic_inc_32_nv)
movl 4(%esp), %edx
@@ -112,6 +123,7 @@ ENTRY(_atomic_inc_32_nv)
xaddl %eax, (%edx)
incl %eax
ret
+END(_atomic_inc_32_nv)
ENTRY(_atomic_or_32)
movl 4(%esp), %edx
@@ -119,6 +131,7 @@ ENTRY(_atomic_or_32)
LOCK(9)
orl %eax, (%edx)
ret
+END(_atomic_or_32)
ENTRY(_atomic_or_32_nv)
movl 4(%esp), %edx
@@ -133,12 +146,14 @@ ENTRY(_atomic_or_32_nv)
ret
1:
jmp 0b
+END(_atomic_or_32_nv)
ENTRY(_atomic_swap_32)
movl 4(%esp), %edx
movl 8(%esp), %eax
xchgl %eax, (%edx)
ret
+END(_atomic_swap_32)
ENTRY(_atomic_cas_32)
movl 4(%esp), %edx
@@ -148,6 +163,7 @@ ENTRY(_atomic_cas_32)
cmpxchgl %ecx, (%edx)
/* %eax now contains the old value */
ret
+END(_atomic_cas_32)
ENTRY(_atomic_cas_32_ni)
movl 4(%esp), %edx
@@ -156,29 +172,35 @@ ENTRY(_atomic_cas_32_ni)
cmpxchgl %ecx, (%edx)
/* %eax now contains the old value */
ret
+END(_atomic_cas_32_ni)
ENTRY(_membar_consumer)
LOCK(13)
addl $0, -4(%esp)
ret
+END(_membar_consumer)
ENDLABEL(membar_consumer_end)
ENTRY(_membar_producer)
/* A store is enough */
movl $0, -4(%esp)
ret
+END(_membar_producer)
ENDLABEL(membar_producer_end)
ENTRY(_membar_sync)
LOCK(14)
addl $0, -4(%esp)
ret
+END(_membar_sync)
ENDLABEL(membar_sync_end)
-#ifdef _HARDKERNEL
+#if defined(__HAVE_ATOMIC64_OPS) || defined(_KERNEL)
ENTRY(_atomic_cas_64)
+#ifdef _HARDKERNEL
pushf
cli
+#endif /* _HARDKERNEL */
pushl %edi
pushl %ebx
movl 12(%esp), %edi
@@ -195,12 +217,15 @@ ENTRY(_atomic_cas_64)
1:
popl %ebx
popl %edi
+#ifdef _HARDKERNEL
popf
+#endif /* _HARDKERNEL */
ret
2:
movl 0(%edi), %eax
movl 4(%edi), %edx
jmp 1b
+END(_atomic_cas_64)
ENDLABEL(_atomic_cas_64_end)
ENTRY(_atomic_cas_cx8)
@@ -216,21 +241,28 @@ ENTRY(_atomic_cas_cx8)
popl %ebx
popl %edi
ret
+#ifdef _HARDKERNEL
#ifdef GPROF
.space 16, 0x90
#else
.space 32, 0x90
#endif
+#endif /* _HARDKERNEL */
+END(_atomic_cas_cx8)
ENDLABEL(_atomic_cas_cx8_end)
+#endif /* __HAVE_ATOMIC64_OPS || _KERNEL */
+#ifdef _HARDKERNEL
ENTRY(sse2_lfence)
lfence
ret
+END(sse2_lfence)
ENDLABEL(sse2_lfence_end)
ENTRY(sse2_mfence)
mfence
ret
+END(sse2_mfence)
ENDLABEL(sse2_mfence_end)
atomic_lockpatch:
@@ -238,20 +270,6 @@ atomic_lockpatch:
.long .Lpatch1, .Lpatch2, .Lpatch3, .Lpatch4, .Lpatch5
.long .Lpatch6, .Lpatch7, .Lpatch8, .Lpatch9, .Lpatch10
.long .Lpatch12, .Lpatch13, .Lpatch14, .Lpatch15, 0
-#else
-ENTRY(_atomic_cas_64)
- pushl %edi
- pushl %ebx
- movl 12(%esp), %edi
- movl 16(%esp), %eax
- movl 20(%esp), %edx
- movl 24(%esp), %ebx
- movl 28(%esp), %ecx
- lock
- cmpxchg8b (%edi)
- popl %ebx
- popl %edi
- ret
#endif /* _HARDKERNEL */
ALIAS(atomic_add_32,_atomic_add_32)
@@ -319,9 +337,11 @@ ALIAS(atomic_cas_uint_ni,_atomic_cas_32_
ALIAS(atomic_cas_ulong_ni,_atomic_cas_32_ni)
ALIAS(atomic_cas_ptr_ni,_atomic_cas_32_ni)
+#if defined(__HAVE_ATOMIC64_OPS) || defined(_KERNEL)
ALIAS(atomic_cas_64,_atomic_cas_64)
ALIAS(atomic_cas_64_ni,_atomic_cas_64)
ALIAS(__sync_val_compare_and_swap_8,_atomic_cas_64)
+#endif /* __HAVE_ATOMIC64_OPS || _KERNEL */
ALIAS(membar_consumer,_membar_consumer)
ALIAS(membar_producer,_membar_producer)
Index: src/common/lib/libc/arch/i386/gen/byte_swap_2.S
diff -u src/common/lib/libc/arch/i386/gen/byte_swap_2.S:1.3 src/common/lib/libc/arch/i386/gen/byte_swap_2.S:1.3.48.1
--- src/common/lib/libc/arch/i386/gen/byte_swap_2.S:1.3 Wed Nov 28 17:03:35 2007
+++ src/common/lib/libc/arch/i386/gen/byte_swap_2.S Sun Aug 10 06:47:05 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: byte_swap_2.S,v 1.3 2007/11/28 17:03:35 ad Exp $ */
+/* $NetBSD: byte_swap_2.S,v 1.3.48.1 2014/08/10 06:47:05 tls Exp $ */
/*-
* Copyright (c) 1990 The Regents of the University of California.
@@ -36,7 +36,7 @@
#include <machine/asm.h>
#if defined(LIBC_SCCS)
- RCSID("$NetBSD: byte_swap_2.S,v 1.3 2007/11/28 17:03:35 ad Exp $")
+ RCSID("$NetBSD: byte_swap_2.S,v 1.3.48.1 2014/08/10 06:47:05 tls Exp $")
#endif
#if defined(_KERNEL) || defined(_STANDALONE)
@@ -50,3 +50,10 @@ _PROF_PROLOGUE
movzwl 4(%esp),%eax
xchgb %al, %ah
ret
+#if defined(_KERNEL) || defined(_STANDALONE)
+END(_C_LABEL(bswap16))
+#else /* defined(_KERNEL) || defined(_STANDALONE) */
+END(_C_LABEL(__bswap16))
+#endif /* defined(_KERNEL) || defined(_STANDALONE) */
+END(_C_LABEL(ntohs))
+END(_C_LABEL(htons))
Index: src/common/lib/libc/arch/i386/gen/byte_swap_4.S
diff -u src/common/lib/libc/arch/i386/gen/byte_swap_4.S:1.3 src/common/lib/libc/arch/i386/gen/byte_swap_4.S:1.3.48.1
--- src/common/lib/libc/arch/i386/gen/byte_swap_4.S:1.3 Wed Nov 28 17:03:35 2007
+++ src/common/lib/libc/arch/i386/gen/byte_swap_4.S Sun Aug 10 06:47:05 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: byte_swap_4.S,v 1.3 2007/11/28 17:03:35 ad Exp $ */
+/* $NetBSD: byte_swap_4.S,v 1.3.48.1 2014/08/10 06:47:05 tls Exp $ */
/*-
* Copyright (c) 1990 The Regents of the University of California.
@@ -36,7 +36,7 @@
#include <machine/asm.h>
#if defined(LIBC_SCCS)
- RCSID("$NetBSD: byte_swap_4.S,v 1.3 2007/11/28 17:03:35 ad Exp $")
+ RCSID("$NetBSD: byte_swap_4.S,v 1.3.48.1 2014/08/10 06:47:05 tls Exp $")
#endif
#if defined(_KERNEL) || defined(_STANDALONE)
@@ -50,3 +50,10 @@ _PROF_PROLOGUE
movl 4(%esp),%eax
bswap %eax
ret
+#if defined(_KERNEL) || defined(_STANDALONE)
+END(_C_LABEL(bswap32))
+#else /* defined(_KERNEL) || defined(_STANDALONE) */
+END(_C_LABEL(__bswap32))
+#endif /* defined(_KERNEL) || defined(_STANDALONE) */
+END(_C_LABEL(ntohl))
+END(_C_LABEL(htonl))
Index: src/common/lib/libc/arch/i386/string/memset.S
diff -u src/common/lib/libc/arch/i386/string/memset.S:1.4 src/common/lib/libc/arch/i386/string/memset.S:1.4.40.1
--- src/common/lib/libc/arch/i386/string/memset.S:1.4 Tue Apr 29 06:53:01 2008
+++ src/common/lib/libc/arch/i386/string/memset.S Sun Aug 10 06:47:05 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: memset.S,v 1.4 2008/04/29 06:53:01 martin Exp $ */
+/* $NetBSD: memset.S,v 1.4.40.1 2014/08/10 06:47:05 tls Exp $ */
/*-
* Copyright (c) 2003 The NetBSD Foundation, Inc.
@@ -32,7 +32,7 @@
#include <machine/asm.h>
#if defined(LIBC_SCCS)
- RCSID("$NetBSD: memset.S,v 1.4 2008/04/29 06:53:01 martin Exp $")
+ RCSID("$NetBSD: memset.S,v 1.4.40.1 2014/08/10 06:47:05 tls Exp $")
#endif
#ifdef BZERO
@@ -104,3 +104,8 @@ ENTRY(memset)
#endif
popl %edi
ret
+#ifdef BZERO
+END(bzero)
+#else
+END(memset)
+#endif
Index: src/common/lib/libc/arch/i386/string/small/memcpy.S
diff -u src/common/lib/libc/arch/i386/string/small/memcpy.S:1.1 src/common/lib/libc/arch/i386/string/small/memcpy.S:1.1.20.1
--- src/common/lib/libc/arch/i386/string/small/memcpy.S:1.1 Thu Jun 16 16:39:14 2011
+++ src/common/lib/libc/arch/i386/string/small/memcpy.S Sun Aug 10 06:47:05 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: memcpy.S,v 1.1 2011/06/16 16:39:14 joerg Exp $ */
+/* $NetBSD: memcpy.S,v 1.1.20.1 2014/08/10 06:47:05 tls Exp $ */
/*-
* Copyright (c) 2011 The NetBSD Foundation, Inc.
* All rights reserved.
@@ -29,7 +29,7 @@
*/
#include <machine/asm.h>
- RCSID("$NetBSD: memcpy.S,v 1.1 2011/06/16 16:39:14 joerg Exp $")
+ RCSID("$NetBSD: memcpy.S,v 1.1.20.1 2014/08/10 06:47:05 tls Exp $")
# ifdef BCOPY
ENTRY(bcopy)
@@ -68,4 +68,9 @@ __memmove_start:
popl %edi
popl %esi
ret
+END(memcpy)
+END(memmove)
# endif /* MEMMOVE */
+# ifdef BCOPY
+END(bcopy)
+# endif
Index: src/common/lib/libc/arch/m68k/atomic/atomic_add.S
diff -u src/common/lib/libc/arch/m68k/atomic/atomic_add.S:1.9 src/common/lib/libc/arch/m68k/atomic/atomic_add.S:1.9.2.1
--- src/common/lib/libc/arch/m68k/atomic/atomic_add.S:1.9 Sat Feb 22 17:08:30 2014
+++ src/common/lib/libc/arch/m68k/atomic/atomic_add.S Sun Aug 10 06:47:05 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_add.S,v 1.9 2014/02/22 17:08:30 martin Exp $ */
+/* $NetBSD: atomic_add.S,v 1.9.2.1 2014/08/10 06:47:05 tls Exp $ */
/*-
* Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -122,3 +122,7 @@ ENTRY(__sync_fetch_and_add_1)
bne 1b
rts
END(__sync_fetch_and_add_1)
+
+CRT_ALIAS(__atomic_fetch_add_1,__sync_fetch_and_add_1)
+CRT_ALIAS(__atomic_fetch_add_2,__sync_fetch_and_add_2)
+CRT_ALIAS(__atomic_fetch_add_4,__sync_fetch_and_add_4)
Index: src/common/lib/libc/arch/m68k/atomic/atomic_and.S
diff -u src/common/lib/libc/arch/m68k/atomic/atomic_and.S:1.10 src/common/lib/libc/arch/m68k/atomic/atomic_and.S:1.10.2.1
--- src/common/lib/libc/arch/m68k/atomic/atomic_and.S:1.10 Sat Feb 22 17:08:30 2014
+++ src/common/lib/libc/arch/m68k/atomic/atomic_and.S Sun Aug 10 06:47:05 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_and.S,v 1.10 2014/02/22 17:08:30 martin Exp $ */
+/* $NetBSD: atomic_and.S,v 1.10.2.1 2014/08/10 06:47:05 tls Exp $ */
/*-
* Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -123,4 +123,6 @@ ENTRY(__sync_fetch_and_and_1)
rts
END(__sync_fetch_and_and_1)
-
+CRT_ALIAS(__atomic_fetch_and_1,__sync_fetch_and_and_1)
+CRT_ALIAS(__atomic_fetch_and_2,__sync_fetch_and_and_2)
+CRT_ALIAS(__atomic_fetch_and_4,__sync_fetch_and_and_4)
Index: src/common/lib/libc/arch/m68k/atomic/atomic_or.S
diff -u src/common/lib/libc/arch/m68k/atomic/atomic_or.S:1.10 src/common/lib/libc/arch/m68k/atomic/atomic_or.S:1.10.2.1
--- src/common/lib/libc/arch/m68k/atomic/atomic_or.S:1.10 Sat Feb 22 17:08:30 2014
+++ src/common/lib/libc/arch/m68k/atomic/atomic_or.S Sun Aug 10 06:47:05 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_or.S,v 1.10 2014/02/22 17:08:30 martin Exp $ */
+/* $NetBSD: atomic_or.S,v 1.10.2.1 2014/08/10 06:47:05 tls Exp $ */
/*-
* Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -123,3 +123,7 @@ ENTRY(__sync_fetch_and_or_1)
bne 1b
rts
END(__sync_fetch_and_or_1)
+
+CRT_ALIAS(__atomic_fetch_or_1,__sync_fetch_and_or_1)
+CRT_ALIAS(__atomic_fetch_or_2,__sync_fetch_and_or_2)
+CRT_ALIAS(__atomic_fetch_or_4,__sync_fetch_and_or_4)
Index: src/common/lib/libc/arch/m68k/atomic/atomic_sub.S
diff -u src/common/lib/libc/arch/m68k/atomic/atomic_sub.S:1.2 src/common/lib/libc/arch/m68k/atomic/atomic_sub.S:1.2.2.1
--- src/common/lib/libc/arch/m68k/atomic/atomic_sub.S:1.2 Sat Feb 22 17:08:30 2014
+++ src/common/lib/libc/arch/m68k/atomic/atomic_sub.S Sun Aug 10 06:47:05 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_sub.S,v 1.2 2014/02/22 17:08:30 martin Exp $ */
+/* $NetBSD: atomic_sub.S,v 1.2.2.1 2014/08/10 06:47:05 tls Exp $ */
/*-
* Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -122,3 +122,7 @@ ENTRY(__sync_fetch_and_sub_1)
bne 1b
rts
END(__sync_fetch_and_sub_1)
+
+CRT_ALIAS(__atomic_fetch_sub_1,__sync_fetch_and_sub_1)
+CRT_ALIAS(__atomic_fetch_sub_2,__sync_fetch_and_sub_2)
+CRT_ALIAS(__atomic_fetch_sub_4,__sync_fetch_and_sub_4)
Index: src/common/lib/libc/arch/m68k/atomic/atomic_xor.S
diff -u src/common/lib/libc/arch/m68k/atomic/atomic_xor.S:1.2 src/common/lib/libc/arch/m68k/atomic/atomic_xor.S:1.2.2.1
--- src/common/lib/libc/arch/m68k/atomic/atomic_xor.S:1.2 Sat Feb 22 17:08:30 2014
+++ src/common/lib/libc/arch/m68k/atomic/atomic_xor.S Sun Aug 10 06:47:05 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_xor.S,v 1.2 2014/02/22 17:08:30 martin Exp $ */
+/* $NetBSD: atomic_xor.S,v 1.2.2.1 2014/08/10 06:47:05 tls Exp $ */
/*-
* Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -129,3 +129,7 @@ ENTRY(__sync_fetch_and_xor_1)
bne 1b
rts
END(__sync_fetch_and_xor_1)
+
+CRT_ALIAS(__atomic_fetch_xor_1,__sync_fetch_and_xor_1)
+CRT_ALIAS(__atomic_fetch_xor_2,__sync_fetch_and_xor_2)
+CRT_ALIAS(__atomic_fetch_xor_4,__sync_fetch_and_xor_4)
Index: src/common/lib/libc/arch/m68k/atomic/atomic_swap.S
diff -u src/common/lib/libc/arch/m68k/atomic/atomic_swap.S:1.8 src/common/lib/libc/arch/m68k/atomic/atomic_swap.S:1.8.2.1
--- src/common/lib/libc/arch/m68k/atomic/atomic_swap.S:1.8 Sat Feb 22 17:08:30 2014
+++ src/common/lib/libc/arch/m68k/atomic/atomic_swap.S Sun Aug 10 06:47:05 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_swap.S,v 1.8 2014/02/22 17:08:30 martin Exp $ */
+/* $NetBSD: atomic_swap.S,v 1.8.2.1 2014/08/10 06:47:05 tls Exp $ */
/*-
* Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -51,6 +51,7 @@ STRONG_ALIAS(_atomic_swap_ulong,_atomic_
ATOMIC_OP_ALIAS(atomic_swap_ptr,_atomic_swap_32)
STRONG_ALIAS(_atomic_swap_ptr,_atomic_swap_32)
CRT_ALIAS(__sync_lock_test_and_set_4,_atomic_swap_32)
+CRT_ALIAS(__atomic_exchange_4,_atomic_swap_32)
ENTRY(_atomic_swap_16)
@@ -64,6 +65,7 @@ ENTRY(_atomic_swap_16)
END(_atomic_swap_16)
ATOMIC_OP_ALIAS(atomic_swap_16,_atomic_swap_16)
CRT_ALIAS(__sync_lock_test_and_set_2,_atomic_swap_16)
+CRT_ALIAS(__atomic_exchange_2,_atomic_swap_16)
ENTRY(_atomic_swap_8)
movl 4(%sp), %a0
@@ -76,3 +78,4 @@ ENTRY(_atomic_swap_8)
END(_atomic_swap_8)
ATOMIC_OP_ALIAS(atomic_swap_8,_atomic_swap_8)
CRT_ALIAS(__sync_lock_test_and_set_1,_atomic_swap_8)
+CRT_ALIAS(__atomic_exchange_1,_atomic_swap_8)
Index: src/common/lib/libc/arch/x86_64/atomic/atomic.S
diff -u src/common/lib/libc/arch/x86_64/atomic/atomic.S:1.16 src/common/lib/libc/arch/x86_64/atomic/atomic.S:1.16.24.1
--- src/common/lib/libc/arch/x86_64/atomic/atomic.S:1.16 Wed Jan 12 23:12:10 2011
+++ src/common/lib/libc/arch/x86_64/atomic/atomic.S Sun Aug 10 06:47:06 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic.S,v 1.16 2011/01/12 23:12:10 joerg Exp $ */
+/* $NetBSD: atomic.S,v 1.16.24.1 2014/08/10 06:47:06 tls Exp $ */
/*-
* Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -54,6 +54,7 @@ ENTRY(_atomic_add_32)
LOCK(1)
addl %esi, (%rdi)
ret
+END(_atomic_add_32)
ENTRY(_atomic_add_32_nv)
movl %esi, %eax
@@ -61,11 +62,13 @@ ENTRY(_atomic_add_32_nv)
xaddl %eax, (%rdi)
addl %esi, %eax
ret
+END(_atomic_add_32_nv)
ENTRY(_atomic_and_32)
LOCK(3)
andl %esi, (%rdi)
ret
+END(_atomic_and_32)
ENTRY(_atomic_and_32_nv)
movl (%rdi), %eax
@@ -77,11 +80,13 @@ ENTRY(_atomic_and_32_nv)
jnz 1b
movl %ecx, %eax
ret
+END(_atomic_and_32_nv)
ENTRY(_atomic_dec_32)
LOCK(5)
decl (%rdi)
ret
+END(_atomic_dec_32)
ENTRY(_atomic_dec_32_nv)
movl $-1, %eax
@@ -89,11 +94,13 @@ ENTRY(_atomic_dec_32_nv)
xaddl %eax, (%rdi)
decl %eax
ret
+END(_atomic_dec_32_nv)
ENTRY(_atomic_inc_32)
LOCK(7)
incl (%rdi)
ret
+END(_atomic_inc_32)
ENTRY(_atomic_inc_32_nv)
movl $1, %eax
@@ -101,11 +108,13 @@ ENTRY(_atomic_inc_32_nv)
xaddl %eax, (%rdi)
incl %eax
ret
+END(_atomic_inc_32_nv)
ENTRY(_atomic_or_32)
LOCK(9)
orl %esi, (%rdi)
ret
+END(_atomic_or_32)
ENTRY(_atomic_or_32_nv)
movl (%rdi), %eax
@@ -117,11 +126,13 @@ ENTRY(_atomic_or_32_nv)
jnz 1b
movl %ecx, %eax
ret
+END(_atomic_or_32_nv)
ENTRY(_atomic_swap_32)
movl %esi, %eax
xchgl %eax, (%rdi)
ret
+END(_atomic_swap_32)
ENTRY(_atomic_cas_32)
movl %esi, %eax
@@ -129,12 +140,14 @@ ENTRY(_atomic_cas_32)
cmpxchgl %edx, (%rdi)
/* %eax now contains the old value */
ret
+END(_atomic_cas_32)
ENTRY(_atomic_cas_32_ni)
movl %esi, %eax
cmpxchgl %edx, (%rdi)
/* %eax now contains the old value */
ret
+END(_atomic_cas_32_ni)
/* 64-bit */
@@ -142,6 +155,7 @@ ENTRY(_atomic_add_64)
LOCK(13)
addq %rsi, (%rdi)
ret
+END(_atomic_add_64)
ENTRY(_atomic_add_64_nv)
movq %rsi, %rax
@@ -149,11 +163,13 @@ ENTRY(_atomic_add_64_nv)
xaddq %rax, (%rdi)
addq %rsi, %rax
ret
+END(_atomic_add_64_nv)
ENTRY(_atomic_and_64)
LOCK(15)
andq %rsi, (%rdi)
ret
+END(_atomic_and_64)
ENTRY(_atomic_and_64_nv)
movq (%rdi), %rax
@@ -165,11 +181,13 @@ ENTRY(_atomic_and_64_nv)
jnz 1b
movq %rcx, %rax
ret
+END(_atomic_and_64_nv)
ENTRY(_atomic_dec_64)
LOCK(17)
decq (%rdi)
ret
+END(_atomic_dec_64)
ENTRY(_atomic_dec_64_nv)
movq $-1, %rax
@@ -177,11 +195,13 @@ ENTRY(_atomic_dec_64_nv)
xaddq %rax, (%rdi)
decq %rax
ret
+END(_atomic_dec_64_nv)
ENTRY(_atomic_inc_64)
LOCK(19)
incq (%rdi)
ret
+END(_atomic_inc_64)
ENTRY(_atomic_inc_64_nv)
movq $1, %rax
@@ -189,11 +209,13 @@ ENTRY(_atomic_inc_64_nv)
xaddq %rax, (%rdi)
incq %rax
ret
+END(_atomic_inc_64_nv)
ENTRY(_atomic_or_64)
LOCK(21)
orq %rsi, (%rdi)
ret
+END(_atomic_or_64)
ENTRY(_atomic_or_64_nv)
movq (%rdi), %rax
@@ -205,11 +227,13 @@ ENTRY(_atomic_or_64_nv)
jnz 1b
movq %rcx, %rax
ret
+END(_atomic_or_64_nv)
ENTRY(_atomic_swap_64)
movq %rsi, %rax
xchgq %rax, (%rdi)
ret
+END(_atomic_swap_64)
ENTRY(_atomic_cas_64)
movq %rsi, %rax
@@ -217,12 +241,14 @@ ENTRY(_atomic_cas_64)
cmpxchgq %rdx, (%rdi)
/* %eax now contains the old value */
ret
+END(_atomic_cas_64)
ENTRY(_atomic_cas_64_ni)
movq %rsi, %rax
cmpxchgq %rdx, (%rdi)
/* %eax now contains the old value */
ret
+END(_atomic_cas_64_ni)
/* memory barriers */
@@ -230,29 +256,34 @@ ENTRY(_membar_consumer)
LOCK(25)
addq $0, -8(%rsp)
ret
+END(_membar_consumer)
ENDLABEL(membar_consumer_end)
ENTRY(_membar_producer)
/* A store is enough */
movq $0, -8(%rsp)
ret
+END(_membar_producer)
ENDLABEL(membar_producer_end)
ENTRY(_membar_sync)
LOCK(26)
addq $0, -8(%rsp)
ret
+END(_membar_sync)
ENDLABEL(membar_sync_end)
#ifdef _HARDKERNEL
ENTRY(sse2_lfence)
lfence
ret
+END(sse2_lfence)
ENDLABEL(sse2_lfence_end)
ENTRY(sse2_mfence)
mfence
ret
+END(sse2_mfence)
ENDLABEL(sse2_mfence_end)
atomic_lockpatch:
Index: src/common/lib/libc/arch/x86_64/gen/byte_swap_2.S
diff -u src/common/lib/libc/arch/x86_64/gen/byte_swap_2.S:1.2 src/common/lib/libc/arch/x86_64/gen/byte_swap_2.S:1.2.70.1
--- src/common/lib/libc/arch/x86_64/gen/byte_swap_2.S:1.2 Sat Feb 4 21:53:31 2006
+++ src/common/lib/libc/arch/x86_64/gen/byte_swap_2.S Sun Aug 10 06:47:06 2014
@@ -1,9 +1,9 @@
-/* $NetBSD: byte_swap_2.S,v 1.2 2006/02/04 21:53:31 uwe Exp $ */
+/* $NetBSD: byte_swap_2.S,v 1.2.70.1 2014/08/10 06:47:06 tls Exp $ */
#include <machine/asm.h>
#if defined(LIBC_SCCS)
- RCSID("$NetBSD: byte_swap_2.S,v 1.2 2006/02/04 21:53:31 uwe Exp $")
+ RCSID("$NetBSD: byte_swap_2.S,v 1.2.70.1 2014/08/10 06:47:06 tls Exp $")
#endif
#if defined(_KERNEL) || defined(_STANDALONE)
@@ -17,3 +17,10 @@ _PROF_PROLOGUE
movl %edi,%eax
xchgb %ah,%al
ret
+#if defined(_KERNEL) || defined(_STANDALONE)
+END(_C_LABEL(bswap16))
+#else
+END(_C_LABEL(__bswap16))
+#endif
+END(_C_LABEL(ntohs))
+END(_C_LABEL(htons))
Index: src/common/lib/libc/arch/x86_64/gen/byte_swap_4.S
diff -u src/common/lib/libc/arch/x86_64/gen/byte_swap_4.S:1.2 src/common/lib/libc/arch/x86_64/gen/byte_swap_4.S:1.2.70.1
--- src/common/lib/libc/arch/x86_64/gen/byte_swap_4.S:1.2 Sat Feb 4 21:53:31 2006
+++ src/common/lib/libc/arch/x86_64/gen/byte_swap_4.S Sun Aug 10 06:47:06 2014
@@ -1,8 +1,8 @@
-/* $NetBSD: byte_swap_4.S,v 1.2 2006/02/04 21:53:31 uwe Exp $ */
+/* $NetBSD: byte_swap_4.S,v 1.2.70.1 2014/08/10 06:47:06 tls Exp $ */
#include <machine/asm.h>
#if defined(LIBC_SCCS)
- RCSID("$NetBSD: byte_swap_4.S,v 1.2 2006/02/04 21:53:31 uwe Exp $")
+ RCSID("$NetBSD: byte_swap_4.S,v 1.2.70.1 2014/08/10 06:47:06 tls Exp $")
#endif
#if defined(_KERNEL) || defined(_STANDALONE)
@@ -16,3 +16,10 @@ _PROF_PROLOGUE
movl %edi,%eax
bswapl %eax
ret
+#if defined(_KERNEL) || defined(_STANDALONE)
+END(_C_LABEL(bswap32))
+#else
+END(_C_LABEL(__bswap32))
+#endif
+END(_C_LABEL(ntohl))
+END(_C_LABEL(htonl))
Index: src/common/lib/libc/arch/x86_64/gen/byte_swap_8.S
diff -u src/common/lib/libc/arch/x86_64/gen/byte_swap_8.S:1.1 src/common/lib/libc/arch/x86_64/gen/byte_swap_8.S:1.1.24.1
--- src/common/lib/libc/arch/x86_64/gen/byte_swap_8.S:1.1 Thu Jan 14 02:09:46 2010
+++ src/common/lib/libc/arch/x86_64/gen/byte_swap_8.S Sun Aug 10 06:47:06 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: byte_swap_8.S,v 1.1 2010/01/14 02:09:46 joerg Exp $ */
+/* $NetBSD: byte_swap_8.S,v 1.1.24.1 2014/08/10 06:47:06 tls Exp $ */
/*
* Written by Frank van der Linden ([email protected])
@@ -8,10 +8,11 @@
#include <machine/asm.h>
#if defined(LIBC_SCCS)
- RCSID("$NetBSD: byte_swap_8.S,v 1.1 2010/01/14 02:09:46 joerg Exp $")
+ RCSID("$NetBSD: byte_swap_8.S,v 1.1.24.1 2014/08/10 06:47:06 tls Exp $")
#endif
ENTRY(bswap64)
bswapq %rdi
movq %rdi,%rax
ret
+END(bswap64)
Index: src/common/lib/libc/arch/x86_64/string/memset.S
diff -u src/common/lib/libc/arch/x86_64/string/memset.S:1.3 src/common/lib/libc/arch/x86_64/string/memset.S:1.3.24.1
--- src/common/lib/libc/arch/x86_64/string/memset.S:1.3 Sat Aug 1 20:35:45 2009
+++ src/common/lib/libc/arch/x86_64/string/memset.S Sun Aug 10 06:47:06 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: memset.S,v 1.3 2009/08/01 20:35:45 dsl Exp $ */
+/* $NetBSD: memset.S,v 1.3.24.1 2014/08/10 06:47:06 tls Exp $ */
/*-
* Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -32,7 +32,7 @@
#include <machine/asm.h>
#if defined(LIBC_SCCS)
- RCSID("$NetBSD: memset.S,v 1.3 2009/08/01 20:35:45 dsl Exp $")
+ RCSID("$NetBSD: memset.S,v 1.3.24.1 2014/08/10 06:47:06 tls Exp $")
#endif
#ifndef _KERNEL
@@ -89,3 +89,8 @@ ENTRY(memset)
sub %rdx,%rcx /* adjust length ... */
add %rdx,%rdi /* ... and target */
jmp 2b
+END(memset)
+
+#ifndef _KERNEL
+END(bzero)
+#endif
Index: src/common/lib/libc/atomic/atomic_add_16_cas.c
diff -u src/common/lib/libc/atomic/atomic_add_16_cas.c:1.2 src/common/lib/libc/atomic/atomic_add_16_cas.c:1.2.2.1
--- src/common/lib/libc/atomic/atomic_add_16_cas.c:1.2 Fri Feb 21 15:51:07 2014
+++ src/common/lib/libc/atomic/atomic_add_16_cas.c Sun Aug 10 06:47:06 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_add_16_cas.c,v 1.2 2014/02/21 15:51:07 martin Exp $ */
+/* $NetBSD: atomic_add_16_cas.c,v 1.2.2.1 2014/08/10 06:47:06 tls Exp $ */
/*-
* Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -61,3 +61,5 @@ add_and_fetch_2(volatile uint16_t *addr,
} while (atomic_cas_16(addr, old, new) != old);
return new;
}
+
+__strong_alias(__atomic_fetch_add_2,__sync_fetch_and_add_2)
Index: src/common/lib/libc/atomic/atomic_add_8_cas.c
diff -u src/common/lib/libc/atomic/atomic_add_8_cas.c:1.2 src/common/lib/libc/atomic/atomic_add_8_cas.c:1.2.2.1
--- src/common/lib/libc/atomic/atomic_add_8_cas.c:1.2 Fri Feb 21 15:51:07 2014
+++ src/common/lib/libc/atomic/atomic_add_8_cas.c Sun Aug 10 06:47:06 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_add_8_cas.c,v 1.2 2014/02/21 15:51:07 martin Exp $ */
+/* $NetBSD: atomic_add_8_cas.c,v 1.2.2.1 2014/08/10 06:47:06 tls Exp $ */
/*-
* Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -61,3 +61,5 @@ add_and_fetch_1(volatile uint8_t *addr,
} while (atomic_cas_8(addr, old, new) != old);
return new;
}
+
+__strong_alias(__atomic_fetch_add_1,__sync_fetch_and_add_1)
Index: src/common/lib/libc/atomic/atomic_and_16_cas.c
diff -u src/common/lib/libc/atomic/atomic_and_16_cas.c:1.2 src/common/lib/libc/atomic/atomic_and_16_cas.c:1.2.2.1
--- src/common/lib/libc/atomic/atomic_and_16_cas.c:1.2 Fri Feb 21 15:51:07 2014
+++ src/common/lib/libc/atomic/atomic_and_16_cas.c Sun Aug 10 06:47:06 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_and_16_cas.c,v 1.2 2014/02/21 15:51:07 martin Exp $ */
+/* $NetBSD: atomic_and_16_cas.c,v 1.2.2.1 2014/08/10 06:47:06 tls Exp $ */
/*-
* Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -47,3 +47,5 @@ fetch_and_and_2(volatile uint16_t *addr,
} while (atomic_cas_16(addr, old, new) != old);
return old;
}
+
+__strong_alias(__atomic_fetch_and_2,__sync_fetch_and_and_2)
Index: src/common/lib/libc/atomic/atomic_and_8_cas.c
diff -u src/common/lib/libc/atomic/atomic_and_8_cas.c:1.2 src/common/lib/libc/atomic/atomic_and_8_cas.c:1.2.2.1
--- src/common/lib/libc/atomic/atomic_and_8_cas.c:1.2 Fri Feb 21 15:51:07 2014
+++ src/common/lib/libc/atomic/atomic_and_8_cas.c Sun Aug 10 06:47:06 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_and_8_cas.c,v 1.2 2014/02/21 15:51:07 martin Exp $ */
+/* $NetBSD: atomic_and_8_cas.c,v 1.2.2.1 2014/08/10 06:47:06 tls Exp $ */
/*-
* Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -47,3 +47,5 @@ fetch_and_and_1(volatile uint8_t *addr,
} while (atomic_cas_8(addr, old, new) != old);
return old;
}
+
+__strong_alias(__atomic_fetch_and_1,__sync_fetch_and_and_1)
Index: src/common/lib/libc/atomic/atomic_or_16_cas.c
diff -u src/common/lib/libc/atomic/atomic_or_16_cas.c:1.2 src/common/lib/libc/atomic/atomic_or_16_cas.c:1.2.2.1
--- src/common/lib/libc/atomic/atomic_or_16_cas.c:1.2 Fri Feb 21 15:51:07 2014
+++ src/common/lib/libc/atomic/atomic_or_16_cas.c Sun Aug 10 06:47:06 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_or_16_cas.c,v 1.2 2014/02/21 15:51:07 martin Exp $ */
+/* $NetBSD: atomic_or_16_cas.c,v 1.2.2.1 2014/08/10 06:47:06 tls Exp $ */
/*-
* Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -62,3 +62,4 @@ or_and_fetch_2(volatile uint16_t *addr,
return old;
}
+__strong_alias(__atomic_fetch_or_2,__sync_fetch_and_or_2)
Index: src/common/lib/libc/atomic/atomic_or_8_cas.c
diff -u src/common/lib/libc/atomic/atomic_or_8_cas.c:1.2 src/common/lib/libc/atomic/atomic_or_8_cas.c:1.2.2.1
--- src/common/lib/libc/atomic/atomic_or_8_cas.c:1.2 Fri Feb 21 15:51:07 2014
+++ src/common/lib/libc/atomic/atomic_or_8_cas.c Sun Aug 10 06:47:06 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_or_8_cas.c,v 1.2 2014/02/21 15:51:07 martin Exp $ */
+/* $NetBSD: atomic_or_8_cas.c,v 1.2.2.1 2014/08/10 06:47:06 tls Exp $ */
/*-
* Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -62,3 +62,4 @@ or_and_fetch_1(volatile uint8_t *addr, u
return old;
}
+__strong_alias(__atomic_fetch_or_1,__sync_fetch_and_or_1)
Index: src/common/lib/libc/atomic/atomic_sub_16_cas.c
diff -u src/common/lib/libc/atomic/atomic_sub_16_cas.c:1.2 src/common/lib/libc/atomic/atomic_sub_16_cas.c:1.2.2.1
--- src/common/lib/libc/atomic/atomic_sub_16_cas.c:1.2 Fri Feb 21 16:06:48 2014
+++ src/common/lib/libc/atomic/atomic_sub_16_cas.c Sun Aug 10 06:47:06 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_sub_16_cas.c,v 1.2 2014/02/21 16:06:48 martin Exp $ */
+/* $NetBSD: atomic_sub_16_cas.c,v 1.2.2.1 2014/08/10 06:47:06 tls Exp $ */
/*-
* Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -61,3 +61,5 @@ sub_and_fetch_2(volatile uint16_t *addr,
} while (atomic_cas_16(addr, old, new) != old);
return new;
}
+
+__strong_alias(__atomic_fetch_sub_2,__sync_fetch_and_sub_2)
Index: src/common/lib/libc/atomic/atomic_sub_64_cas.c
diff -u src/common/lib/libc/atomic/atomic_sub_64_cas.c:1.2 src/common/lib/libc/atomic/atomic_sub_64_cas.c:1.2.2.1
--- src/common/lib/libc/atomic/atomic_sub_64_cas.c:1.2 Tue Feb 18 13:21:04 2014
+++ src/common/lib/libc/atomic/atomic_sub_64_cas.c Sun Aug 10 06:47:06 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_sub_64_cas.c,v 1.2 2014/02/18 13:21:04 martin Exp $ */
+/* $NetBSD: atomic_sub_64_cas.c,v 1.2.2.1 2014/08/10 06:47:06 tls Exp $ */
/*-
* Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -62,4 +62,6 @@ sub_and_fetch_8(volatile uint64_t *addr,
return new;
}
+__strong_alias(__atomic_fetch_sub_8,__sync_fetch_and_sub_8)
+
#endif
Index: src/common/lib/libc/atomic/atomic_sub_8_cas.c
diff -u src/common/lib/libc/atomic/atomic_sub_8_cas.c:1.2 src/common/lib/libc/atomic/atomic_sub_8_cas.c:1.2.2.1
--- src/common/lib/libc/atomic/atomic_sub_8_cas.c:1.2 Fri Feb 21 16:06:48 2014
+++ src/common/lib/libc/atomic/atomic_sub_8_cas.c Sun Aug 10 06:47:06 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_sub_8_cas.c,v 1.2 2014/02/21 16:06:48 martin Exp $ */
+/* $NetBSD: atomic_sub_8_cas.c,v 1.2.2.1 2014/08/10 06:47:06 tls Exp $ */
/*-
* Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -61,3 +61,5 @@ sub_and_fetch_1(volatile uint8_t *addr,
} while (atomic_cas_8(addr, old, new) != old);
return new;
}
+
+__strong_alias(__atomic_fetch_sub_1,__sync_fetch_and_sub_1)
Index: src/common/lib/libc/atomic/atomic_swap_16_cas.c
diff -u src/common/lib/libc/atomic/atomic_swap_16_cas.c:1.2 src/common/lib/libc/atomic/atomic_swap_16_cas.c:1.2.2.1
--- src/common/lib/libc/atomic/atomic_swap_16_cas.c:1.2 Fri Feb 21 15:51:07 2014
+++ src/common/lib/libc/atomic/atomic_swap_16_cas.c Sun Aug 10 06:47:06 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_swap_16_cas.c,v 1.2 2014/02/21 15:51:07 martin Exp $ */
+/* $NetBSD: atomic_swap_16_cas.c,v 1.2.2.1 2014/08/10 06:47:06 tls Exp $ */
/*-
* Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -48,3 +48,5 @@ atomic_swap_16(volatile uint16_t *addr,
return old;
}
+
+crt_alias(__atomic_exchange_2,__sync_lock_test_and_set_2)
Index: src/common/lib/libc/atomic/atomic_swap_8_cas.c
diff -u src/common/lib/libc/atomic/atomic_swap_8_cas.c:1.2 src/common/lib/libc/atomic/atomic_swap_8_cas.c:1.2.2.1
--- src/common/lib/libc/atomic/atomic_swap_8_cas.c:1.2 Fri Feb 21 15:51:07 2014
+++ src/common/lib/libc/atomic/atomic_swap_8_cas.c Sun Aug 10 06:47:06 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_swap_8_cas.c,v 1.2 2014/02/21 15:51:07 martin Exp $ */
+/* $NetBSD: atomic_swap_8_cas.c,v 1.2.2.1 2014/08/10 06:47:06 tls Exp $ */
/*-
* Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -48,3 +48,5 @@ atomic_swap_8(volatile uint8_t *addr, ui
return old;
}
+
+crt_alias(__atomic_exchange_1,__sync_lock_test_and_set_1)
Index: src/common/lib/libc/atomic/atomic_xor_16_cas.c
diff -u src/common/lib/libc/atomic/atomic_xor_16_cas.c:1.2 src/common/lib/libc/atomic/atomic_xor_16_cas.c:1.2.2.1
--- src/common/lib/libc/atomic/atomic_xor_16_cas.c:1.2 Fri Feb 21 16:06:48 2014
+++ src/common/lib/libc/atomic/atomic_xor_16_cas.c Sun Aug 10 06:47:06 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_xor_16_cas.c,v 1.2 2014/02/21 16:06:48 martin Exp $ */
+/* $NetBSD: atomic_xor_16_cas.c,v 1.2.2.1 2014/08/10 06:47:06 tls Exp $ */
/*-
* Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -61,3 +61,5 @@ xor_and_fetch_2(volatile uint16_t *addr,
} while (atomic_cas_16(addr, old, new) != old);
return new;
}
+
+__strong_alias(__atomic_fetch_xor_2,__sync_fetch_and_xor_2)
Index: src/common/lib/libc/atomic/atomic_xor_64_cas.c
diff -u src/common/lib/libc/atomic/atomic_xor_64_cas.c:1.2 src/common/lib/libc/atomic/atomic_xor_64_cas.c:1.2.2.1
--- src/common/lib/libc/atomic/atomic_xor_64_cas.c:1.2 Tue Feb 18 13:21:04 2014
+++ src/common/lib/libc/atomic/atomic_xor_64_cas.c Sun Aug 10 06:47:06 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_xor_64_cas.c,v 1.2 2014/02/18 13:21:04 martin Exp $ */
+/* $NetBSD: atomic_xor_64_cas.c,v 1.2.2.1 2014/08/10 06:47:06 tls Exp $ */
/*-
* Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -62,4 +62,6 @@ xor_and_fetch_8(volatile uint64_t *addr,
return new;
}
+__strong_alias(__atomic_fetch_xor_8,__sync_fetch_and_xor_8)
+
#endif
Index: src/common/lib/libc/atomic/atomic_xor_8_cas.c
diff -u src/common/lib/libc/atomic/atomic_xor_8_cas.c:1.2 src/common/lib/libc/atomic/atomic_xor_8_cas.c:1.2.2.1
--- src/common/lib/libc/atomic/atomic_xor_8_cas.c:1.2 Fri Feb 21 16:06:48 2014
+++ src/common/lib/libc/atomic/atomic_xor_8_cas.c Sun Aug 10 06:47:06 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_xor_8_cas.c,v 1.2 2014/02/21 16:06:48 martin Exp $ */
+/* $NetBSD: atomic_xor_8_cas.c,v 1.2.2.1 2014/08/10 06:47:06 tls Exp $ */
/*-
* Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -61,3 +61,5 @@ xor_and_fetch_1(volatile uint8_t *addr,
} while (atomic_cas_8(addr, old, new) != old);
return new;
}
+
+__strong_alias(__atomic_fetch_xor_1,__sync_fetch_and_xor_1)
Index: src/common/lib/libc/atomic/atomic_add_32_cas.c
diff -u src/common/lib/libc/atomic/atomic_add_32_cas.c:1.8 src/common/lib/libc/atomic/atomic_add_32_cas.c:1.8.2.1
--- src/common/lib/libc/atomic/atomic_add_32_cas.c:1.8 Sat Feb 22 17:08:30 2014
+++ src/common/lib/libc/atomic/atomic_add_32_cas.c Sun Aug 10 06:47:06 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_add_32_cas.c,v 1.8 2014/02/22 17:08:30 martin Exp $ */
+/* $NetBSD: atomic_add_32_cas.c,v 1.8.2.1 2014/08/10 06:47:06 tls Exp $ */
/*-
* Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -74,3 +74,5 @@ __strong_alias(_atomic_add_long,_atomic_
atomic_op_alias(atomic_add_ptr,_atomic_add_32)
__strong_alias(_atomic_add_ptr,_atomic_add_32)
#endif /* _LP64 */
+
+__strong_alias(__atomic_fetch_add_4,__sync_fetch_and_add_4)
Index: src/common/lib/libc/atomic/atomic_add_64_cas.c
diff -u src/common/lib/libc/atomic/atomic_add_64_cas.c:1.8 src/common/lib/libc/atomic/atomic_add_64_cas.c:1.8.2.1
--- src/common/lib/libc/atomic/atomic_add_64_cas.c:1.8 Tue Jan 28 21:47:48 2014
+++ src/common/lib/libc/atomic/atomic_add_64_cas.c Sun Aug 10 06:47:06 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_add_64_cas.c,v 1.8 2014/01/28 21:47:48 joerg Exp $ */
+/* $NetBSD: atomic_add_64_cas.c,v 1.8.2.1 2014/08/10 06:47:06 tls Exp $ */
/*-
* Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -56,6 +56,8 @@ atomic_add_64(volatile uint64_t *addr, i
(void) fetch_and_add_8(addr, val);
}
+__strong_alias(__atomic_fetch_add_8,__sync_fetch_and_add_8)
+
#undef atomic_add_64
atomic_op_alias(atomic_add_64,_atomic_add_64)
Index: src/common/lib/libc/atomic/atomic_swap_64_cas.c
diff -u src/common/lib/libc/atomic/atomic_swap_64_cas.c:1.8 src/common/lib/libc/atomic/atomic_swap_64_cas.c:1.8.2.1
--- src/common/lib/libc/atomic/atomic_swap_64_cas.c:1.8 Sat Feb 22 17:08:30 2014
+++ src/common/lib/libc/atomic/atomic_swap_64_cas.c Sun Aug 10 06:47:06 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_swap_64_cas.c,v 1.8 2014/02/22 17:08:30 martin Exp $ */
+/* $NetBSD: atomic_swap_64_cas.c,v 1.8.2.1 2014/08/10 06:47:06 tls Exp $ */
/*-
* Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -47,6 +47,8 @@ atomic_swap_64(volatile uint64_t *addr,
return (old);
}
+crt_alias(__atomic_exchange_8,_atomic_swap_8)
+
#undef atomic_swap_64
atomic_op_alias(atomic_swap_64,_atomic_swap_64)
crt_alias(__sync_lock_test_and_set_8,_atomic_swap_64)
Index: src/common/lib/libc/atomic/atomic_and_32_cas.c
diff -u src/common/lib/libc/atomic/atomic_and_32_cas.c:1.9 src/common/lib/libc/atomic/atomic_and_32_cas.c:1.9.2.1
--- src/common/lib/libc/atomic/atomic_and_32_cas.c:1.9 Sat Feb 22 17:08:30 2014
+++ src/common/lib/libc/atomic/atomic_and_32_cas.c Sun Aug 10 06:47:06 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_and_32_cas.c,v 1.9 2014/02/22 17:08:30 martin Exp $ */
+/* $NetBSD: atomic_and_32_cas.c,v 1.9.2.1 2014/08/10 06:47:06 tls Exp $ */
/*-
* Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -58,6 +58,8 @@ atomic_and_32(volatile uint32_t *addr, u
(void) fetch_and_and_4(addr, val);
}
+__strong_alias(__atomic_fetch_and_4,__sync_fetch_and_and_4)
+
#undef atomic_and_32
atomic_op_alias(atomic_and_32,_atomic_and_32)
Index: src/common/lib/libc/atomic/atomic_and_64_cas.c
diff -u src/common/lib/libc/atomic/atomic_and_64_cas.c:1.9 src/common/lib/libc/atomic/atomic_and_64_cas.c:1.9.2.1
--- src/common/lib/libc/atomic/atomic_and_64_cas.c:1.9 Tue Jan 28 21:47:48 2014
+++ src/common/lib/libc/atomic/atomic_and_64_cas.c Sun Aug 10 06:47:06 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_and_64_cas.c,v 1.9 2014/01/28 21:47:48 joerg Exp $ */
+/* $NetBSD: atomic_and_64_cas.c,v 1.9.2.1 2014/08/10 06:47:06 tls Exp $ */
/*-
* Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -56,6 +56,8 @@ atomic_and_64(volatile uint64_t *addr, u
(void) fetch_and_and_8(addr, val);
}
+__strong_alias(__atomic_fetch_and_8,__sync_fetch_and_and_8)
+
#undef atomic_and_64
atomic_op_alias(atomic_and_64,_atomic_and_64)
Index: src/common/lib/libc/atomic/atomic_or_32_cas.c
diff -u src/common/lib/libc/atomic/atomic_or_32_cas.c:1.9 src/common/lib/libc/atomic/atomic_or_32_cas.c:1.9.2.1
--- src/common/lib/libc/atomic/atomic_or_32_cas.c:1.9 Sat Feb 22 17:08:30 2014
+++ src/common/lib/libc/atomic/atomic_or_32_cas.c Sun Aug 10 06:47:06 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_or_32_cas.c,v 1.9 2014/02/22 17:08:30 martin Exp $ */
+/* $NetBSD: atomic_or_32_cas.c,v 1.9.2.1 2014/08/10 06:47:06 tls Exp $ */
/*-
* Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -58,6 +58,8 @@ atomic_or_32(volatile uint32_t *addr, ui
(void) fetch_and_or_4(addr, val);
}
+__strong_alias(__atomic_fetch_or_4,__sync_fetch_and_or_4)
+
#undef atomic_or_32
atomic_op_alias(atomic_or_32,_atomic_or_32)
Index: src/common/lib/libc/atomic/atomic_or_64_cas.c
diff -u src/common/lib/libc/atomic/atomic_or_64_cas.c:1.9 src/common/lib/libc/atomic/atomic_or_64_cas.c:1.9.2.1
--- src/common/lib/libc/atomic/atomic_or_64_cas.c:1.9 Tue Jan 28 21:47:48 2014
+++ src/common/lib/libc/atomic/atomic_or_64_cas.c Sun Aug 10 06:47:06 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_or_64_cas.c,v 1.9 2014/01/28 21:47:48 joerg Exp $ */
+/* $NetBSD: atomic_or_64_cas.c,v 1.9.2.1 2014/08/10 06:47:06 tls Exp $ */
/*-
* Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -56,6 +56,8 @@ atomic_or_64(volatile uint64_t *addr, ui
(void) fetch_and_or_8(addr, val);
}
+__strong_alias(__atomic_fetch_or_8,__sync_fetch_and_or_8)
+
#undef atomic_or_64
atomic_op_alias(atomic_or_64,_atomic_or_64)
Index: src/common/lib/libc/atomic/atomic_sub_32_cas.c
diff -u src/common/lib/libc/atomic/atomic_sub_32_cas.c:1.1 src/common/lib/libc/atomic/atomic_sub_32_cas.c:1.1.2.1
--- src/common/lib/libc/atomic/atomic_sub_32_cas.c:1.1 Fri Feb 21 10:52:50 2014
+++ src/common/lib/libc/atomic/atomic_sub_32_cas.c Sun Aug 10 06:47:06 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_sub_32_cas.c,v 1.1 2014/02/21 10:52:50 martin Exp $ */
+/* $NetBSD: atomic_sub_32_cas.c,v 1.1.2.1 2014/08/10 06:47:06 tls Exp $ */
/*-
* Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -59,3 +59,5 @@ sub_and_fetch_4(volatile uint32_t *addr,
} while (atomic_cas_32(addr, old, new) != old);
return new;
}
+
+__strong_alias(__atomic_fetch_sub_4,__sync_fetch_and_sub_4)
Index: src/common/lib/libc/atomic/atomic_xor_32_cas.c
diff -u src/common/lib/libc/atomic/atomic_xor_32_cas.c:1.1 src/common/lib/libc/atomic/atomic_xor_32_cas.c:1.1.2.1
--- src/common/lib/libc/atomic/atomic_xor_32_cas.c:1.1 Fri Feb 21 10:52:50 2014
+++ src/common/lib/libc/atomic/atomic_xor_32_cas.c Sun Aug 10 06:47:06 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_xor_32_cas.c,v 1.1 2014/02/21 10:52:50 martin Exp $ */
+/* $NetBSD: atomic_xor_32_cas.c,v 1.1.2.1 2014/08/10 06:47:06 tls Exp $ */
/*-
* Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -59,3 +59,5 @@ xor_and_fetch_4(volatile uint32_t *addr,
} while (atomic_cas_32(addr, old, new) != old);
return new;
}
+
+__strong_alias(__atomic_fetch_xor_4,__sync_fetch_and_xor_4)
Index: src/common/lib/libc/atomic/atomic_swap_32_cas.c
diff -u src/common/lib/libc/atomic/atomic_swap_32_cas.c:1.6 src/common/lib/libc/atomic/atomic_swap_32_cas.c:1.6.2.1
--- src/common/lib/libc/atomic/atomic_swap_32_cas.c:1.6 Sat Feb 22 17:08:30 2014
+++ src/common/lib/libc/atomic/atomic_swap_32_cas.c Sun Aug 10 06:47:06 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic_swap_32_cas.c,v 1.6 2014/02/22 17:08:30 martin Exp $ */
+/* $NetBSD: atomic_swap_32_cas.c,v 1.6.2.1 2014/08/10 06:47:06 tls Exp $ */
/*-
* Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -45,6 +45,8 @@ atomic_swap_32(volatile uint32_t *addr,
return (old);
}
+crt_alias(__atomic_exchange_4,_atomic_swap_32)
+
#undef atomic_swap_32
atomic_op_alias(atomic_swap_32,_atomic_swap_32)
#undef atomic_swap_uint
Index: src/common/lib/libc/stdlib/random.c
diff -u src/common/lib/libc/stdlib/random.c:1.3 src/common/lib/libc/stdlib/random.c:1.3.70.1
--- src/common/lib/libc/stdlib/random.c:1.3 Wed Dec 21 14:23:58 2005
+++ src/common/lib/libc/stdlib/random.c Sun Aug 10 06:47:06 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: random.c,v 1.3 2005/12/21 14:23:58 christos Exp $ */
+/* $NetBSD: random.c,v 1.3.70.1 2014/08/10 06:47:06 tls Exp $ */
/*
* Copyright (c) 1983, 1993
@@ -35,7 +35,7 @@
#if 0
static char sccsid[] = "@(#)random.c 8.2 (Berkeley) 5/19/95";
#else
-__RCSID("$NetBSD: random.c,v 1.3 2005/12/21 14:23:58 christos Exp $");
+__RCSID("$NetBSD: random.c,v 1.3.70.1 2014/08/10 06:47:06 tls Exp $");
#endif
#endif /* LIBC_SCCS and not lint */
@@ -302,11 +302,11 @@ srandom_unlocked(unsigned int x)
}
void
-srandom(unsigned long x)
+srandom(unsigned int x)
{
mutex_lock(&random_mutex);
- srandom_unlocked((unsigned int) x);
+ srandom_unlocked(x);
mutex_unlock(&random_mutex);
}
@@ -335,7 +335,7 @@ srandom(unsigned long x)
*/
char *
initstate(
- unsigned long seed, /* seed for R.N.G. */
+ unsigned int seed, /* seed for R.N.G. */
char *arg_state, /* pointer to state array */
size_t n) /* # bytes of state info */
{
@@ -377,7 +377,7 @@ initstate(
}
state = (int *) (int_arg_state + 1); /* first location */
end_ptr = &state[rand_deg]; /* must set end_ptr before srandom */
- srandom_unlocked((unsigned int) seed);
+ srandom_unlocked(seed);
if (rand_type == TYPE_0)
int_arg_state[0] = rand_type;
else
Index: src/common/lib/libc/string/bcopy.c
diff -u src/common/lib/libc/string/bcopy.c:1.9 src/common/lib/libc/string/bcopy.c:1.9.24.1
--- src/common/lib/libc/string/bcopy.c:1.9 Wed Mar 18 12:25:06 2009
+++ src/common/lib/libc/string/bcopy.c Sun Aug 10 06:47:06 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: bcopy.c,v 1.9 2009/03/18 12:25:06 tsutsui Exp $ */
+/* $NetBSD: bcopy.c,v 1.9.24.1 2014/08/10 06:47:06 tls Exp $ */
/*-
* Copyright (c) 1990, 1993
@@ -37,7 +37,7 @@
#if 0
static char sccsid[] = "@(#)bcopy.c 8.1 (Berkeley) 6/4/93";
#else
-__RCSID("$NetBSD: bcopy.c,v 1.9 2009/03/18 12:25:06 tsutsui Exp $");
+__RCSID("$NetBSD: bcopy.c,v 1.9.24.1 2014/08/10 06:47:06 tls Exp $");
#endif
#endif /* LIBC_SCCS and not lint */
@@ -51,7 +51,7 @@ __RCSID("$NetBSD: bcopy.c,v 1.9 2009/03/
#endif
#endif
-#ifdef _FORTIFY_SOURCE
+#if defined(_FORTIFY_SOURCE) || defined(_STANDALONE) || defined(_KERNEL)
#undef bcopy
#undef memcpy
#undef memmove
@@ -89,8 +89,7 @@ bcopy(const void *src0, void *dst0, size
unsigned long u;
#if !defined(_KERNEL)
- _DIAGASSERT(dst0 != 0);
- _DIAGASSERT(src0 != 0);
+ _DIAGASSERT((dst0 && src0) || length == 0);
#endif
if (length == 0 || dst == src) /* nothing to do */
Index: src/common/lib/libc/string/consttime_memequal.c
diff -u src/common/lib/libc/string/consttime_memequal.c:1.4 src/common/lib/libc/string/consttime_memequal.c:1.4.2.1
--- src/common/lib/libc/string/consttime_memequal.c:1.4 Wed Aug 28 19:31:14 2013
+++ src/common/lib/libc/string/consttime_memequal.c Sun Aug 10 06:47:06 2014
@@ -1,4 +1,9 @@
-/* $NetBSD: consttime_memequal.c,v 1.4 2013/08/28 19:31:14 riastradh Exp $ */
+/* $NetBSD: consttime_memequal.c,v 1.4.2.1 2014/08/10 06:47:06 tls Exp $ */
+
+/*
+ * Written by Matthias Drochner <[email protected]>.
+ * Public domain.
+ */
#if !defined(_KERNEL) && !defined(_STANDALONE)
#include "namespace.h"
Index: src/common/lib/libc/string/explicit_memset.c
diff -u src/common/lib/libc/string/explicit_memset.c:1.3 src/common/lib/libc/string/explicit_memset.c:1.3.2.1
--- src/common/lib/libc/string/explicit_memset.c:1.3 Wed Aug 28 17:47:07 2013
+++ src/common/lib/libc/string/explicit_memset.c Sun Aug 10 06:47:06 2014
@@ -1,4 +1,9 @@
-/* $NetBSD: explicit_memset.c,v 1.3 2013/08/28 17:47:07 riastradh Exp $ */
+/* $NetBSD: explicit_memset.c,v 1.3.2.1 2014/08/10 06:47:06 tls Exp $ */
+
+/*
+ * Written by Matthias Drochner <[email protected]>.
+ * Public domain.
+ */
#if !defined(_KERNEL) && !defined(_STANDALONE)
#include "namespace.h"
Index: src/common/lib/libutil/snprintb.c
diff -u src/common/lib/libutil/snprintb.c:1.14 src/common/lib/libutil/snprintb.c:1.14.2.1
--- src/common/lib/libutil/snprintb.c:1.14 Thu Aug 8 22:18:20 2013
+++ src/common/lib/libutil/snprintb.c Sun Aug 10 06:47:06 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: snprintb.c,v 1.14 2013/08/08 22:18:20 pgoyette Exp $ */
+/* $NetBSD: snprintb.c,v 1.14.2.1 2014/08/10 06:47:06 tls Exp $ */
/*-
* Copyright (c) 2002 The NetBSD Foundation, Inc.
@@ -41,7 +41,7 @@
# include <sys/cdefs.h>
# if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: snprintb.c,v 1.14 2013/08/08 22:18:20 pgoyette Exp $");
+__RCSID("$NetBSD: snprintb.c,v 1.14.2.1 2014/08/10 06:47:06 tls Exp $");
# endif
# include <sys/types.h>
@@ -51,7 +51,7 @@ __RCSID("$NetBSD: snprintb.c,v 1.14 2013
# include <errno.h>
# else /* ! _KERNEL */
# include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: snprintb.c,v 1.14 2013/08/08 22:18:20 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: snprintb.c,v 1.14.2.1 2014/08/10 06:47:06 tls Exp $");
# include <sys/param.h>
# include <sys/inttypes.h>
# include <sys/systm.h>
@@ -257,7 +257,7 @@ snprintb_m(char *buf, size_t buflen, con
}
}
l_len++;
- if ((size_t)(++t_len) < buflen)
+ if (sep != '<' && (size_t)(++t_len) < buflen)
*bp++ = '>';
terminate:
*bp++ = '\0';
Index: src/common/lib/libx86emu/x86emu.c
diff -u src/common/lib/libx86emu/x86emu.c:1.7 src/common/lib/libx86emu/x86emu.c:1.7.26.1
--- src/common/lib/libx86emu/x86emu.c:1.7 Tue Feb 3 19:26:29 2009
+++ src/common/lib/libx86emu/x86emu.c Sun Aug 10 06:47:06 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: x86emu.c,v 1.7 2009/02/03 19:26:29 joerg Exp $ */
+/* $NetBSD: x86emu.c,v 1.7.26.1 2014/08/10 06:47:06 tls Exp $ */
/****************************************************************************
*
@@ -2091,21 +2091,24 @@ Handles opcode 0x8d
static void
x86emuOp_lea_word_R_M(struct X86EMU *emu)
{
- uint16_t *srcreg;
uint32_t destoffset;
-/*
- * TODO: Need to handle address size prefix!
- *
- * lea eax,[eax+ebx*2] ??
- */
fetch_decode_modrm(emu);
if (emu->cur_mod == 3)
X86EMU_halt_sys(emu);
- srcreg = decode_rh_word_register(emu);
destoffset = decode_rl_address(emu);
- *srcreg = (uint16_t) destoffset;
+ if (emu->x86.mode & SYSMODE_PREFIX_ADDR) {
+ uint32_t *srcreg;
+
+ srcreg = decode_rh_long_register(emu);
+ *srcreg = (uint32_t) destoffset;
+ } else {
+ uint16_t *srcreg;
+
+ srcreg = decode_rh_word_register(emu);
+ *srcreg = (uint16_t) destoffset;
+ }
}
/****************************************************************************
REMARKS:
@@ -3601,12 +3604,19 @@ Handles opcode 0xe8
static void
x86emuOp_call_near_IMM(struct X86EMU *emu)
{
- int16_t ip;
-
- ip = (int16_t) fetch_word_imm(emu);
- ip += (int16_t) emu->x86.R_IP; /* CHECK SIGN */
- push_word(emu, emu->x86.R_IP);
- emu->x86.R_IP = ip;
+ if (emu->x86.mode & SYSMODE_PREFIX_DATA) {
+ int32_t ip;
+ ip = (int32_t) fetch_long_imm(emu);
+ ip += (int32_t) emu->x86.R_EIP;
+ push_long(emu, emu->x86.R_EIP);
+ emu->x86.R_EIP = ip;
+ } else {
+ int16_t ip;
+ ip = (int16_t) fetch_word_imm(emu);
+ ip += (int16_t) emu->x86.R_IP; /* CHECK SIGN */
+ push_word(emu, emu->x86.R_IP);
+ emu->x86.R_IP = ip;
+ }
}
/****************************************************************************
REMARKS:
@@ -5419,6 +5429,7 @@ x86emuOp2_32_movsx_byte_R_RM(struct X86E
{
uint32_t *destreg;
+ fetch_decode_modrm(emu);
destreg = decode_rh_long_register(emu);
*destreg = (int32_t)(int8_t)decode_and_fetch_byte(emu);
}
Added files:
Index: src/common/lib/libc/atomic/atomic_load.c
diff -u /dev/null src/common/lib/libc/atomic/atomic_load.c:1.2.2.2
--- /dev/null Sun Aug 10 06:47:06 2014
+++ src/common/lib/libc/atomic/atomic_load.c Sun Aug 10 06:47:06 2014
@@ -0,0 +1,54 @@
+/* $NetBSD: atomic_load.c,v 1.2.2.2 2014/08/10 06:47:06 tls Exp $ */
+
+/*-
+ * Copyright (c) 2014 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * 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 <sys/cdefs.h>
+__RCSID("$NetBSD: atomic_load.c,v 1.2.2.2 2014/08/10 06:47:06 tls Exp $");
+
+#include "atomic_op_namespace.h"
+
+#include <sys/types.h>
+#include <sys/atomic.h>
+
+#define atomic_load_n(n,b) \
+uint ## b ## _t __atomic_load_ ## n(volatile uint ## b ## _t *, int); \
+uint ## b ## _t \
+__atomic_load_ ## n(volatile uint ## b ## _t *ptr, int memmodel) \
+{ \
+ uint## b ##_t val; \
+ membar_enter(); \
+ val = *ptr; \
+ membar_exit(); \
+ return val; \
+}
+
+atomic_load_n(1, 8)
+atomic_load_n(2, 16)
+atomic_load_n(4, 32)
+#ifdef __HAVE_ATOMIC_CAS_64_UP
+atomic_load_n(8, 64)
+#endif
Index: src/common/lib/libc/atomic/atomic_store.c
diff -u /dev/null src/common/lib/libc/atomic/atomic_store.c:1.2.2.2
--- /dev/null Sun Aug 10 06:47:06 2014
+++ src/common/lib/libc/atomic/atomic_store.c Sun Aug 10 06:47:06 2014
@@ -0,0 +1,53 @@
+/* $NetBSD: atomic_store.c,v 1.2.2.2 2014/08/10 06:47:06 tls Exp $ */
+
+/*-
+ * Copyright (c) 2014 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * 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 <sys/cdefs.h>
+__RCSID("$NetBSD: atomic_store.c,v 1.2.2.2 2014/08/10 06:47:06 tls Exp $");
+
+#include "atomic_op_namespace.h"
+
+#include <sys/types.h>
+#include <sys/atomic.h>
+
+#define atomic_store_n(n,b) \
+void __atomic_store_ ## n(volatile uint ## b ## _t *, uint ## b ## _t, int); \
+void \
+__atomic_store_ ## n(volatile uint ## b ## _t *ptr, uint ## b ## _t val, \
+ int memmodel) \
+{ \
+ membar_enter(); \
+ *ptr = val; \
+ membar_exit(); \
+}
+
+atomic_store_n(1, 8)
+atomic_store_n(2, 16)
+atomic_store_n(4, 32)
+#ifdef __HAVE_ATOMIC_CAS_64_UP
+atomic_store_n(8, 64)
+#endif
Index: src/common/lib/libc/string/strcspn.c
diff -u /dev/null src/common/lib/libc/string/strcspn.c:1.1.2.2
--- /dev/null Sun Aug 10 06:47:06 2014
+++ src/common/lib/libc/string/strcspn.c Sun Aug 10 06:47:06 2014
@@ -0,0 +1,74 @@
+/* $NetBSD: strcspn.c,v 1.1.2.2 2014/08/10 06:47:06 tls Exp $ */
+
+/*-
+ * Copyright (c) 2008 Joerg Sonnenberger
+ * All rights reserved.
+ *
+ * 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 AUTHOR(S) ``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 AUTHOR(S) 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 <sys/cdefs.h>
+__RCSID("$NetBSD: strcspn.c,v 1.1.2.2 2014/08/10 06:47:06 tls Exp $");
+
+#if !defined(_KERNEL) && !defined(_STANDALONE)
+#include <assert.h>
+#include <inttypes.h>
+#include <limits.h>
+#include <string.h>
+#else
+#include <lib/libkern/libkern.h>
+#endif
+
+/* 64bit version is in strspn.c */
+#if ULONG_MAX != 0xffffffffffffffffull
+
+size_t
+strcspn(const char *s, const char *charset)
+{
+ static const uint8_t idx[8] = { 1, 2, 4, 8, 16, 32, 64, 128 };
+ const char *t;
+ uint8_t set[32];
+#define UC(a) ((unsigned int)(unsigned char)(a))
+
+ _DIAGASSERT(s != NULL);
+ _DIAGASSERT(charset != NULL);
+
+ if (charset[0] == '\0')
+ return strlen(s);
+ if (charset[1] == '\0') {
+ for (t = s; *t != '\0'; ++t)
+ if (*t == *charset)
+ break;
+ return t - s;
+ }
+
+ (void)memset(set, 0, sizeof(set));
+
+ for (; *charset != '\0'; ++charset)
+ set[UC(*charset) >> 3] |= idx[UC(*charset) & 7];
+
+ for (t = s; *t != '\0'; ++t)
+ if (set[UC(*t) >> 3] & idx[UC(*t) & 7])
+ break;
+ return t - s;
+}
+
+#endif
Index: src/common/lib/libc/string/strpbrk.c
diff -u /dev/null src/common/lib/libc/string/strpbrk.c:1.1.2.2
--- /dev/null Sun Aug 10 06:47:06 2014
+++ src/common/lib/libc/string/strpbrk.c Sun Aug 10 06:47:06 2014
@@ -0,0 +1,79 @@
+/* $NetBSD: strpbrk.c,v 1.1.2.2 2014/08/10 06:47:06 tls Exp $ */
+
+/*-
+ * Copyright (c) 2008 Joerg Sonnenberger
+ * All rights reserved.
+ *
+ * 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 AUTHOR(S) ``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 AUTHOR(S) 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 <sys/cdefs.h>
+__RCSID("$NetBSD: strpbrk.c,v 1.1.2.2 2014/08/10 06:47:06 tls Exp $");
+
+#if !defined(_KERNEL) && !defined(_STANDALONE)
+#include <assert.h>
+#include <inttypes.h>
+#include <limits.h>
+#include <string.h>
+#else
+#include <lib/libkern/libkern.h>
+#endif
+
+#define FAST_STRPBRK 1
+#define UC(a) ((unsigned int)(unsigned char)(a))
+
+#ifdef FAST_STRPBRK
+#define ADD_NEW_TO_SET(i) (set[inv[i] = idx++] = (i))
+#define IS_IN_SET(i) (inv[i] < idx && set[inv[i]] == (i))
+#define ADD_TO_SET(i) (void)(IS_IN_SET(i) || /*LINTED no effect*/ADD_NEW_TO_SET(i))
+#else
+#define IS_IN_SET(i) (set[(i) >> 3] & idx[(i) & 7])
+#define ADD_TO_SET(i) (void)(set[(i) >> 3] |= idx[(i) & 7])
+#endif
+
+char *
+strpbrk(const char *s, const char *charset)
+{
+#ifdef FAST_STRPBRK
+ uint8_t set[256], inv[256], idx = 0;
+#else
+ static const size_t idx[8] = { 1, 2, 4, 8, 16, 32, 64, 128 };
+ uint8_t set[32];
+
+ (void)memset(set, 0, sizeof(set));
+#endif
+
+ _DIAGASSERT(s != NULL);
+ _DIAGASSERT(charset != NULL);
+
+ if (charset[0] == '\0')
+ return NULL;
+ if (charset[1] == '\0')
+ return strchr(s, charset[0]);
+
+ for (; *charset != '\0'; ++charset)
+ ADD_TO_SET(UC(*charset));
+
+ for (; *s != '\0'; ++s)
+ if (IS_IN_SET(UC(*s)))
+ return __UNCONST(s);
+ return NULL;
+}
Index: src/common/lib/libc/string/strspn.c
diff -u /dev/null src/common/lib/libc/string/strspn.c:1.1.2.2
--- /dev/null Sun Aug 10 06:47:06 2014
+++ src/common/lib/libc/string/strspn.c Sun Aug 10 06:47:06 2014
@@ -0,0 +1,155 @@
+/* $NetBSD: strspn.c,v 1.1.2.2 2014/08/10 06:47:06 tls Exp $ */
+
+/*-
+ * Copyright (c) 2008 Joerg Sonnenberger
+ * All rights reserved.
+ *
+ * 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 AUTHOR(S) ``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 AUTHOR(S) 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 <sys/cdefs.h>
+__RCSID("$NetBSD: strspn.c,v 1.1.2.2 2014/08/10 06:47:06 tls Exp $");
+
+#if !defined(_KERNEL) && !defined(_STANDALONE)
+#include <assert.h>
+#include <inttypes.h>
+#include <limits.h>
+#include <string.h>
+#else
+#include <lib/libkern/libkern.h>
+#endif
+
+#if ULONG_MAX != 0xffffffffffffffffull
+
+size_t
+strspn(const char *s, const char *charset)
+{
+ static const uint8_t idx[8] = { 1, 2, 4, 8, 16, 32, 64, 128 };
+ uint8_t set[32];
+ const char *t;
+#define UC(a) ((unsigned int)(unsigned char)(a))
+
+ _DIAGASSERT(s != NULL);
+ _DIAGASSERT(charset != NULL);
+
+ if (charset[0] == '\0')
+ return 0;
+ if (charset[1] == '\0') {
+ for (t = s; *t != '\0'; ++t) {
+ if (*t != *charset)
+ break;
+ }
+ return t - s;
+ }
+
+ (void)memset(set, 0, sizeof(set));
+
+ for (; *charset != '\0'; ++charset)
+ set[UC(*charset) >> 3] |= idx[UC(*charset) & 7];
+
+ for (t = s; *t != '\0'; ++t)
+ if ((set[UC(*t) >> 3] & idx[UC(*t) & 7]) == 0)
+ break;
+ return t - s;
+}
+
+#else
+
+/* 64 bit system, use four 64 bits registers for bitmask */
+
+static size_t
+strspn_x(const char *s_s, const char *charset_s, unsigned long invert)
+{
+ const unsigned char *s = (const unsigned char *)s_s;
+ const unsigned char *charset = (const unsigned char *)charset_s;
+ unsigned long m_0, m_4, m_8, m_c;
+ unsigned char ch, next_ch;
+ unsigned long bit;
+ unsigned long check;
+ size_t count;
+
+ /* Four 64bit registers have one bit for each character value */
+ m_0 = 0;
+ m_4 = 0;
+ m_8 = 0;
+ m_c = 0;
+
+ for (ch = *charset; ch != 0; ch = next_ch) {
+ next_ch = *++charset;
+ bit = 1ul << (ch & 0x3f);
+ if (__predict_true(ch < 0x80)) {
+ if (ch < 0x40)
+ m_0 |= bit;
+ else
+ m_4 |= bit;
+ } else {
+ if (ch < 0xc0)
+ m_8 |= bit;
+ else
+ m_c |= bit;
+ }
+ }
+
+ /* For strcspn() we just invert the validity set */
+ m_0 ^= invert;
+ m_4 ^= invert;
+ m_8 ^= invert;
+ m_c ^= invert;
+
+ /*
+ * We could do remove the lsb from m_0 to terminate at the
+ * end of the input string.
+ * However prefetching the next char is benifitial and we must
+ * not read the byte after the \0 - as it might fault!
+ * So we take the 'hit' of the compare against 0.
+ */
+
+ ch = *s++;
+ for (count = 0; ch != 0; ch = next_ch) {
+ next_ch = s[count];
+ if (__predict_true(ch < 0x80)) {
+ check = m_0;
+ if (ch >= 0x40)
+ check = m_4;
+ } else {
+ check = m_8;
+ if (ch >= 0xc0)
+ check = m_c;
+ }
+ if (!((check >> (ch & 0x3f)) & 1))
+ break;
+ count++;
+ }
+ return count;
+}
+
+size_t
+strspn(const char *s, const char *charset)
+{
+ return strspn_x(s, charset, 0);
+}
+
+size_t
+strcspn(const char *s, const char *charset)
+{
+ return strspn_x(s, charset, ~0ul);
+}
+#endif