CVS commit: src/sys/lib/libkern/arch/arm

2013-08-21 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Wed Aug 21 08:30:18 UTC 2013

Modified Files:
src/sys/lib/libkern/arch/arm: clzsi2.S

Log Message:
Thumbify


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/sys/lib/libkern/arch/arm/clzsi2.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/lib/libkern/arch/arm/clzsi2.S
diff -u src/sys/lib/libkern/arch/arm/clzsi2.S:1.5 src/sys/lib/libkern/arch/arm/clzsi2.S:1.6
--- src/sys/lib/libkern/arch/arm/clzsi2.S:1.5	Sun Aug 11 04:58:01 2013
+++ src/sys/lib/libkern/arch/arm/clzsi2.S	Wed Aug 21 08:30:18 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: clzsi2.S,v 1.5 2013/08/11 04:58:01 matt Exp $ */
+/* $NetBSD: clzsi2.S,v 1.6 2013/08/21 08:30:18 matt Exp $ */
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -30,7 +30,6 @@
 #include machine/asm.h
 
 	.text
-ENTRY(__clzdi2)
 #ifdef __ARMEB__
 #define	HI	r0
 #define	LO	r1
@@ -39,22 +38,26 @@ ENTRY(__clzdi2)
 #define	LO	r0
 #endif
 #if defined(_ARM_ARCH_5)
-#ifdef __thumb__
-	cmp	HI, #0
-	beq	1f
+#if defined(__thumb__)  defined(_ARM_ARCH_T2)
+ENTRY(__clzdi2)
+	cbz	HI, 1f
 	clz	r0, HI		/* count leading zeros in high word */
 	RET
 1:	clz	r0, LO		/* yes, count in low word */
-	add	r0, r0, #32	/*  and add the bits in the high word */
+	adds	r0, r0, #32	/*  and add the bits in the high word */
 	RET
+END(__clzdi2)
 #else
+ARM_ENTRY(__clzdi2)
 	teq	HI, #0		/* high word all zero? */
 	clzne	r0, HI		/* count leading zeros in high word */
 	clzeq	r0, LO		/* yes, count in low word */
 	addeq	r0, r0, #32	/*  and add the bits in the high word */
 	RET
+END(__clzdi2)
 #endif
 #else
+ARM_ENTRY(__clzdi2)
 	movs	r3, HI
 	movne	r0, #31
 	bne	.L_clz
@@ -63,14 +66,20 @@ ENTRY(__clzdi2)
 	bne	.L_clz
 	mov	r0, #64
 	RET
-#endif
 END(__clzdi2)
+#endif
 
-ENTRY(__clzsi2)
 #if defined(_ARM_ARCH_5)
+#if defined(_ARM_ARCH_7)
+ENTRY(__clzsi2)
+#else
+ARM_ENTRY(__clzsi2)
+#endif
 	clz	r0, r0
 	RET
+END(__clzsi2)
 #else
+ARM_ENTRY(__clzsi2)
 	movs	r3, r0
 	moveq	r0, #32
 	RETc(eq)
@@ -115,5 +124,5 @@ ENTRY(__clzsi2)
 #endif
 #endif	/* __OPTIMIZE_SIZE__ */
 	RET
-#endif  /* _ARM_ARCH_5 */
 END(__clzsi2)
+#endif  /* _ARM_ARCH_5 */



CVS commit: src/sys/lib/libkern/arch/arm

2013-08-20 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Tue Aug 20 21:43:03 UTC 2013

Modified Files:
src/sys/lib/libkern/arch/arm: Makefile.inc

Log Message:
Some assembly files need to compiled -marm since they are Thumb compatible.


