Home | History | Annotate | only in /src/common/lib/libc/arch/arm/string
History log of /src/common/lib/libc/arch/arm/string
RevisionDateAuthorComments
 1.9 17-May-2015  justin branches: 1.9.16;
It is just the __ffssi2 alias we do not want in rump kernel
 1.8 17-May-2015  justin Do not build arm toolchain symbols in the rump kernel

These symbols will be provided at link time and will be
duplicate symbols in rump kernel and libc if defined.

Many have been fixed previously, but these were missed
as did not have a test.
 1.7 23-Jan-2014  martin PR port-arm/48543: do provide __ffssi2 as strong alias (in case libgcc.a gets
not linked in) for now.
OK: skrll@
 1.6 30-Sep-2013  skrll More (stylistic) whitespace.
 1.5 30-Sep-2013  skrll Appease new gas
 1.4 19-Aug-2013  matt Add END() and clarify thumb/arm
 1.3 11-Aug-2013  matt Convert some more conditional instructions to unified syntax
 1.2 03-Jul-2011  matt branches: 1.2.2; 1.2.8;
Add a weak symbol definition for __ffssi2 so that __builtin_ffs will use
this if no strong defintion of __ffssi2 is available.
 1.1 20-Dec-2005  christos branches: 1.1.18;
Merge libkern + libc common files. As requested by core.
 1.1.18.1 28-Aug-2007  matt Add thumb versions (or force to arm32 mode when in thumb mode).
 1.2.8.1 19-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.2.2.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.9.16.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.9.16.1 21-Apr-2020  martin Sync with HEAD
 1.5 26-Mar-2015  justin branches: 1.5.16;
Don't build the __eabi_ aliases in the arm rump kernel.

These are provided by libc in userspace, so leave out of kernel
 1.4 02-Dec-2013  joerg Improve EABI handling of string functions. Most importantly, fix
__aeabi_memset, which has the arguments in the wrong order.
 1.3 19-Aug-2013  matt Add END()
 1.2 11-Aug-2013  matt Switch to unified syntax
use RET/RETc
use push/pop
 1.1 20-Dec-2005  christos branches: 1.1.18; 1.1.50; 1.1.56;
Merge libkern + libc common files. As requested by core.
 1.1.56.1 19-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.50.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.18.1 28-Aug-2007  matt Add thumb versions (or force to arm32 mode when in thumb mode).
 1.5.16.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.5.16.1 21-Apr-2020  martin Sync with HEAD
 1.8 07-Jun-2015  joerg branches: 1.8.16;
Add ARM EABI aliases for aligned arguments.
 1.7 26-Mar-2015  justin Don't build the __eabi_ aliases in the arm rump kernel.

These are provided by libc in userspace, so leave out of kernel
 1.6 02-Dec-2013  joerg branches: 1.6.4;
Improve EABI handling of string functions. Most importantly, fix
__aeabi_memset, which has the arguments in the wrong order.
 1.5 20-Aug-2013  matt Unless we are using an XSCALE, default to the normal arm version of memcpy.
 1.4 15-Feb-2013  matt #include <arm/cdefs.h> to get _ARM_ARCH_DWORD_OK
 1.3 08-Feb-2013  matt Fix typo.
 1.2 12-Dec-2012  matt Change __XSCALE__ to _ARM_ARCH_DWORD_OK so that any cpu with dword load/store
can use it.
 1.1 20-Dec-2005  christos branches: 1.1.50; 1.1.54; 1.1.56;
