Home | History | Annotate | only in /src/sys/lib/libkern/arch/arm
History log of /src/sys/lib/libkern/arch/arm
RevisionDateAuthorComments
 1.21 29-Jan-2014  joerg Include compiler-rt in libc, libm and libkern.
 1.20 20-Aug-2013  matt Some assembly files need to compiled -marm since they are Thumb compatible.
 1.19 12-Aug-2013  matt Add EHABI unwind stubs to libkern so prevent errors in linking if unwind
tables are present.
 1.18 21-Jun-2013  matt branches: 1.18.2;
Add back {,u}modsi3 for libkern since if we are building standalone tools
we might be using the old ABI and might need them.
 1.17 20-Jun-2013  matt modsi3/umodsi3 are only needed !EABI arm
 1.16 02-May-2013  matt This change arm, armeb, earm, earmeb, earmhf, earmhfeb so all builds that
share a MACHINE_ARCH for userland so that except for etc, will produce
identical sets.

usr/include/machine now points to usr/include/arm
 1.15 06-Feb-2013  matt Modify earm rule to match any machine_arch starting with earm.
 1.14 23-Jan-2013  matt Add strnlen.c to SRCS (which will automatically use the .S version if it
exists).
 1.13 23-Jan-2013  macallan pull in strnlen.S
 1.12 30-Oct-2012  christos add new divsi3 related files.
 1.11 10-Oct-2012  christos add split files.
 1.10 06-Aug-2012  matt branches: 1.10.2;
If earm*, compile new aeabi runtime routines.
 1.9 14-Aug-2009  dsl branches: 1.9.12; 1.9.18; 1.9.20;