To generate a diff of this commit:
cvs rdiff -u -r1.19 -r1.20 src/sys/lib/libkern/arch/arm/Makefile.inc

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/lib/libkern/arch/arm/Makefile.inc
diff -u src/sys/lib/libkern/arch/arm/Makefile.inc:1.19 src/sys/lib/libkern/arch/arm/Makefile.inc:1.20
--- src/sys/lib/libkern/arch/arm/Makefile.inc:1.19	Mon Aug 12 23:22:12 2013
+++ src/sys/lib/libkern/arch/arm/Makefile.inc	Tue Aug 20 21:43:03 2013
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile.inc,v 1.19 2013/08/12 23:22:12 matt Exp $
+#	$NetBSD: Makefile.inc,v 1.20 2013/08/20 21:43:03 matt Exp $
 
 SRCS+=	byte_swap_2.S byte_swap_4.S
 SRCS+=	ffs.S
@@ -9,5 +9,17 @@ SRCS+=	modsi3.S umodsi3.S
 .if !empty(MACHINE_ARCH:Mearm*)
 SRCS+=	__aeabi_ldivmod.S __aeabi_uldivmod.S __aeabi_lcmp.c __aeabi_ulcmp.c
 SRCS+=	unwind_stub.c
-.else
+.endif
+.if empty(MACHINE_ARCH:Mearmv7*)
+CPUFLAGS.ffs.S+=	-marm
+.endif
+CPUFLAGS.divide.S+=	-marm
+CPUFLAGS.memcmp.S+=	-marm
+CPUFLAGS.memcpy.S+=	-marm
+CPUFLAGS.memmove.S+=	-marm
+CPUFLAGS.memset.S+=	-marm
+.if empty(CPPFLAGS:M-D_STANDALONE)
+CPUFLAGS.strcpy.S+=	-marm
+CPUFLAGS.strlcpy.S+=	-marm
+CPUFLAGS.strncpy.S+=	-marm
 .endif



CVS commit: src/sys/lib/libkern/arch/arm

2013-08-12 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Mon Aug 12 23:42:14 UTC 2013

Modified Files:
src/sys/lib/libkern/arch/arm: unwind_stub.c

Log Message:
Fix typos (prX not cpX)


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/sys/lib/libkern/arch/arm/unwind_stub.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/lib/libkern/arch/arm/unwind_stub.c
diff -u src/sys/lib/libkern/arch/arm/unwind_stub.c:1.1 src/sys/lib/libkern/arch/arm/unwind_stub.c:1.2
--- src/sys/lib/libkern/arch/arm/unwind_stub.c:1.1	Mon Aug 12 23:22:12 2013
+++ src/sys/lib/libkern/arch/arm/unwind_stub.c	Mon Aug 12 23:42:14 2013
@@ -28,7 +28,7 @@
  */
 
 #include sys/cdefs.h
-__KERNEL_RCSID(1, $NetBSD: unwind_stub.c,v 1.1 2013/08/12 23:22:12 matt Exp $);
+__KERNEL_RCSID(1, $NetBSD: unwind_stub.c,v 1.2 2013/08/12 23:42:14 matt Exp $);
 
 #include arm/ehabi.h
 
@@ -39,6 +39,6 @@ __aeabi_unwind_cpp_stub(_Unwind_State st
 	return _URC_FAILURE;
 }
 
-__weak_alias(__aeabi_unwind_cpp_cp0, __aeabi_unwind_cpp_stub)
-__weak_alias(__aeabi_unwind_cpp_cp1, __aeabi_unwind_cpp_stub)
-__weak_alias(__aeabi_unwind_cpp_cp2, __aeabi_unwind_cpp_stub)
+__weak_alias(__aeabi_unwind_cpp_pr0, __aeabi_unwind_cpp_stub)
+__weak_alias(__aeabi_unwind_cpp_pr1, __aeabi_unwind_cpp_stub)
+__weak_alias(__aeabi_unwind_cpp_pr2, __aeabi_unwind_cpp_stub)



CVS commit: src/sys/lib/libkern/arch/arm

2013-08-10 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Sun Aug 11 04:58:01 UTC 2013

Modified Files:
src/sys/lib/libkern/arch/arm: clzsi2.S