Merge libkern + libc common files. As requested by core.
 1.1.56.2 19-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.56.1 25-Feb-2013  tls resync with head
 1.1.54.3 15-Feb-2013  matt #include <arm/cdefs.h> to get _ARM_ARCH_DWORD_OK
 1.1.54.2 08-Feb-2013  matt Fix typo.
 1.1.54.1 07-Feb-2013  matt Sync with HEAD
 1.1.50.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.50.1 16-Jan-2013  yamt sync with (a bit old) head
 1.6.4.1 10-Jun-2015  snj Pull up following revision(s) (requested by joerg in ticket #834):
common/lib/libc/arch/arm/string/memcpy.S: revision 1.8
Add ARM EABI aliases for aligned arguments.
 1.8.16.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.8.16.1 21-Apr-2020  martin Sync with HEAD
 1.7 24-Jan-2023  mlelstv Fix two signed comparisons that were missed in the last patch.
Found be rillig@
 1.6 19-Jan-2023  mlelstv Use unsigned comparisons for pointers and size_t values.
 1.5 02-Dec-2013  joerg branches: 1.5.26; 1.5.40;
Improve EABI handling of string functions. Most importantly, fix
__aeabi_memset, which has the arguments in the wrong order.
 1.4 11-Aug-2013  matt Switch to unified syntax
use RET/RETc
use push/pop
 1.3 28-Jan-2013  matt Add aeabi strong aliases.
 1.2 28-Apr-2008  martin branches: 1.2.4; 1.2.24; 1.2.26;
Remove clause 3 and 4 from TNF licenses
 1.1 20-Dec-2005  christos branches: 1.1.18; 1.1.26;
Merge libkern + libc common files. As requested by core.
 1.1.26.1 18-May-2008  yamt sync with head.
 1.1.18.1 28-Aug-2007  matt Add thumb versions (or force to arm32 mode when in thumb mode).
 1.2.26.2 19-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.2.26.1 25-Feb-2013  tls resync with head
 1.2.24.1 07-Feb-2013  matt Sync with HEAD
 1.2.4.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.5.40.1 20-Jul-2024  martin Pull up following revision(s) (requested by rin in ticket #745):

common/lib/libc/arch/arm/string/memcpy_arm.S: revision 1.6
common/lib/libc/arch/arm/string/memcpy_arm.S: revision 1.7
common/lib/libc/arch/arm/string/memcpy_xscale.S: revision 1.6
common/lib/libc/arch/arm/string/memcpy_neon.S: revision 1.2
common/lib/libc/arch/arm/string/memset_naive.S: revision 1.2
common/lib/libc/arch/arm/string/memmove.S: revision 1.11
common/lib/libc/arch/arm/string/strlen_neon.S: revision 1.4
common/lib/libc/arch/arm/string/memset.S: revision 1.9

Use unsigned comparisons for pointers and size_t values.

Fix two signed comparisons that were missed in the last patch.

Found be rillig@
 1.5.26.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.5.26.1 21-Apr-2020  martin Sync with HEAD
 1.3 27-Feb-2025  andvar Fix various typos in comments.
 1.2 19-Jan-2023  mlelstv branches: 1.2.6;
Use unsigned comparisons for pointers and size_t values.
 1.1 03-Jan-2013  matt branches: 1.1.2; 1.1.4; 1.1.8; 1.1.38; 1.1.52;
This is a working version of memcpy implemented using NEON instructions.
Still needs tuning as it is still about 15% than the non-NEON version.
 1.1.52.1 20-Jul-2024  martin Pull up following revision(s) (requested by rin in ticket #745):

common/lib/libc/arch/arm/string/memcpy_arm.S: revision 1.6
common/lib/libc/arch/arm/string/memcpy_arm.S: revision 1.7
common/lib/libc/arch/arm/string/memcpy_xscale.S: revision 1.6
common/lib/libc/arch/arm/string/memcpy_neon.S: revision 1.2
common/lib/libc/arch/arm/string/memset_naive.S: revision 1.2
common/lib/libc/arch/arm/string/memmove.S: revision 1.11
common/lib/libc/arch/arm/string/strlen_neon.S: revision 1.4
common/lib/libc/arch/arm/string/memset.S: revision 1.9

Use unsigned comparisons for pointers and size_t values.

Fix two signed comparisons that were missed in the last patch.

Found be rillig@
 1.1.38.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.1.38.1 21-Apr-2020  martin Sync with HEAD
 1.1.8.2 25-Feb-2013  tls resync with head
 1.1.8.1 03-Jan-2013  tls file memcpy_neon.S was added on branch tls-maxphys on 2013-02-25 00:23:56 +0000
 1.1.4.2 07-Feb-2013  matt Sync with HEAD
 1.1.4.1 03-Jan-2013  matt file memcpy_neon.S was added on branch matt-nb6-plus on 2013-02-07 07:05:59 +0000
 1.1.2.2 23-Jan-2013  yamt sync with head
 1.1.2.1 03-Jan-2013  yamt file memcpy_neon.S was added on branch yamt-pagecache on 2013-01-23 00:04:06 +0000
 1.2.6.1 02-Aug-2025  perseant Sync with HEAD
 1.6 19-Jan-2023  mlelstv Use unsigned comparisons for pointers and size_t values.
 1.5 17-Dec-2013  joerg branches: 1.5.26; 1.5.40;
Write out register pairs for strd.
 1.4 19-Aug-2013  matt Add END(memcpy)
 1.3 11-Aug-2013  matt Switch to unified syntax
use RET/RETc
use push/pop
 1.2 21-Jun-2007  scw branches: 1.2.4; 1.2.34; 1.2.40;
Apply the patch, with some minor tweaks, supplied in PR/36513.
This prevents a possible prefetch past the end of the source buffer.

Note that the semantics of the pld instruction mean that it is unlikely
that this would have caused any problems except in very specific
circumstances in some types of device drivers.
 1.1 20-Dec-2005  christos branches: 1.1.6; 1.1.14;
Merge libkern + libc common files. As requested by core.
 1.1.14.1 03-Sep-2007  wrstuden Sync w/ NetBSD-4-RC_1
 1.1.6.1 22-Jun-2007  liamjfoy Pull up following revision(s) (requested by scw in ticket #741):
common/lib/libc/arch/arm/string/memcpy_xscale.S: revision 1.2
Apply the patch, with some minor tweaks, supplied in PR/36513.
This prevents a possible prefetch past the end of the source buffer.
Note that the semantics of the pld instruction mean that it is unlikely
that this would have caused any problems except in very specific
circumstances in some types of device drivers.
 1.2.40.1 19-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.2.34.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.2.4.1 28-Aug-2007  matt Add thumb versions (or force to arm32 mode when in thumb mode).
 1.5.40.1 20-Jul-2024  martin Pull up following revision(s) (requested by rin in ticket #745):

common/lib/libc/arch/arm/string/memcpy_arm.S: revision 1.6
common/lib/libc/arch/arm/string/memcpy_arm.S: revision 1.7
common/lib/libc/arch/arm/string/memcpy_xscale.S: revision 1.6
common/lib/libc/arch/arm/string/memcpy_neon.S: revision 1.2
common/lib/libc/arch/arm/string/memset_naive.S: revision 1.2
common/lib/libc/arch/arm/string/memmove.S: revision 1.11
common/lib/libc/arch/arm/string/strlen_neon.S: revision 1.4
common/lib/libc/arch/arm/string/memset.S: revision 1.9

Use unsigned comparisons for pointers and size_t values.

Fix two signed comparisons that were missed in the last patch.

Found be rillig@
 1.5.26.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.5.26.1 21-Apr-2020  martin Sync with HEAD
 1.11 19-Jan-2023  mlelstv Use unsigned comparisons for pointers and size_t values.
 1.10 13-Apr-2017  skrll branches: 1.10.12; 1.10.26;
Comment alignment. No functional change.
 1.9 26-Mar-2015  justin branches: 1.9.2; 1.9.4;
Don't build the __eabi_ aliases in the arm rump kernel.

These are provided by libc in userspace, so leave out of kernel
 1.8 02-Dec-2013  joerg Improve EABI handling of string functions. Most importantly, fix
__aeabi_memset, which has the arguments in the wrong order.
 1.7 30-Nov-2013  joerg Use PLT_SYM.
 1.6 19-Aug-2013  matt Add END()
 1.5 11-Aug-2013  matt Switch to unified syntax
use RET/RETc
use push/pop
 1.4 28-Jan-2013  matt Add aeabi strong aliases.
 1.3 28-Apr-2008  martin branches: 1.3.4; 1.3.24; 1.3.26;
Remove clause 3 and 4 from TNF licenses
 1.2 20-Jun-2007  scw branches: 1.2.4; 1.2.10;
Apply the patch supplied in PR/36512 to fix the buffer overlap check.
 1.1 20-Dec-2005  christos branches: 1.1.6; 1.1.14;
Merge libkern + libc common files. As requested by core.
 1.1.14.1 03-Sep-2007  wrstuden Sync w/ NetBSD-4-RC_1
 1.1.6.1 21-Jun-2007  liamjfoy Pull up following revision(s) (requested by scw in ticket #740):
common/lib/libc/arch/arm/string/memmove.S: revision 1.2
Apply the patch supplied in PR/36512 to fix the buffer overlap check.
 1.2.10.1 18-May-2008  yamt sync with head.
 1.2.4.1 28-Aug-2007  matt Add thumb versions (or force to arm32 mode when in thumb mode).
 1.3.26.2 19-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.3.26.1 25-Feb-2013  tls resync with head
 1.3.24.1 07-Feb-2013  matt Sync with HEAD
 1.3.4.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.9.4.1 21-Apr-2017  bouyer Sync with HEAD
 1.9.2.1 26-Apr-2017  pgoyette Sync with HEAD
 1.10.26.1 20-Jul-2024  martin Pull up following revision(s) (requested by rin in ticket #745):

common/lib/libc/arch/arm/string/memcpy_arm.S: revision 1.6
common/lib/libc/arch/arm/string/memcpy_arm.S: revision 1.7
common/lib/libc/arch/arm/string/memcpy_xscale.S: revision 1.6
common/lib/libc/arch/arm/string/memcpy_neon.S: revision 1.2
common/lib/libc/arch/arm/string/memset_naive.S: revision 1.2
common/lib/libc/arch/arm/string/memmove.S: revision 1.11
common/lib/libc/arch/arm/string/strlen_neon.S: revision 1.4
common/lib/libc/arch/arm/string/memset.S: revision 1.9

Use unsigned comparisons for pointers and size_t values.

Fix two signed comparisons that were missed in the last patch.

Found be rillig@
 1.10.12.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.10.12.1 21-Apr-2020  martin Sync with HEAD
 1.9 19-Jan-2023  mlelstv Use unsigned comparisons for pointers and size_t values.
 1.8 26-Mar-2015  justin branches: 1.8.16; 1.8.30;
Don't build the __eabi_ aliases in the arm rump kernel.

These are provided by libc in userspace, so leave out of kernel
 1.7 02-Dec-2013  joerg Improve EABI handling of string functions. Most importantly, fix
__aeabi_memset, which has the arguments in the wrong order.
 1.6 30-Nov-2013  joerg Use explicit form of register pair operations by specifying both.
 1.5 19-Aug-2013  matt Add END()
 1.4 11-Aug-2013  matt Switch to unified syntax
use RET/RETc
use push/pop
 1.3 28-Jan-2013  matt Add aeabi strong aliases.
 1.2 12-Dec-2012  matt Change __XSCALE__ to _ARM_ARCH_DWORD_OK so that any cpu with strd can use it.
 1.1 20-Dec-2005  christos branches: 1.1.18; 1.1.50; 1.1.54; 1.1.56;
Merge libkern + libc common files. As requested by core.
 1.1.56.2 19-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.56.1 25-Feb-2013  tls resync with head
 1.1.54.1 07-Feb-2013  matt Sync with HEAD
 1.1.50.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.50.1 16-Jan-2013  yamt sync with (a bit old) head
 1.1.18.1 28-Aug-2007  matt Add thumb versions (or force to arm32 mode when in thumb mode).
 1.8.30.1 20-Jul-2024  martin Pull up following revision(s) (requested by rin in ticket #745):

common/lib/libc/arch/arm/string/memcpy_arm.S: revision 1.6
common/lib/libc/arch/arm/string/memcpy_arm.S: revision 1.7
common/lib/libc/arch/arm/string/memcpy_xscale.S: revision 1.6
common/lib/libc/arch/arm/string/memcpy_neon.S: revision 1.2
common/lib/libc/arch/arm/string/memset_naive.S: revision 1.2
common/lib/libc/arch/arm/string/memmove.S: revision 1.11
common/lib/libc/arch/arm/string/strlen_neon.S: revision 1.4
common/lib/libc/arch/arm/string/memset.S: revision 1.9

Use unsigned comparisons for pointers and size_t values.

Fix two signed comparisons that were missed in the last patch.

Found be rillig@
 1.8.16.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.8.16.1 21-Apr-2020  martin Sync with HEAD
 1.2 14-Jan-2013  matt branches: 1.2.2; 1.2.4; 1.2.8; 1.2.38;
Fix two typos
 1.1 12-Jan-2013  matt A version of memset that can do NEON, VFP as well as normal arm instructions
 1.2.38.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.2.38.1 21-Apr-2020  martin Sync with HEAD
 1.2.8.2 25-Feb-2013  tls resync with head
 1.2.8.1 14-Jan-2013  tls file memset_arm.S was added on branch tls-maxphys on 2013-02-25 00:23:56 +0000
 1.2.4.2 07-Feb-2013  matt Sync with HEAD
 1.2.4.1 14-Jan-2013  matt file memset_arm.S was added on branch matt-nb6-plus on 2013-02-07 07:05:59 +0000
 1.2.2.2 23-Jan-2013  yamt sync with head
 1.2.2.1 14-Jan-2013  yamt file memset_arm.S was added on branch yamt-pagecache on 2013-01-23 00:04:06 +0000
 1.2 19-Jan-2023  mlelstv Use unsigned comparisons for pointers and size_t values.
 1.1 08-Jan-2013  matt branches: 1.1.2; 1.1.4; 1.1.8; 1.1.38; 1.1.52;
Add a simplier version of memset which is less than 1/2 the size of the
current one. On a Cortex-A9, this is about 15%-30% faster than the current
libc version. This is not a trivial implementation since that was an order
magnitude slower than the existing libc version.
 1.1.52.1 20-Jul-2024  martin Pull up following revision(s) (requested by rin in ticket #745):

common/lib/libc/arch/arm/string/memcpy_arm.S: revision 1.6
common/lib/libc/arch/arm/string/memcpy_arm.S: revision 1.7
common/lib/libc/arch/arm/string/memcpy_xscale.S: revision 1.6
common/lib/libc/arch/arm/string/memcpy_neon.S: revision 1.2
common/lib/libc/arch/arm/string/memset_naive.S: revision 1.2
common/lib/libc/arch/arm/string/memmove.S: revision 1.11
common/lib/libc/arch/arm/string/strlen_neon.S: revision 1.4
common/lib/libc/arch/arm/string/memset.S: revision 1.9

Use unsigned comparisons for pointers and size_t values.

Fix two signed comparisons that were missed in the last patch.

Found be rillig@
 1.1.38.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.1.38.1 21-Apr-2020  martin Sync with HEAD
 1.1.8.2 25-Feb-2013  tls resync with head
 1.1.8.1 08-Jan-2013  tls file memset_naive.S was added on branch tls-maxphys on 2013-02-25 00:23:56 +0000
 1.1.4.2 07-Feb-2013  matt Sync with HEAD
 1.1.4.1 08-Jan-2013  matt file memset_naive.S was added on branch matt-nb6-plus on 2013-02-07 07:05:59 +0000
 1.1.2.2 23-Jan-2013  yamt sync with head
 1.1.2.1 08-Jan-2013  yamt file memset_naive.S was added on branch yamt-pagecache on 2013-01-23 00:04:06 +0000
 1.1 13-Dec-2012  matt branches: 1.1.2; 1.1.4; 1.1.8; 1.1.38;
Add a NEON(only) implementation of memset.
This is a work in progress.
 1.1.38.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.1.38.1 21-Apr-2020  martin Sync with HEAD
 1.1.8.2 25-Feb-2013  tls resync with head
 1.1.8.1 13-Dec-2012  tls file memset_neon.S was added on branch tls-maxphys on 2013-02-25 00:23:56 +0000
 1.1.4.2 07-Feb-2013  matt Sync with HEAD
 1.1.4.1 13-Dec-2012  matt file memset_neon.S was added on branch matt-nb6-plus on 2013-02-07 07:06:00 +0000
 1.1.2.2 16-Jan-2013  yamt sync with (a bit old) head
 1.1.2.1 13-Dec-2012  yamt file memset_neon.S was added on branch yamt-pagecache on 2013-01-16 05:25:53 +0000
 1.1 23-Jan-2013  matt branches: 1.1.2; 1.1.6; 1.1.14; 1.1.38;
Switch to using ARM assembly versions of strcat, strchr, strrchr.
 1.1.38.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.1.38.1 21-Apr-2020  martin Sync with HEAD
 1.1.14.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.14.1 23-Jan-2013  yamt file strcat.S was added on branch yamt-pagecache on 2014-05-22 11:26:28 +0000
 1.1.6.2 25-Feb-2013  tls resync with head
 1.1.6.1 23-Jan-2013  tls file strcat.S was added on branch tls-maxphys on 2013-02-25 00:23:57 +0000
 1.1.2.2 07-Feb-2013  matt Sync with HEAD
 1.1.2.1 23-Jan-2013  matt file strcat.S was added on branch matt-nb6-plus on 2013-02-07 07:06:00 +0000
 1.6 06-May-2014  joerg branches: 1.6.24;
Make EHABI optional.
 1.5 05-Sep-2013  matt branches: 1.5.2;
Use __ARM_EABI__ and new __UNWIND_TABLES__ to decide when to use .cfi ops
 1.4 22-Aug-2013  matt Don't include .cfi info if _KERNEL || _STANDALONE
 1.3 19-Aug-2013  matt Add .cfi ops if EABI.
Thumbify.
 1.2 15-Jan-2013  matt branches: 1.2.2; 1.2.4; 1.2.8;
Add missing ! on str
 1.1 14-Jan-2013  matt Add a native version of strcat which uses the optimized strlen and strcpy
routines.
 1.2.8.3 19-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.2.8.2 25-Feb-2013  tls resync with head
 1.2.8.1 15-Jan-2013  tls file strcat_arm.S was added on branch tls-maxphys on 2013-02-25 00:23:57 +0000
 1.2.4.2 07-Feb-2013  matt Sync with HEAD
 1.2.4.1 15-Jan-2013  matt file strcat_arm.S was added on branch matt-nb6-plus on 2013-02-07 07:06:00 +0000
 1.2.2.3 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.2.2.2 23-Jan-2013  yamt sync with head
 1.2.2.1 15-Jan-2013  yamt file strcat_arm.S was added on branch yamt-pagecache on 2013-01-23 00:04:06 +0000
 1.5.2.1 10-Aug-2014  tls Rebase.
 1.6.24.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.6.24.1 21-Apr-2020  martin Sync with HEAD
 1.3 19-Aug-2013  matt branches: 1.3.26;
cbnz/cbz can not branch backwards so nuke 'em.
Use the same register usage in strlen as in strnlen
 1.2 19-Aug-2013  matt Thumbify
 1.1 14-Jan-2013  matt branches: 1.1.2; 1.1.4; 1.1.8;
Add a simple version of strcat.
 1.1.8.3 19-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.8.2 25-Feb-2013  tls resync with head
 1.1.8.1 14-Jan-2013  tls file strcat_naive.S was added on branch tls-maxphys on 2013-02-25 00:23:57 +0000
 1.1.4.2 07-Feb-2013  matt Sync with HEAD
 1.1.4.1 14-Jan-2013  matt file strcat_naive.S was added on branch matt-nb6-plus on 2013-02-07 07:06:00 +0000
 1.1.2.3 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.2.2 23-Jan-2013  yamt sync with head
 1.1.2.1 14-Jan-2013  yamt file strcat_naive.S was added on branch yamt-pagecache on 2013-01-23 00:04:06 +0000
 1.3.26.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.3.26.1 21-Apr-2020  martin Sync with HEAD
 1.4 20-Aug-2013  matt branches: 1.4.4; 1.4.28;
Use the arm versions of strlen/strchr/strrchr if compiling thumb2
 1.3 19-Aug-2013  matt For Thumb, use naive version
 1.2 23-Jan-2013  matt branches: 1.2.2; 1.2.6;
Add index/rindex strong aiases.
 1.1 23-Jan-2013  matt Switch to using ARM assembly versions of strcat, strchr, strrchr.
 1.2.6.3 19-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.2.6.2 25-Feb-2013  tls resync with head
 1.2.6.1 23-Jan-2013  tls file strchr.S was added on branch tls-maxphys on 2013-02-25 00:23:57 +0000
 1.2.2.2 07-Feb-2013  matt Sync with HEAD
 1.2.2.1 23-Jan-2013  matt file strchr.S was added on branch matt-nb6-plus on 2013-02-07 07:06:00 +0000
 1.4.28.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.4.28.1 21-Apr-2020  martin Sync with HEAD
 1.4.4.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.4.4.1 20-Aug-2013  yamt file strchr.S was added on branch yamt-pagecache on 2014-05-22 11:26:28 +0000
 1.8 19-Aug-2013  matt branches: 1.8.26;
Add two thumb2 bits.
 1.7 19-Aug-2013  matt Missing one teq -> cmp
 1.6 19-Aug-2013  matt Swap use of r1 and ip
teq -> cmp.
add s to few instructions
(thumbify part 1)
 1.5 08-Feb-2013  matt branches: 1.5.4;
Fix corner cases when searching for NUL.
 1.4 07-Feb-2013  matt branches: 1.4.2;
orrne wants 3 registers
 1.3 26-Jan-2013  matt Fix bug in detecting EOS/match on armv6+.
 1.2 15-Jan-2013  matt branches: 1.2.2;
Fix case when searching for NUL.
 1.1 15-Jan-2013  matt Add an ARM optimized version of strchr.
 1.2.2.3 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.2.2.2 23-Jan-2013  yamt sync with head
 1.2.2.1 15-Jan-2013  yamt file strchr_arm.S was added on branch yamt-pagecache on 2013-01-23 00:04:06 +0000
 1.4.2.3 08-Feb-2013  matt Sync with HEAD.
 1.4.2.2 07-Feb-2013  matt Sync with HEAD
 1.4.2.1 07-Feb-2013  matt file strchr_arm.S was added on branch matt-nb6-plus on 2013-02-07 07:06:00 +0000
 1.5.4.3 19-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.5.4.2 25-Feb-2013  tls resync with head
 1.5.4.1 08-Feb-2013  tls file strchr_arm.S was added on branch tls-maxphys on 2013-02-25 00:23:57 +0000
 1.8.26.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.8.26.1 21-Apr-2020  martin Sync with HEAD
 1.4 19-Aug-2013  matt branches: 1.4.26;
cbnz/cbz can not branch backwards so nuke 'em.
Use the same register usage in strlen as in strnlen
 1.3 19-Aug-2013  matt Thumbify
 1.2 19-Aug-2013  matt ip -> r2
teq -> cmp
 1.1 15-Jan-2013  matt branches: 1.1.2; 1.1.4; 1.1.8;
Add simple/small versions of strchr/strrchr for ARM.
 1.1.8.3 19-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.8.2 25-Feb-2013  tls resync with head
 1.1.8.1 15-Jan-2013  tls file strchr_naive.S was added on branch tls-maxphys on 2013-02-25 00:23:57 +0000
 1.1.4.2 07-Feb-2013  matt Sync with HEAD
 1.1.4.1 15-Jan-2013  matt file strchr_naive.S was added on branch matt-nb6-plus on 2013-02-07 07:06:00 +0000
 1.1.2.3 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.2.2 23-Jan-2013  yamt sync with head
 1.1.2.1 15-Jan-2013  yamt file strchr_naive.S was added on branch yamt-pagecache on 2013-01-23 00:04:06 +0000
 1.4.26.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.4.26.1 21-Apr-2020  martin Sync with HEAD
 1.2 19-Aug-2013  matt branches: 1.2.26;
Thumbify
 1.1 20-Dec-2005  christos branches: 1.1.18; 1.1.50; 1.1.56;
Merge libkern + libc common files. As requested by core.
 1.1.56.1 19-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.50.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.18.1 28-Aug-2007  matt Add thumb versions (or force to arm32 mode when in thumb mode).
 1.2.26.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.2.26.1 21-Apr-2020  martin Sync with HEAD
 1.5 20-Aug-2013  matt branches: 1.5.26;
If compiling standalone with Thumb, use the thumb version instead of the
naive version.
 1.4 10-Jan-2013  matt branches: 1.4.2; 1.4.4; 1.4.8;
use #if defined(xxx) instead of ifdef
 1.3 08-Jan-2013  matt Depending on _STANDALONE include the "naive" version or the normal arm version.
 1.2 02-Jan-2013  matt Deal with _LIBC (aliases, etc).
Add missing #endif.
 1.1 02-Jan-2013  matt Add an assembly version of strcpy/strncpy/strlcpy.
(they all use a common source with defines to determine which to build).
 1.4.8.3 19-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.4.8.2 25-Feb-2013  tls resync with head
 1.4.8.1 10-Jan-2013  tls file strcpy.S was added on branch tls-maxphys on 2013-02-25 00:23:57 +0000
 1.4.4.2 07-Feb-2013  matt Sync with HEAD
 1.4.4.1 10-Jan-2013  matt file strcpy.S was added on branch matt-nb6-plus on 2013-02-07 07:06:01 +0000
 1.4.2.3 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.4.2.2 23-Jan-2013  yamt sync with head
 1.4.2.1 10-Jan-2013  yamt file strcpy.S was added on branch yamt-pagecache on 2013-01-23 00:04:06 +0000
 1.5.26.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.5.26.1 21-Apr-2020  martin Sync with HEAD
 1.7 08-Feb-2024  andvar fix misplaced or missing "e" in words with "ment" ending (argument, implement,
increment, decrement, alignment), in comments, documentation, log messages.
 1.6 14-Jan-2017  christos branches: 1.6.14;
fix rump
 1.5 14-Jan-2017  christos fix weak symbols. More work needs to be done for memcpy/strlen etc.
 1.4 13-Jan-2017  christos No need to include namespace.h; no other assembly code does.
 1.3 11-Aug-2013  matt branches: 1.3.8;
Switch to unified syntax
use RET/RETc
use push/pop
 1.2 10-Jan-2013  matt branches: 1.2.2; 1.2.4; 1.2.8;
Fix a typo in strlcpy which caused to not deal with NULs predecing the
string properly.
 1.1 08-Jan-2013  matt Rename strlen.S and strcpy.S to strlen_arm.S and strcpy_arm.S
 1.2.8.3 19-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.2.8.2 25-Feb-2013  tls resync with head
 1.2.8.1 10-Jan-2013  tls file strcpy_arm.S was added on branch tls-maxphys on 2013-02-25 00:23:58 +0000
 1.2.4.2 07-Feb-2013  matt Sync with HEAD
 1.2.4.1 10-Jan-2013  matt file strcpy_arm.S was added on branch matt-nb6-plus on 2013-02-07 07:06:01 +0000
 1.2.2.3 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.2.2.2 23-Jan-2013  yamt sync with head
 1.2.2.1 10-Jan-2013  yamt file strcpy_arm.S was added on branch yamt-pagecache on 2013-01-23 00:04:06 +0000
 1.3.8.1 20-Mar-2017  pgoyette Sync with HEAD
 1.6.14.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.6.14.1 21-Apr-2020  martin Sync with HEAD
 1.8 14-Jan-2017  christos branches: 1.8.14;
fix standalone
 1.7 14-Jan-2017  christos fix standalone
 1.6 14-Jan-2017  christos fix rump
 1.5 13-Jan-2017  christos No need to include namespace.h; no other assembly code does.
 1.4 20-Aug-2013  matt branches: 1.4.8;
write of final NUL in strlcpy doesn't need to be post-incremented
 1.3 11-Aug-2013  matt Convert some more conditional instructions to unified syntax
 1.2 10-Jan-2013  matt branches: 1.2.2; 1.2.4; 1.2.8;
Add weak alias for strlcpy
 1.1 08-Jan-2013  matt Add simple/small versions of the str* functions. Suitable for libsa, etc.
 1.2.8.3 19-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.2.8.2 25-Feb-2013  tls resync with head
 1.2.8.1 10-Jan-2013  tls file strcpy_naive.S was added on branch tls-maxphys on 2013-02-25 00:23:58 +0000
 1.2.4.2 07-Feb-2013  matt Sync with HEAD
 1.2.4.1 10-Jan-2013  matt file strcpy_naive.S was added on branch matt-nb6-plus on 2013-02-07 07:06:01 +0000
 1.2.2.3 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.2.2.2 23-Jan-2013  yamt sync with head
 1.2.2.1 10-Jan-2013  yamt file strcpy_naive.S was added on branch yamt-pagecache on 2013-01-23 00:04:06 +0000
 1.4.8.1 20-Mar-2017  pgoyette Sync with HEAD
 1.8.14.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.8.14.1 21-Apr-2020  martin Sync with HEAD
 1.3 14-Jan-2017  christos branches: 1.3.14;
fix weak symbols. More work needs to be done for memcpy/strlen etc.
 1.2 13-Jan-2017  christos No need to include namespace.h; no other assembly code does.
 1.1 20-Aug-2013  matt branches: 1.1.4; 1.1.8; 1.1.12;
Thumb versions of strcpy/strlcpy/strncpy
 1.1.12.1 20-Mar-2017  pgoyette Sync with HEAD
 1.1.8.2 19-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.8.1 20-Aug-2013  tls file strcpy_thumb.S was added on branch tls-maxphys on 2014-08-19 23:45:12 +0000
 1.1.4.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.4.1 20-Aug-2013  yamt file strcpy_thumb.S was added on branch yamt-pagecache on 2014-05-22 11:26:28 +0000
 1.3.14.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.3.14.1 21-Apr-2020  martin Sync with HEAD
 1.4 14-Jan-2017  christos branches: 1.4.14;
fix weak symbols. More work needs to be done for memcpy/strlen etc.
 1.3 13-Jan-2017  christos No need to include namespace.h; no other assembly code does.
 1.2 20-Aug-2013  matt branches: 1.2.4; 1.2.10;
strlcat_arm.S is smaller than strlcat_naive.S so always use it.
 1.1 23-Jan-2013  matt branches: 1.1.2; 1.1.6;
Enable ARM assembly versions of strlcat and strnlen.
 1.1.6.3 19-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.6.2 25-Feb-2013  tls resync with head
 1.1.6.1 23-Jan-2013  tls file strlcat.S was added on branch tls-maxphys on 2013-02-25 00:23:58 +0000
 1.1.2.2 07-Feb-2013  matt Sync with HEAD
 1.1.2.1 23-Jan-2013  matt file strlcat.S was added on branch matt-nb6-plus on 2013-02-07 07:06:01 +0000
 1.2.10.1 20-Mar-2017  pgoyette Sync with HEAD
 1.2.4.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.2.4.1 20-Aug-2013  yamt file strlcat.S was added on branch yamt-pagecache on 2014-05-22 11:26:28 +0000
 1.4.14.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.4.14.1 21-Apr-2020  martin Sync with HEAD
 1.6 06-May-2014  joerg branches: 1.6.2; 1.6.26;
Make EHABI optional.
 1.5 05-Sep-2013  matt branches: 1.5.2;
Use __ARM_EABI__ and new __UNWIND_TABLES__ to decide when to use .cfi ops
 1.4 22-Aug-2013  matt Don't include .cfi info if _KERNEL || _STANDALONE
 1.3 19-Aug-2013  matt fix cfi_register -> cfi_offset
 1.2 19-Aug-2013  matt Add .cfi for __ARM_EABI__
Thumbify
 1.1 23-Jan-2013  matt branches: 1.1.2; 1.1.6;
Add ARM assembly of strlcat which is implemented using (the ARM optimized)
strnlen and strlcpy.
 1.1.6.3 19-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.6.2 25-Feb-2013  tls resync with head
 1.1.6.1 23-Jan-2013  tls file strlcat_arm.S was added on branch tls-maxphys on 2013-02-25 00:23:58 +0000
 1.1.2.2 07-Feb-2013  matt Sync with HEAD
 1.1.2.1 23-Jan-2013  matt file strlcat_arm.S was added on branch matt-nb6-plus on 2013-02-07 07:06:01 +0000
 1.5.2.1 10-Aug-2014  tls Rebase.
 1.6.26.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.6.26.1 21-Apr-2020  martin Sync with HEAD
 1.6.2.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.6.2.1 06-May-2014  yamt file strlcat_arm.S was added on branch yamt-pagecache on 2014-05-22 11:26:28 +0000
 1.3 22-Aug-2013  matt branches: 1.3.26;
Don't include .cfi info if _KERNEL || _STANDALONE
 1.2 11-Aug-2013  matt Convert some more conditional instructions to unified syntax
 1.1 18-Jan-2013  matt branches: 1.1.2; 1.1.4; 1.1.8;
Simple version of strlcat for ARM.
 1.1.8.3 19-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.8.2 25-Feb-2013  tls resync with head
 1.1.8.1 18-Jan-2013  tls file strlcat_naive.S was added on branch tls-maxphys on 2013-02-25 00:23:58 +0000
 1.1.4.2 07-Feb-2013  matt Sync with HEAD
 1.1.4.1 18-Jan-2013  matt file strlcat_naive.S was added on branch matt-nb6-plus on 2013-02-07 07:06:01 +0000
 1.1.2.3 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.2.2 23-Jan-2013  yamt sync with head
 1.1.2.1 18-Jan-2013  yamt file strlcat_naive.S was added on branch yamt-pagecache on 2013-01-23 00:04:06 +0000
 1.3.26.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.3.26.1 21-Apr-2020  martin Sync with HEAD
 1.5 20-Aug-2013  matt branches: 1.5.26;
If compiling standalone with Thumb, use the thumb version instead of the
naive version.
 1.4 10-Jan-2013  matt branches: 1.4.2; 1.4.4; 1.4.8;
Back out workaround.
 1.3 10-Jan-2013  matt Use the naive version of strlcpy until the longer one is fixed (it's still
faster than the C version).
 1.2 10-Jan-2013  matt use #if defined(xxx) instead of ifdef
 1.1 02-Jan-2013  matt Add an assembly version of strcpy/strncpy/strlcpy.
(they all use a common source with defines to determine which to build).
 1.4.8.3 19-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.4.8.2 25-Feb-2013  tls resync with head
 1.4.8.1 10-Jan-2013  tls file strlcpy.S was added on branch tls-maxphys on 2013-02-25 00:23:58 +0000
 1.4.4.2 07-Feb-2013  matt Sync with HEAD
 1.4.4.1 10-Jan-2013  matt file strlcpy.S was added on branch matt-nb6-plus on 2013-02-07 07:06:01 +0000
 1.4.2.3 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.4.2.2 23-Jan-2013  yamt sync with head
 1.4.2.1 10-Jan-2013  yamt file strlcpy.S was added on branch yamt-pagecache on 2013-01-23 00:04:06 +0000
 1.5.26.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.5.26.1 21-Apr-2020  martin Sync with HEAD
 1.4 20-Aug-2013  matt branches: 1.4.26;
Use the arm versions of strlen/strchr/strrchr if compiling thumb2
 1.3 19-Aug-2013  matt For Thumb, use naive version
 1.2 08-Jan-2013  matt branches: 1.2.2; 1.2.4; 1.2.8;
Depending on _STANDALONE include the "naive" version or the normal arm version.
 1.1 02-Jan-2013  matt Rename strlen_armv6.S to strlen.S since this is no longer armv6 dependent.
 1.2.8.3 19-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.2.8.2 25-Feb-2013  tls resync with head
 1.2.8.1 08-Jan-2013  tls file strlen.S was added on branch tls-maxphys on 2013-02-25 00:23:58 +0000
 1.2.4.2 07-Feb-2013  matt Sync with HEAD
 1.2.4.1 08-Jan-2013  matt file strlen.S was added on branch matt-nb6-plus on 2013-02-07 07:06:01 +0000
 1.2.2.3 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.2.2.2 23-Jan-2013  yamt sync with head
 1.2.2.1 08-Jan-2013  yamt file strlen.S was added on branch yamt-pagecache on 2013-01-23 00:04:06 +0000
 1.4.26.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.4.26.1 21-Apr-2020  martin Sync with HEAD
 1.11 15-Jan-2023  skrll Fix strnlen with a large maxlen argument by using unsigned comparison
conditions - from mlelstv.

I had a similar, but not quite as good patch.
 1.10 03-Dec-2022  skrll branches: 1.10.2;
Fix some comments
 1.9 06-May-2014  joerg branches: 1.9.24; 1.9.26;
Make EHABI optional.
 1.8 05-Sep-2013  matt branches: 1.8.2;
Use __ARM_EABI__ and new __UNWIND_TABLES__ to decide when to use .cfi ops
 1.7 22-Aug-2013  matt Don't include .cfi info if _KERNEL || _STANDALONE
 1.6 20-Aug-2013  matt Add a missing it gt before movgt for thumb
 1.5 20-Aug-2013  matt thumbify (part2)
 1.4 19-Aug-2013  matt For EABI, add .cfi ops
 1.3 23-Jan-2013  matt branches: 1.3.2; 1.3.6;
Add support for strnlen.
 1.2 09-Jan-2013  matt branches: 1.2.2;
Use movw on armv7 to fill uppper halfword.
 1.1 08-Jan-2013  matt Rename strlen.S and strcpy.S to strlen_arm.S and strcpy_arm.S
 1.2.2.3 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.2.2.2 23-Jan-2013  yamt sync with head
 1.2.2.1 09-Jan-2013  yamt file strlen_arm.S was added on branch yamt-pagecache on 2013-01-23 00:04:06 +0000
 1.3.6.3 19-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.3.6.2 25-Feb-2013  tls resync with head
 1.3.6.1 23-Jan-2013  tls file strlen_arm.S was added on branch tls-maxphys on 2013-02-25 00:23:59 +0000
 1.3.2.2 07-Feb-2013  matt Sync with HEAD
 1.3.2.1 23-Jan-2013  matt file strlen_arm.S was added on branch matt-nb6-plus on 2013-02-07 07:06:02 +0000
 1.8.2.1 10-Aug-2014  tls Rebase.
 1.9.26.1 19-Jan-2023  martin Pull up following revision(s) (requested by skrll in ticket #1567):

common/lib/libc/arch/arm/string/strlen_arm.S: revision 1.11

Fix strnlen with a large maxlen argument by using unsigned comparison
conditions - from mlelstv.

I had a similar, but not quite as good patch.
 1.9.24.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.9.24.1 21-Apr-2020  martin Sync with HEAD
 1.10.2.1 19-Jan-2023  martin Pull up following revision(s) (requested by skrll in ticket #51):

common/lib/libc/arch/arm/string/strlen_arm.S: revision 1.11

Fix strnlen with a large maxlen argument by using unsigned comparison
conditions - from mlelstv.

I had a similar, but not quite as good patch.
 1.4 02-Jan-2013  matt Rename strlen_armv6.S to strlen.S since this is no longer armv6 dependent.
 1.3 31-Dec-2012  matt Make this work on all ARMs but keep the armv6 optimizations. It as fast as
the existing strlen for small string and once strings are 8 bytes or more in
length it starts getting significantly faster. For really long strings,
compared to the existing strlen, this uses about 1/2 of the cycles for the
non-armv6 version and about 1/3 of the cycles for the armv6 version.
 1.2 29-Dec-2012  matt A few slight speedups (remove one instruction from the main loop).
 1.1 28-Dec-2012  matt strlen implementation for armv6 and later. Uses clz and uqadd8 to really
speed the search for NUL. as fast as normal strlen at about a length of
6 or 7 and 2-3 times faster starting around 10.
 1.9 03-Dec-2022  skrll improve a comment
 1.8 19-Aug-2013  matt branches: 1.8.26;
cbnz/cbz can not branch backwards so nuke 'em.
Use the same register usage in strlen as in strnlen
 1.7 19-Aug-2013  matt Thumbify
 1.6 19-Aug-2013  matt Use ip as a temporary
 1.5 19-Aug-2013  matt Change previous use of r2 to r3
 1.4 19-Aug-2013  matt teq -> cmp
ip -> r2
add/sub -> adds/subs
(thumbify part 1)
 1.3 23-Jan-2013  matt branches: 1.3.2; 1.3.6;
Add support for strnlen.
 1.2 08-Jan-2013  pgoyette branches: 1.2.2;
Add missing quote - fix build
 1.1 08-Jan-2013  matt Add simple/small versions of the str* functions. Suitable for libsa, etc.
 1.2.2.3 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.2.2.2 23-Jan-2013  yamt sync with head
 1.2.2.1 08-Jan-2013  yamt file strlen_naive.S was added on branch yamt-pagecache on 2013-01-23 00:04:06 +0000
 1.3.6.3 19-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.3.6.2 25-Feb-2013  tls resync with head
 1.3.6.1 23-Jan-2013  tls file strlen_naive.S was added on branch tls-maxphys on 2013-02-25 00:23:59 +0000
 1.3.2.2 07-Feb-2013  matt Sync with HEAD
 1.3.2.1 23-Jan-2013  matt file strlen_naive.S was added on branch matt-nb6-plus on 2013-02-07 07:06:02 +0000
 1.8.26.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.8.26.1 21-Apr-2020  martin Sync with HEAD
 1.4 19-Jan-2023  mlelstv Use unsigned comparisons for pointers and size_t values.
 1.3 28-Dec-2012  matt branches: 1.3.2; 1.3.4; 1.3.8; 1.3.38; 1.3.52;
Debug. This becomes faster than the normal strlen at about 80 characters.
 1.2 15-Dec-2012  matt Slighly improved (can deal with all 16 bytes being non-NUL and quickly
proceed to next qword).
 1.1 15-Dec-2012  matt Add a NEON implementation of strlen.
 1.3.52.1 20-Jul-2024  martin Pull up following revision(s) (requested by rin in ticket #745):

common/lib/libc/arch/arm/string/memcpy_arm.S: revision 1.6
common/lib/libc/arch/arm/string/memcpy_arm.S: revision 1.7
common/lib/libc/arch/arm/string/memcpy_xscale.S: revision 1.6
common/lib/libc/arch/arm/string/memcpy_neon.S: revision 1.2
common/lib/libc/arch/arm/string/memset_naive.S: revision 1.2
common/lib/libc/arch/arm/string/memmove.S: revision 1.11
common/lib/libc/arch/arm/string/strlen_neon.S: revision 1.4
common/lib/libc/arch/arm/string/memset.S: revision 1.9

Use unsigned comparisons for pointers and size_t values.

Fix two signed comparisons that were missed in the last patch.

Found be rillig@
 1.3.38.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.3.38.1 21-Apr-2020  martin Sync with HEAD
 1.3.8.2 25-Feb-2013  tls resync with head
 1.3.8.1 28-Dec-2012  tls file strlen_neon.S was added on branch tls-maxphys on 2013-02-25 00:23:59 +0000
 1.3.4.2 07-Feb-2013  matt Sync with HEAD
 1.3.4.1 28-Dec-2012  matt file strlen_neon.S was added on branch matt-nb6-plus on 2013-02-07 07:06:02 +0000
 1.3.2.2 23-Jan-2013  yamt sync with head
 1.3.2.1 28-Dec-2012  yamt file strlen_neon.S was added on branch yamt-pagecache on 2013-01-23 00:04:06 +0000
 1.2 19-Aug-2013  matt branches: 1.2.26;
Thumbify
 1.1 20-Dec-2005  christos branches: 1.1.18; 1.1.50; 1.1.56;
Merge libkern + libc common files. As requested by core.
 1.1.56.1 19-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.50.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.18.1 28-Aug-2007  matt Add thumb versions (or force to arm32 mode when in thumb mode).
 1.2.26.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.2.26.1 21-Apr-2020  martin Sync with HEAD
 1.3 20-Aug-2013  matt branches: 1.3.26;
If compiling standalone with Thumb, use the thumb version instead of the
naive version.
 1.2 10-Jan-2013  matt branches: 1.2.2; 1.2.4; 1.2.8;
use #if defined(xxx) instead of ifdef
 1.1 02-Jan-2013  matt Add an assembly version of strcpy/strncpy/strlcpy.
(they all use a common source with defines to determine which to build).
 1.2.8.3 19-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.2.8.2 25-Feb-2013  tls resync with head
 1.2.8.1 10-Jan-2013  tls file strncpy.S was added on branch tls-maxphys on 2013-02-25 00:23:59 +0000
 1.2.4.2 07-Feb-2013  matt Sync with HEAD
 1.2.4.1 10-Jan-2013  matt file strncpy.S was added on branch matt-nb6-plus on 2013-02-07 07:06:02 +0000
 1.2.2.3 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.2.2.2 23-Jan-2013  yamt sync with head
 1.2.2.1 10-Jan-2013  yamt file strncpy.S was added on branch yamt-pagecache on 2013-01-23 00:04:06 +0000
 1.3.26.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.3.26.1 21-Apr-2020  martin Sync with HEAD
 1.3 20-Aug-2013  matt branches: 1.3.4; 1.3.28;
Use the arm versions of strnlen if compiling thumb2
 1.2 19-Aug-2013  matt For Thumb, use naive version
 1.1 23-Jan-2013  matt branches: 1.1.2; 1.1.6;
Enable ARM assembly versions of strlcat and strnlen.
 1.1.6.3 19-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.6.2 25-Feb-2013  tls resync with head
 1.1.6.1 23-Jan-2013  tls file strnlen.S was added on branch tls-maxphys on 2013-02-25 00:23:59 +0000
 1.1.2.2 07-Feb-2013  matt Sync with HEAD
 1.1.2.1 23-Jan-2013  matt file strnlen.S was added on branch matt-nb6-plus on 2013-02-07 07:06:02 +0000
 1.3.28.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.3.28.1 21-Apr-2020  martin Sync with HEAD
 1.3.4.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.3.4.1 20-Aug-2013  yamt file strnlen.S was added on branch yamt-pagecache on 2014-05-22 11:26:28 +0000
 1.4 20-Aug-2013  matt branches: 1.4.4; 1.4.28;
Use the arm versions of strlen/strchr/strrchr if compiling thumb2
 1.3 19-Aug-2013  matt For Thumb, use naive version
 1.2 23-Jan-2013  matt branches: 1.2.2; 1.2.6;
Add index/rindex strong aiases.
 1.1 23-Jan-2013  matt Switch to using ARM assembly versions of strcat, strchr, strrchr.
 1.2.6.3 19-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.2.6.2 25-Feb-2013  tls resync with head
 1.2.6.1 23-Jan-2013  tls file strrchr.S was added on branch tls-maxphys on 2013-02-25 00:23:59 +0000
 1.2.2.2 07-Feb-2013  matt Sync with HEAD
 1.2.2.1 23-Jan-2013  matt file strrchr.S was added on branch matt-nb6-plus on 2013-02-07 07:06:02 +0000
 1.4.28.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.4.28.1 21-Apr-2020  martin Sync with HEAD
 1.4.4.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.4.4.1 20-Aug-2013  yamt file strrchr.S was added on branch yamt-pagecache on 2014-05-22 11:26:28 +0000
 1.6 25-Aug-2013  matt branches: 1.6.26;
move a misplaced #endif
 1.5 20-Aug-2013  matt swap r1 & ip
use adds, eors, etc.
teq -> cmp
 1.4 11-Aug-2013  matt Switch to unified syntax
use RET/RETc
use push/pop
 1.3 08-Feb-2013  matt branches: 1.3.4;
Fix corner cases when searching for NUL.
 1.2 28-Jan-2013  matt branches: 1.2.2;
Deal with an end-of-string condition properly.
 1.1 15-Jan-2013  matt branches: 1.1.2;
Add ARM optimized version of strrchr.
 1.1.2.3 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.2.2 23-Jan-2013  yamt sync with head
 1.1.2.1 15-Jan-2013  yamt file strrchr_arm.S was added on branch yamt-pagecache on 2013-01-23 00:04:06 +0000
 1.2.2.3 08-Feb-2013  matt Sync with HEAD.
 1.2.2.2 07-Feb-2013  matt Sync with HEAD
 1.2.2.1 28-Jan-2013  matt file strrchr_arm.S was added on branch matt-nb6-plus on 2013-02-07 07:06:02 +0000
 1.3.4.3 19-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.3.4.2 25-Feb-2013  tls resync with head
 1.3.4.1 08-Feb-2013  tls file strrchr_arm.S was added on branch tls-maxphys on 2013-02-25 00:23:59 +0000
 1.6.26.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.6.26.1 21-Apr-2020  martin Sync with HEAD
 1.4 19-Aug-2013  matt branches: 1.4.26;
cbnz/cbz can not branch backwards so nuke 'em.
Use the same register usage in strlen as in strnlen
 1.3 19-Aug-2013  matt Thumbify
 1.2 19-Aug-2013  matt ip -> r2
teq -> cmp
 1.1 15-Jan-2013  matt branches: 1.1.2; 1.1.4; 1.1.8;
Add simple/small versions of strchr/strrchr for ARM.
 1.1.8.3 19-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.8.2 25-Feb-2013  tls resync with head
 1.1.8.1 15-Jan-2013  tls file strrchr_naive.S was added on branch tls-maxphys on 2013-02-25 00:23:59 +0000
 1.1.4.2 07-Feb-2013  matt Sync with HEAD
 1.1.4.1 15-Jan-2013  matt file strrchr_naive.S was added on branch matt-nb6-plus on 2013-02-07 07:06:02 +0000
 1.1.2.3 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.2.2 23-Jan-2013  yamt sync with head
 1.1.2.1 15-Jan-2013  yamt file strrchr_naive.S was added on branch yamt-pagecache on 2013-01-23 00:04:06 +0000
 1.4.26.2 21-Apr-2020  martin Ooops, restore accidently removed files from merge mishap
 1.4.26.1 21-Apr-2020  martin Sync with HEAD

RSS XML Feed