Move that majority of the 'SRCS+= foo.c' into the main Makefile.libkern.
Any .S files added by the arch/*/Makefile.inc cause the .c file to
be excluded.
Specific exclusions added using NO_SRCS to match previous files.
At least sparc, sparc64, i386, amd64 and vax GENERIC still build.
(There is a fubar with the naming of the byte-swap files ...)
 1.8 12-Aug-2009  dsl Split the lines that add .c to SRCS from those that add .S
No changes (apart from the order) intended.
 1.7 14-Oct-2008  matt Add a _clzsi2 for armv4 platforms.
 1.6 23-Nov-2002  chris branches: 1.6.104; 1.6.108; 1.6.114;
Sync arm asm libkern files with libc's asm files.
 1.5 16-Nov-2002  rearnsha Add an assembler version of strcmp, based on example code from the ARM
ARM. As an example of the performance difference that this provides
a Dhrystone score on my Shark goes from 213k to 261k.
 1.4 17-Aug-2002  chris pull in ffs.S from libc for arm.
The main benefit is that ffs always runs in constant time.
 1.3 20-Nov-2001  chris branches: 1.3.8;
Tidy up some memory copying cruft:
bcopy.S is no longer needed
memmove and memcpy were both stacking r0 and unstacking it to keep the return value, so push this down into _memcpy.
rename _memcpy.S to memcpy.S.
memmove.S is now just a placeholder otherwise the make system automagically adds a memmove.c file to libkern.
memmove is just another entry point for memcpy.
 1.2 06-Jul-2001  toshii branches: 1.2.2;
Remove bcmp, bcopy and bzero. We don't need them as they aren't
called from asm code, and we shouldn't have them if we don't need them.
 1.1 29-Dec-2000  bjh21 branches: 1.1.2; 1.1.4;
Create a shared set of ARM sources for libkern and move arm26 over to using
them.

These are identical to the current arm32 sources with the following exceptions:
- References to C labels are wrapped in _C_LABEL().
- Function returns have an alternate version inside #ifdef __APCS_26__.
 1.1.4.4 11-Dec-2002  thorpej Sync with HEAD.
 1.1.4.3 27-Aug-2002  nathanw Catch up to -current.
 1.1.4.2 08-Jan-2002  nathanw Catch up to -current.
 1.1.4.1 24-Aug-2001  nathanw Catch up with -current.
 1.1.2.2 08-Jan-2001  bouyer Files added on trunk.
 1.1.2.1 29-Dec-2000  bouyer file Makefile.inc was added on branch thorpej_scsipi on 2001-01-08 14:56:54 +0000
 1.2.2.2 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.2.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.3.8.1 29-Aug-2002  gehenna catch up with -current.
 1.6.114.1 19-Oct-2008  haad Sync with HEAD.
 1.6.108.2 19-Aug-2009  yamt sync with head.
 1.6.108.1 04-May-2009  yamt sync with head.
 1.6.104.1 17-Jan-2009  mjf Sync with HEAD.
 1.9.20.1 28-Nov-2012  matt Deal with div/mod changes.
 1.9.18.1 19-Nov-2012  riz Pull up following revision(s) (requested by christos in ticket #654):
common/lib/libc/arch/arm/gen/modsi3.S: revision 1.1
common/lib/libc/arch/arm/gen/umodsi3.S: revision 1.1
sys/lib/libkern/arch/arm/Makefile.inc: revision 1.11
sys/lib/libkern/arch/arm/Makefile.inc: revision 1.12
common/lib/libc/arch/arm/gen/divide.S: revision 1.1
lib/libc/arch/arm/gen/Makefile.inc: revision 1.20
common/lib/libc/arch/arm/gen/divsi3.S: revision 1.3
common/lib/libc/arch/arm/gen/udivsi3.S: revision 1.1
common/lib/libc/arch/arm/gen/divsi3.S: revision 1.4
Split out modsi3 and umodsi3 from the divsi3 file. This is so that
we don't get re-defined symbols in libc from libgcc in static linking.
Example: cc -pthread -static main-calls-pthread-create.c
add split files.
add new divsi3 related files.
add new files to fix static linking
split udivsi3 and divsi3 to fix static linking. This could be done better.
Fixes PR#47139
 1.9.12.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.9.12.2 16-Jan-2013  yamt sync with (a bit old) head
 1.9.12.1 30-Oct-2012  yamt sync with head
 1.10.2.4 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.10.2.3 23-Jun-2013  tls resync from head
 1.10.2.2 25-Feb-2013  tls resync with head
 1.10.2.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.18.2.2 18-May-2014  rmind sync with head
 1.18.2.1 28-Aug-2013  rmind sync with head
 1.3 20-Nov-2001  chris Tidy up some memory copying cruft:
bcopy.S is no longer needed
memmove and memcpy were both stacking r0 and unstacking it to keep the return value, so push this down into _memcpy.
rename _memcpy.S to memcpy.S.
memmove.S is now just a placeholder otherwise the make system automagically adds a memmove.c file to libkern.
memmove is just another entry point for memcpy.
 1.2 23-Jan-2001  bjh21 branches: 1.2.2; 1.2.4;
Sync with libc for licence update.
 1.1 29-Dec-2000  bjh21 branches: 1.1.2;
Create a shared set of ARM sources for libkern and move arm26 over to using
them.

These are identical to the current arm32 sources with the following exceptions:
- References to C labels are wrapped in _C_LABEL().
- Function returns have an alternate version inside #ifdef __APCS_26__.
 1.1.2.3 11-Feb-2001  bouyer Sync with HEAD.
 1.1.2.2 08-Jan-2001  bouyer Files added on trunk.
 1.1.2.1 29-Dec-2000  bouyer file _memcpy.S was added on branch thorpej_scsipi on 2001-01-08 14:56:55 +0000
 1.2.4.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.2.1 28-Feb-2002  nathanw Catch up to -current.
 1.2 20-Nov-2001  chris Tidy up some memory copying cruft:
bcopy.S is no longer needed
memmove and memcpy were both stacking r0 and unstacking it to keep the return value, so push this down into _memcpy.
rename _memcpy.S to memcpy.S.
memmove.S is now just a placeholder otherwise the make system automagically adds a memmove.c file to libkern.
memmove is just another entry point for memcpy.
 1.1 29-Dec-2000  bjh21 branches: 1.1.2; 1.1.4; 1.1.6;
Create a shared set of ARM sources for libkern and move arm26 over to using
them.

These are identical to the current arm32 sources with the following exceptions:
- References to C labels are wrapped in _C_LABEL().
- Function returns have an alternate version inside #ifdef __APCS_26__.
 1.1.6.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.4.1 28-Feb-2002  nathanw Catch up to -current.
 1.1.2.2 08-Jan-2001  bouyer Files added on trunk.
 1.1.2.1 29-Dec-2000  bouyer file bcopy.S was added on branch thorpej_scsipi on 2001-01-08 14:56:56 +0000
 1.6 20-Dec-2005  christos Use common sources with userland.
 1.5 11-Dec-2005  christos merge ktrace-lwp.
 1.4 26-Feb-2005  perry branches: 1.4.4;
nuke trailing whitespace
 1.3 05-Apr-2003  bjh21 branches: 1.3.2; 1.3.10; 1.3.12;
NetBSD/acorn26 has used APCS-32 for years, so unifdef -U__APCS_26__.
 1.2 01-Jul-2002  bjh21 Avoid leaving junk in the top half of R0 on return.
This fixes port-arm/17440.
 1.1 29-Dec-2000  bjh21 branches: 1.1.2; 1.1.4; 1.1.6; 1.1.18; 1.1.20;
Create a shared set of ARM sources for libkern and move arm26 over to using
them.

These are identical to the current arm32 sources with the following exceptions:
- References to C labels are wrapped in _C_LABEL().
- Function returns have an alternate version inside #ifdef __APCS_26__.
 1.1.20.1 02-Jul-2002  lukem Pull up revision 1.2 (requested by bjh21 in ticket #419):
Avoid leaving junk in the top half of R0 on return.
This fixes port-arm/17440.
 1.1.18.1 15-Jul-2002  gehenna catch up with -current.
 1.1.6.1 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.1.4.1 01-Aug-2002  nathanw Catch up to -current.
 1.1.2.2 08-Jan-2001  bouyer Files added on trunk.
 1.1.2.1 29-Dec-2000  bouyer file byte_swap_2.S was added on branch thorpej_scsipi on 2001-01-08 14:56:56 +0000
 1.3.12.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.3.10.1 29-Apr-2005  kent sync with -current
 1.3.2.1 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.4.4.1 21-Jun-2006  yamt sync with head.
 1.3 20-Dec-2005  christos Use common sources with userland.
 1.2 05-Apr-2003  bjh21 branches: 1.2.18;
NetBSD/acorn26 has used APCS-32 for years, so unifdef -U__APCS_26__.
 1.1 29-Dec-2000  bjh21 branches: 1.1.2;
Create a shared set of ARM sources for libkern and move arm26 over to using
them.

These are identical to the current arm32 sources with the following exceptions:
- References to C labels are wrapped in _C_LABEL().
- Function returns have an alternate version inside #ifdef __APCS_26__.
 1.1.2.2 08-Jan-2001  bouyer Files added on trunk.
 1.1.2.1 29-Dec-2000  bouyer file byte_swap_4.S was added on branch thorpej_scsipi on 2001-01-08 14:56:57 +0000
 1.2.18.1 21-Jun-2006  yamt sync with head.
 1.2 09-Nov-2003  scw bzero is no longer used in the kernel.
 1.1 29-Dec-2000  bjh21 branches: 1.1.2; 1.1.26;
Create a shared set of ARM sources for libkern and move arm26 over to using
them.

These are identical to the current arm32 sources with the following exceptions:
- References to C labels are wrapped in _C_LABEL().
- Function returns have an alternate version inside #ifdef __APCS_26__.
 1.1.26.1 03-Aug-2004  skrll Sync with HEAD
 1.1.2.2 08-Jan-2001  bouyer Files added on trunk.
 1.1.2.1 29-Dec-2000  bouyer file bzero.S was added on branch thorpej_scsipi on 2001-01-08 14:56:58 +0000
 1.7 29-Jan-2014  joerg Include compiler-rt in libc, libm and libkern.
 1.6 21-Aug-2013  matt Thumbify
 1.5 11-Aug-2013  matt Support thumb
 1.4 01-Sep-2012  matt branches: 1.4.2; 1.4.4;
Add ARMv5 support the clz instruction
 1.3 15-Oct-2008  matt branches: 1.3.2; 1.3.10; 1.3.16; 1.3.34;
Use RET/RETc as appropriate
 1.2 14-Oct-2008  matt Need to be __clz[sd]i2
 1.1 14-Oct-2008  matt Add a _clzsi2 for armv4 platforms.
 1.3.34.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.34.1 30-Oct-2012  yamt sync with head
 1.3.16.2 04-May-2009  yamt sync with head.
 1.3.16.1 15-Oct-2008  yamt file clzsi2.S was added on branch yamt-nfs-mp on 2009-05-04 08:13:50 +0000
 1.3.10.2 17-Jan-2009  mjf Sync with HEAD.
 1.3.10.1 15-Oct-2008  mjf file clzsi2.S was added on branch mjf-devfs2 on 2009-01-17 13:29:21 +0000
 1.3.2.2 19-Oct-2008  haad Sync with HEAD.
 1.3.2.1 15-Oct-2008  haad file clzsi2.S was added on branch haad-dm on 2008-10-19 22:17:40 +0000
 1.4.4.2 18-May-2014  rmind sync with head
 1.4.4.1 28-Aug-2013  rmind sync with head
 1.4.2.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.7 20-Dec-2005  christos Use common sources with userland.
 1.6 11-Dec-2005  christos merge ktrace-lwp.
 1.5 26-Feb-2005  perry branches: 1.5.4;
nuke trailing whitespace
 1.4 05-Apr-2003  bjh21 branches: 1.4.2; 1.4.10; 1.4.12;
NetBSD/acorn26 has used APCS-32 for years, so unifdef -U__APCS_26__.
 1.3 15-Aug-2002  briggs Use .L prefix for all local labels.
 1.2 13-Nov-2001  chris branches: 1.2.8;
Sync to libc version of divsi3.S. This is to fix up the stack for 8 byte alignment.
 1.1 29-Dec-2000  bjh21 branches: 1.1.2; 1.1.4; 1.1.6;
Create a shared set of ARM sources for libkern and move arm26 over to using
them.

These are identical to the current arm32 sources with the following exceptions:
- References to C labels are wrapped in _C_LABEL().
- Function returns have an alternate version inside #ifdef __APCS_26__.
 1.1.6.2 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.1.6.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.4.2 27-Aug-2002  nathanw Catch up to -current.
 1.1.4.1 14-Nov-2001  nathanw Catch up to -current.
 1.1.2.2 08-Jan-2001  bouyer Files added on trunk.
 1.1.2.1 29-Dec-2000  bouyer file divsi3.S was added on branch thorpej_scsipi on 2001-01-08 14:56:59 +0000
 1.2.8.1 29-Aug-2002  gehenna catch up with -current.
 1.4.12.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.4.10.1 29-Apr-2005  kent sync with -current
 1.4.2.1 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.5.4.1 21-Jun-2006  yamt sync with head.
 1.6 20-Dec-2005  christos Use common sources with userland.
 1.5 11-Dec-2005  christos merge ktrace-lwp.
 1.4 26-Feb-2005  perry branches: 1.4.4;
nuke trailing whitespace
 1.3 05-Apr-2003  bjh21 branches: 1.3.2; 1.3.10; 1.3.12;
NetBSD/acorn26 has used APCS-32 for years, so unifdef -U__APCS_26__.
 1.2 17-Aug-2002  thorpej branches: 1.2.2; 1.2.4; 1.2.6;
Local label fixup.
 1.1 17-Aug-2002  chris pull in ffs.S from libc for arm.
The main benefit is that ffs always runs in constant time.
 1.2.6.2 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.2.6.1 17-Aug-2002  jdolecek file ffs.S was added on branch kqueue on 2002-09-06 08:48:27 +0000
 1.2.4.2 29-Aug-2002  gehenna catch up with -current.
 1.2.4.1 17-Aug-2002  gehenna file ffs.S was added on branch gehenna-devsw on 2002-08-29 05:23:19 +0000
 1.2.2.2 27-Aug-2002  nathanw Catch up to -current.
 1.2.2.1 17-Aug-2002  nathanw file ffs.S was added on branch nathanw_sa on 2002-08-27 23:47:44 +0000
 1.3.12.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.3.10.1 29-Apr-2005  kent sync with -current
 1.3.2.1 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.4.4.1 21-Jun-2006  yamt sync with head.
 1.6 20-Dec-2005  christos Use common sources with userland.
 1.5 11-Dec-2005  christos merge ktrace-lwp.
 1.4 23-Oct-2003  scw branches: 1.4.16;
Duh, fix the align-to-32-bits code.
 1.3 13-Oct-2003  scw Xscale-optimised mem* functions, contributed by Wasabi Systems.
(Note: memcmp/memset improvements also benefit non-Xscale).

memcmp() - Compare 32-bits at a time if possible. Special-case 6-byte
comparisons, for the benefit of the network stack.

memset() - More loop unrolling, plus use of 'strd' instruction,
results in > 100% speedup on Xscale.

memcpy() - Big-endian support, unrolled loops, 'strd/ldrd/pld', plus
special-cases for very common length/alignment combinations
(at least in the kernel). Benchmarks show ~50% improvment on
Xscale.

memmove() - Big-endian support. Use fast memcpy(), above, if the regions
don't overlap. Otherwise unchanged.
 1.2 05-Apr-2003  bjh21 branches: 1.2.2;
NetBSD/acorn26 has used APCS-32 for years, so unifdef -U__APCS_26__.
 1.1 23-Nov-2002  chris branches: 1.1.2;
Sync arm asm libkern files with libc's asm files.
 1.1.2.2 11-Dec-2002  thorpej Sync with HEAD.
 1.1.2.1 23-Nov-2002  thorpej file memcmp.S was added on branch nathanw_sa on 2002-12-11 06:46:24 +0000
 1.2.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.2.2.1 03-Aug-2004  skrll Sync with HEAD
 1.4.16.1 21-Jun-2006  yamt sync with head.
 1.8 20-Dec-2005  christos Use common sources with userland.
 1.7 11-Dec-2005  christos merge ktrace-lwp.
 1.6 13-Oct-2003  scw branches: 1.6.16;
Xscale-optimised mem* functions, contributed by Wasabi Systems.
(Note: memcmp/memset improvements also benefit non-Xscale).

memcmp() - Compare 32-bits at a time if possible. Special-case 6-byte
comparisons, for the benefit of the network stack.

memset() - More loop unrolling, plus use of 'strd' instruction,
results in > 100% speedup on Xscale.

memcpy() - Big-endian support, unrolled loops, 'strd/ldrd/pld', plus
special-cases for very common length/alignment combinations
(at least in the kernel). Benchmarks show ~50% improvment on
Xscale.

memmove() - Big-endian support. Use fast memcpy(), above, if the regions
don't overlap. Otherwise unchanged.
 1.5 09-Oct-2003  ichiro big endian support

thanks to smi@sm.sony.co.jp
 1.4 05-Apr-2003  bjh21 branches: 1.4.2;
NetBSD/acorn26 has used APCS-32 for years, so unifdef -U__APCS_26__.
 1.3 15-Aug-2002  briggs Use .L prefix for all local labels.
 1.2 20-Nov-2001  chris branches: 1.2.8;
Tidy up some memory copying cruft:
bcopy.S is no longer needed
memmove and memcpy were both stacking r0 and unstacking it to keep the return value, so push this down into _memcpy.
rename _memcpy.S to memcpy.S.
memmove.S is now just a placeholder otherwise the make system automagically adds a memmove.c file to libkern.
memmove is just another entry point for memcpy.
 1.1 29-Dec-2000  bjh21 branches: 1.1.2; 1.1.4; 1.1.6;
Create a shared set of ARM sources for libkern and move arm26 over to using
them.

These are identical to the current arm32 sources with the following exceptions:
- References to C labels are wrapped in _C_LABEL().
- Function returns have an alternate version inside #ifdef __APCS_26__.
 1.1.6.2 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.1.6.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.4.2 27-Aug-2002  nathanw Catch up to -current.
 1.1.4.1 08-Jan-2002  nathanw Catch up to -current.
 1.1.2.2 08-Jan-2001  bouyer Files added on trunk.
 1.1.2.1 29-Dec-2000  bouyer file memcpy.S was added on branch thorpej_scsipi on 2001-01-08 14:56:59 +0000
 1.2.8.1 29-Aug-2002  gehenna catch up with -current.
 1.4.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.4.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.4.2.1 03-Aug-2004  skrll Sync with HEAD
 1.6.16.1 21-Jun-2006  yamt sync with head.
 1.5 20-Dec-2005  christos Use common sources with userland.
 1.4 11-Dec-2005  christos merge ktrace-lwp.
 1.3 02-Jun-2005  scw branches: 1.3.2;
Re-sync with libc version of memcpy_arm.S, which has deals correctly
with big-endian ARM (non-XScale) systems.
 1.2 26-Feb-2005  perry nuke trailing whitespace
 1.1 13-Oct-2003  scw branches: 1.1.4; 1.1.10; 1.1.12;
Xscale-optimised mem* functions, contributed by Wasabi Systems.
(Note: memcmp/memset improvements also benefit non-Xscale).

memcmp() - Compare 32-bits at a time if possible. Special-case 6-byte
comparisons, for the benefit of the network stack.

memset() - More loop unrolling, plus use of 'strd' instruction,
results in > 100% speedup on Xscale.

memcpy() - Big-endian support, unrolled loops, 'strd/ldrd/pld', plus
special-cases for very common length/alignment combinations
(at least in the kernel). Benchmarks show ~50% improvment on
Xscale.

memmove() - Big-endian support. Use fast memcpy(), above, if the regions
don't overlap. Otherwise unchanged.
 1.1.12.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.1.10.1 29-Apr-2005  kent sync with -current
 1.1.4.6 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.1.4.5 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.1.4.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.4.3 18-Sep-2004  skrll Sync with HEAD.
 1.1.4.2 03-Aug-2004  skrll Sync with HEAD
 1.1.4.1 13-Oct-2003  skrll file memcpy_arm.S was added on branch ktrace-lwp on 2004-08-03 10:53:42 +0000
 1.3.2.1 21-Jun-2006  yamt sync with head.
 1.4 20-Dec-2005  christos Use common sources with userland.
 1.3 11-Dec-2005  christos merge ktrace-lwp.
 1.2 26-Feb-2005  perry branches: 1.2.2; 1.2.4;
nuke trailing whitespace
 1.1 13-Oct-2003  scw branches: 1.1.4; 1.1.10; 1.1.12;
Xscale-optimised mem* functions, contributed by Wasabi Systems.
(Note: memcmp/memset improvements also benefit non-Xscale).

memcmp() - Compare 32-bits at a time if possible. Special-case 6-byte
comparisons, for the benefit of the network stack.

memset() - More loop unrolling, plus use of 'strd' instruction,
results in > 100% speedup on Xscale.

memcpy() - Big-endian support, unrolled loops, 'strd/ldrd/pld', plus
special-cases for very common length/alignment combinations
(at least in the kernel). Benchmarks show ~50% improvment on
Xscale.

memmove() - Big-endian support. Use fast memcpy(), above, if the regions
don't overlap. Otherwise unchanged.
 1.1.12.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.1.10.1 29-Apr-2005  kent sync with -current
 1.1.4.5 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.1.4.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.4.3 18-Sep-2004  skrll Sync with HEAD.
 1.1.4.2 03-Aug-2004  skrll Sync with HEAD
 1.1.4.1 13-Oct-2003  skrll file memcpy_xscale.S was added on branch ktrace-lwp on 2004-08-03 10:53:42 +0000
 1.2.4.1 21-Jun-2006  yamt sync with head.
 1.2.2.1 26-Aug-2007  bouyer Apply patch, requested by scw in ticket #1806:
lib/libc/arch/arm/string/memcpy_xscale.S: patch
sys/lib/libkern/arch/arm/memcpy_xscale.S: patch
Apply the patch, with some minor tweaks, supplied in PR/36513.
This prevents a possible prefetch past the end of the source buffer.
 1.6 20-Dec-2005  christos Use common sources with userland.
 1.5 11-Dec-2005  christos merge ktrace-lwp.
 1.4 26-Feb-2005  perry branches: 1.4.2; 1.4.4;
nuke trailing whitespace
 1.3 13-Oct-2003  scw branches: 1.3.8; 1.3.10;
Xscale-optimised mem* functions, contributed by Wasabi Systems.
(Note: memcmp/memset improvements also benefit non-Xscale).

memcmp() - Compare 32-bits at a time if possible. Special-case 6-byte
comparisons, for the benefit of the network stack.

memset() - More loop unrolling, plus use of 'strd' instruction,
results in > 100% speedup on Xscale.

memcpy() - Big-endian support, unrolled loops, 'strd/ldrd/pld', plus
special-cases for very common length/alignment combinations
(at least in the kernel). Benchmarks show ~50% improvment on
Xscale.

memmove() - Big-endian support. Use fast memcpy(), above, if the regions
don't overlap. Otherwise unchanged.
 1.2 20-Nov-2001  chris branches: 1.2.16;
Tidy up some memory copying cruft:
bcopy.S is no longer needed
memmove and memcpy were both stacking r0 and unstacking it to keep the return value, so push this down into _memcpy.
rename _memcpy.S to memcpy.S.
memmove.S is now just a placeholder otherwise the make system automagically adds a memmove.c file to libkern.
memmove is just another entry point for memcpy.
 1.1 29-Dec-2000  bjh21 branches: 1.1.2; 1.1.4; 1.1.6;
Create a shared set of ARM sources for libkern and move arm26 over to using
them.

These are identical to the current arm32 sources with the following exceptions:
- References to C labels are wrapped in _C_LABEL().
- Function returns have an alternate version inside #ifdef __APCS_26__.
 1.1.6.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.4.1 08-Jan-2002  nathanw Catch up to -current.
 1.1.2.2 08-Jan-2001  bouyer Files added on trunk.
 1.1.2.1 29-Dec-2000  bouyer file memmove.S was added on branch thorpej_scsipi on 2001-01-08 14:57:00 +0000
 1.2.16.4 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.2.16.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.16.2 18-Sep-2004  skrll Sync with HEAD.
 1.2.16.1 03-Aug-2004  skrll Sync with HEAD
 1.3.10.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.3.8.1 29-Apr-2005  kent sync with -current
 1.4.4.1 21-Jun-2006  yamt sync with head.
 1.4.2.1 22-Jun-2007  liamjfoy Pull up following revision(s) (requested by scw in ticket #1805):
common/lib/libc/arch/arm/string/memmove.S: revision 1.2
Apply the patch supplied in PR/36512 to fix the buffer overlap check. The patch
to memmove.S was provided via patch.
 1.6 20-Dec-2005  christos Use common sources with userland.
 1.5 11-Dec-2005  christos merge ktrace-lwp.
 1.4 13-Oct-2003  scw branches: 1.4.16;
Xscale-optimised mem* functions, contributed by Wasabi Systems.
(Note: memcmp/memset improvements also benefit non-Xscale).

memcmp() - Compare 32-bits at a time if possible. Special-case 6-byte
comparisons, for the benefit of the network stack.

memset() - More loop unrolling, plus use of 'strd' instruction,
results in > 100% speedup on Xscale.

memcpy() - Big-endian support, unrolled loops, 'strd/ldrd/pld', plus
special-cases for very common length/alignment combinations
(at least in the kernel). Benchmarks show ~50% improvment on
Xscale.

memmove() - Big-endian support. Use fast memcpy(), above, if the regions
don't overlap. Otherwise unchanged.
 1.3 05-Apr-2003  bjh21 branches: 1.3.2;
NetBSD/acorn26 has used APCS-32 for years, so unifdef -U__APCS_26__.
 1.2 15-Aug-2002  briggs Use .L prefix for all local labels.
 1.1 29-Dec-2000  bjh21 branches: 1.1.2; 1.1.4; 1.1.6; 1.1.18;
Create a shared set of ARM sources for libkern and move arm26 over to using
them.

These are identical to the current arm32 sources with the following exceptions:
- References to C labels are wrapped in _C_LABEL().
- Function returns have an alternate version inside #ifdef __APCS_26__.
 1.1.18.1 29-Aug-2002  gehenna catch up with -current.
 1.1.6.1 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.1.4.1 27-Aug-2002  nathanw Catch up to -current.
 1.1.2.2 08-Jan-2001  bouyer Files added on trunk.
 1.1.2.1 29-Dec-2000  bouyer file memset.S was added on branch thorpej_scsipi on 2001-01-08 14:57:01 +0000
 1.3.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.3.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.3.2.1 03-Aug-2004  skrll Sync with HEAD
 1.4.16.1 21-Jun-2006  yamt sync with head.
 1.4 20-Dec-2005  christos Use common sources with userland.
 1.3 05-Apr-2003  bjh21 branches: 1.3.18;
NetBSD/acorn26 has used APCS-32 for years, so unifdef -U__APCS_26__.
 1.2 23-Nov-2002  chris branches: 1.2.2;
Sync arm asm libkern files with libc's asm files.
 1.1 16-Nov-2002  rearnsha Add an assembler version of strcmp, based on example code from the ARM
ARM. As an example of the performance difference that this provides
a Dhrystone score on my Shark goes from 213k to 261k.
 1.2.2.2 11-Dec-2002  thorpej Sync with HEAD.
 1.2.2.1 23-Nov-2002  thorpej file strcmp.S was added on branch nathanw_sa on 2002-12-11 06:46:24 +0000
 1.3.18.1 21-Jun-2006  yamt sync with head.
 1.3 20-Dec-2005  christos Use common sources with userland.
 1.2 05-Apr-2003  bjh21 branches: 1.2.18;
NetBSD/acorn26 has used APCS-32 for years, so unifdef -U__APCS_26__.
 1.1 23-Nov-2002  chris branches: 1.1.2;
Sync arm asm libkern files with libc's asm files.
 1.1.2.2 11-Dec-2002  thorpej Sync with HEAD.
 1.1.2.1 23-Nov-2002  thorpej file strncmp.S was added on branch nathanw_sa on 2002-12-11 06:46:24 +0000
 1.2.18.1 21-Jun-2006  yamt sync with head.
 1.2 12-Aug-2013  matt branches: 1.2.2; 1.2.6; 1.2.10;
Fix typos (prX not cpX)
 1.1 12-Aug-2013  matt Add EHABI unwind stubs to libkern so prevent errors in linking if unwind
tables are present.
 1.2.10.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.2.10.1 12-Aug-2013  tls file unwind_stub.c was added on branch tls-maxphys on 2014-08-20 00:04:30 +0000
 1.2.6.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.6.1 12-Aug-2013  yamt file unwind_stub.c was added on branch yamt-pagecache on 2014-05-22 11:41:04 +0000
 1.2.2.2 28-Aug-2013  rmind sync with head
 1.2.2.1 12-Aug-2013  rmind file unwind_stub.c was added on branch rmind-smpnet on 2013-08-28 23:59:35 +0000

RSS XML Feed