Log Message:
Support thumb


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/sys/lib/libkern/arch/arm/clzsi2.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/lib/libkern/arch/arm/clzsi2.S
diff -u src/sys/lib/libkern/arch/arm/clzsi2.S:1.4 src/sys/lib/libkern/arch/arm/clzsi2.S:1.5
--- src/sys/lib/libkern/arch/arm/clzsi2.S:1.4	Sat Sep  1 11:24:36 2012
+++ src/sys/lib/libkern/arch/arm/clzsi2.S	Sun Aug 11 04:58:01 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: clzsi2.S,v 1.4 2012/09/01 11:24:36 matt Exp $ */
+/* $NetBSD: clzsi2.S,v 1.5 2013/08/11 04:58:01 matt Exp $ */
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -39,11 +39,21 @@ ENTRY(__clzdi2)
 #define	LO	r0
 #endif
 #if defined(_ARM_ARCH_5)
+#ifdef __thumb__
+	cmp	HI, #0
+	beq	1f
+	clz	r0, HI		/* count leading zeros in high word */
+	RET
+1:	clz	r0, LO		/* yes, count in low word */
+	add	r0, r0, #32	/*  and add the bits in the high word */
+	RET
+#else
 	teq	HI, #0		/* high word all zero? */
 	clzne	r0, HI		/* count leading zeros in high word */
 	clzeq	r0, LO		/* yes, count in low word */
 	addeq	r0, r0, #32	/*  and add the bits in the high word */
 	RET
+#endif
 #else
 	movs	r3, HI
 	movne	r0, #31



CVS commit: src/sys/lib/libkern/arch/arm

2013-06-20 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Thu Jun 20 07:29:50 UTC 2013

Modified Files:
src/sys/lib/libkern/arch/arm: Makefile.inc

Log Message:
modsi3/umodsi3 are only needed !EABI arm


To generate a diff of this commit:
cvs rdiff -u -r1.16 -r1.17 src/sys/lib/libkern/arch/arm/Makefile.inc

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/lib/libkern/arch/arm/Makefile.inc
diff -u src/sys/lib/libkern/arch/arm/Makefile.inc:1.16 src/sys/lib/libkern/arch/arm/Makefile.inc:1.17
--- src/sys/lib/libkern/arch/arm/Makefile.inc:1.16	Thu May  2 03:56:42 2013
+++ src/sys/lib/libkern/arch/arm/Makefile.inc	Thu Jun 20 07:29:50 2013
@@ -1,10 +1,12 @@
-#	$NetBSD: Makefile.inc,v 1.16 2013/05/02 03:56:42 matt Exp $
+#	$NetBSD: Makefile.inc,v 1.17 2013/06/20 07:29:50 matt Exp $
 
 SRCS+=	byte_swap_2.S byte_swap_4.S
 SRCS+=	ffs.S
-SRCS+=	divsi3.S udivsi3.S divide.S clzsi2.S modsi3.S umodsi3.S
+SRCS+=	divsi3.S udivsi3.S divide.S clzsi2.S
 SRCS+=	memcmp.S memcpy.S memset.S memmove.S strcmp.S strncmp.S
 
 .if !empty(MACHINE_ARCH:Mearm*)
 SRCS+=	__aeabi_ldivmod.S __aeabi_uldivmod.S __aeabi_lcmp.c __aeabi_ulcmp.c
+.else
+SRCS+=	 modsi3.S umodsi3.S
 .endif



CVS commit: src/sys/lib/libkern/arch/arm

2013-06-20 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Fri Jun 21 05:06:24 UTC 2013

Modified Files:
src/sys/lib/libkern/arch/arm: Makefile.inc

Log Message:
Add back {,u}modsi3 for libkern since if we are building standalone tools
we might be using the old ABI and might need them.


