CVS commit: src/sys/lib/libkern/arch/arm
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
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
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
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
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
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
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
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
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
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