To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.18 src/sys/lib/libkern/arch/arm/Makefile.inc

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/lib/libkern/arch/arm/Makefile.inc
diff -u src/sys/lib/libkern/arch/arm/Makefile.inc:1.17 src/sys/lib/libkern/arch/arm/Makefile.inc:1.18
--- src/sys/lib/libkern/arch/arm/Makefile.inc:1.17	Thu Jun 20 07:29:50 2013
+++ src/sys/lib/libkern/arch/arm/Makefile.inc	Fri Jun 21 05:06:24 2013
@@ -1,12 +1,12 @@
-#	$NetBSD: Makefile.inc,v 1.17 2013/06/20 07:29:50 matt Exp $
+#	$NetBSD: Makefile.inc,v 1.18 2013/06/21 05:06:24 matt Exp $
 
 SRCS+=	byte_swap_2.S byte_swap_4.S
 SRCS+=	ffs.S
 SRCS+=	divsi3.S udivsi3.S divide.S clzsi2.S
 SRCS+=	memcmp.S memcpy.S memset.S memmove.S strcmp.S strncmp.S
+SRCS+=	modsi3.S umodsi3.S
 
 .if !empty(MACHINE_ARCH:Mearm*)
 SRCS+=	__aeabi_ldivmod.S __aeabi_uldivmod.S __aeabi_lcmp.c __aeabi_ulcmp.c
 .else
-SRCS+=	 modsi3.S umodsi3.S
 .endif



CVS commit: src/sys/lib/libkern/arch/arm

2013-02-05 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Wed Feb  6 07:18:17 UTC 2013

Modified Files:
src/sys/lib/libkern/arch/arm: Makefile.inc

Log Message:
Modify earm rule to match any machine_arch starting with earm.


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 src/sys/lib/libkern/arch/arm/Makefile.inc

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/lib/libkern/arch/arm/Makefile.inc
diff -u src/sys/lib/libkern/arch/arm/Makefile.inc:1.14 src/sys/lib/libkern/arch/arm/Makefile.inc:1.15
--- src/sys/lib/libkern/arch/arm/Makefile.inc:1.14	Wed Jan 23 22:34:37 2013
+++ src/sys/lib/libkern/arch/arm/Makefile.inc	Wed Feb  6 07:18:15 2013
@@ -1,10 +1,10 @@
-#	$NetBSD: Makefile.inc,v 1.14 2013/01/23 22:34:37 matt Exp $
+#	$NetBSD: Makefile.inc,v 1.15 2013/02/06 07:18:15 matt Exp $
 
 SRCS+=	byte_swap_2.S byte_swap_4.S
 SRCS+=	ffs.S
 SRCS+=	divsi3.S udivsi3.S divide.S clzsi2.S modsi3.S umodsi3.S
 SRCS+=	memcmp.S memcpy.S memset.S memmove.S strcmp.S strncmp.S
 
-.if ${MACHINE_ARCH} == earm || ${MACHINE_ARCH} == earmeb
+.if ${MACHINE_ARCH:Mearm*} != 
 SRCS+=	__aeabi_ldivmod.S __aeabi_uldivmod.S __aeabi_lcmp.c __aeabi_ulcmp.c
 .endif



CVS commit: src/sys/lib/libkern/arch/arm

2013-01-23 Thread Michael Lorenz
Module Name:src
Committed By:   macallan
Date:   Wed Jan 23 20:38:28 UTC 2013

Modified Files:
src/sys/lib/libkern/arch/arm: Makefile.inc

Log Message:
pull in strnlen.S


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 src/sys/lib/libkern/arch/arm/Makefile.inc

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/lib/libkern/arch/arm/Makefile.inc
diff -u src/sys/lib/libkern/arch/arm/Makefile.inc:1.12 src/sys/lib/libkern/arch/arm/Makefile.inc:1.13
--- src/sys/lib/libkern/arch/arm/Makefile.inc:1.12	Tue Oct 30 16:36:03 2012
+++ src/sys/lib/libkern/arch/arm/Makefile.inc	Wed Jan 23 20:38:27 2013
@@ -1,9 +1,9 @@
-#	$NetBSD: Makefile.inc,v 1.12 2012/10/30 16:36:03 christos Exp $
+#	$NetBSD: Makefile.inc,v 1.13 2013/01/23 20:38:27 macallan Exp $
 
 SRCS+=	byte_swap_2.S byte_swap_4.S
 SRCS+=	ffs.S
 SRCS+=	divsi3.S udivsi3.S divide.S clzsi2.S modsi3.S umodsi3.S
-SRCS+=	memcmp.S memcpy.S memset.S memmove.S strcmp.S strncmp.S
+SRCS+=	memcmp.S memcpy.S memset.S memmove.S strcmp.S strncmp.S strnlen.S
 
 .if ${MACHINE_ARCH} == earm || ${MACHINE_ARCH} == earmeb
 SRCS+=	__aeabi_ldivmod.S __aeabi_uldivmod.S __aeabi_lcmp.c __aeabi_ulcmp.c



CVS commit: src/sys/lib/libkern/arch/arm

2012-10-30 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Tue Oct 30 16:36:03 UTC 2012

Modified Files:
src/sys/lib/libkern/arch/arm: Makefile.inc

Log Message:
add new divsi3 related files.


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/sys/lib/libkern/arch/arm/Makefile.inc

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/lib/libkern/arch/arm/Makefile.inc
diff -u src/sys/lib/libkern/arch/arm/Makefile.inc:1.11 src/sys/lib/libkern/arch/arm/Makefile.inc:1.12
--- src/sys/lib/libkern/arch/arm/Makefile.inc:1.11	Tue Oct  9 22:15:31 2012
+++ src/sys/lib/libkern/arch/arm/Makefile.inc	Tue Oct 30 12:36:03 2012
@@ -1,8 +1,8 @@
-#	$NetBSD: Makefile.inc,v 1.11 2012/10/10 02:15:31 christos Exp $
+#	$NetBSD: Makefile.inc,v 1.12 2012/10/30 16:36:03 christos Exp $
 
 SRCS+=	byte_swap_2.S byte_swap_4.S
 SRCS+=	ffs.S
-SRCS+=	divsi3.S clzsi2.S modsi3.S umodsi3.S
+SRCS+=	divsi3.S udivsi3.S divide.S clzsi2.S modsi3.S umodsi3.S
 SRCS+=	memcmp.S memcpy.S memset.S memmove.S strcmp.S strncmp.S
 
 .if ${MACHINE_ARCH} == earm || ${MACHINE_ARCH} == earmeb



CVS commit: src/sys/lib/libkern/arch/arm

2012-08-05 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Mon Aug  6 02:14:57 UTC 2012

Modified Files:
src/sys/lib/libkern/arch/arm: Makefile.inc

Log Message:
If earm*, compile new aeabi runtime routines.


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/sys/lib/libkern/arch/arm/Makefile.inc

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/lib/libkern/arch/arm/Makefile.inc
diff -u src/sys/lib/libkern/arch/arm/Makefile.inc:1.9 src/sys/lib/libkern/arch/arm/Makefile.inc:1.10
--- src/sys/lib/libkern/arch/arm/Makefile.inc:1.9	Fri Aug 14 19:23:53 2009
+++ src/sys/lib/libkern/arch/arm/Makefile.inc	Mon Aug  6 02:14:57 2012
@@ -1,6 +1,10 @@
-#	$NetBSD: Makefile.inc,v 1.9 2009/08/14 19:23:53 dsl Exp $
+#	$NetBSD: Makefile.inc,v 1.10 2012/08/06 02:14:57 matt Exp $
 
 SRCS+=	byte_swap_2.S byte_swap_4.S
 SRCS+=	ffs.S
 SRCS+=	divsi3.S clzsi2.S
 SRCS+=	memcmp.S memcpy.S memset.S memmove.S strcmp.S strncmp.S
+
+.if ${MACHINE_ARCH} == earm || ${MACHINE_ARCH} == earmeb
+SRCS+=	__aeabi_ldivmod.S __aeabi_uldivmod.S __aeabi_lcmp.c __aeabi_ulcmp.c
+.endif