Commit Graph

615 Commits

Author SHA1 Message Date
skrll
2d688776a6 Fix logic inversion. 2013-04-19 05:36:16 +00:00
joerg
a67fde0356 Add strtol_l and friends. Switch _citrus_bcs_strtol to use plain
strtol_l unless in tools mode. Add note to retire the BCS code on the
next libc major bump.
2013-04-16 21:44:06 +00:00
joerg
c7dafd4acd Do not use isalpha here, since we explicitly only support the Portable
Character Set as base and in theory a locale could define a ASCII
control character as letter, resulting in negations. Also avoid isdigit
here to give the compiler a better chance of deciding whether an
unsigned compare or a jump table is a better option, both are very
likely better choices than the memory indirection.
2013-04-16 19:34:57 +00:00
skrll
92ee01a067 Pretty sure we don't want to change instruction set here. hi matt. 2013-04-14 17:05:11 +00:00
matt
0441393558 Fix calling of __qdivrem which the 3rd arg needs to passed on the stack. 2013-04-14 15:53:30 +00:00
christos
3e4fc0a448 Add RCSID
Fix out of date comment
2013-03-17 02:13:10 +00:00
christos
12ea7fb385 add RCSID; use clr for pattern 2013-03-17 02:12:41 +00:00
christos
ca8f29b6bf Use a single copy of the source. 2013-03-17 00:42:31 +00:00
matt
213f7e6d6b #include <arm/cdefs.h> to get _ARM_ARCH_DWORD_OK 2013-02-15 22:35:39 +00:00
matt
545df5cbb8 Fix corner cases when searching for NUL. 2013-02-08 02:19:35 +00:00
matt
a317dd6322 Fix typo. 2013-02-08 01:41:35 +00:00
matt
38a95c84fa orrne wants 3 registers 2013-02-07 01:20:29 +00:00
matt
59bc6bed3d Add aeabi strong aliases. 2013-01-28 06:23:44 +00:00
matt
afc5014a73 Deal with an end-of-string condition properly. 2013-01-28 06:23:14 +00:00
matt
b61c7ad71a Change movsne to movnes for clang. 2013-01-28 06:22:34 +00:00
matt
d3d0879f20 Fix bug in detecting EOS/match on armv6+. 2013-01-26 07:49:11 +00:00
matt
cd7877eb52 Add a (unused) variant of strlcat that uses strnlen and strlcpy to do the work. 2013-01-23 07:57:27 +00:00
matt
d3ab69dd3b Enable ARM assembly versions of strlcat and strnlen. 2013-01-23 07:56:09 +00:00
matt
e3cc29a381 Add index/rindex strong aiases. 2013-01-23 07:45:46 +00:00
matt
bb2928cbda Add EABI support routines to raise SIGFPE on integer divide by 0. 2013-01-23 07:38:19 +00:00
matt
632dd00817 Add ARM assembly of strlcat which is implemented using (the ARM optimized)
strnlen and strlcpy.
2013-01-23 07:02:45 +00:00
matt
6495fd5f51 Add support for strnlen. 2013-01-23 06:59:55 +00:00
matt
24a929b8a1 Switch to using ARM assembly versions of strcat, strchr, strrchr. 2013-01-23 05:46:17 +00:00
matt
caab799770 Simple version of strlcat for ARM. 2013-01-18 22:49:11 +00:00
matt
9c4e9e6f72 Add some comments to illustrate what is actually happening. 2013-01-16 21:48:56 +00:00
matt
97ca0f0675 Fix case when searching for NUL. 2013-01-15 16:52:35 +00:00
matt
7b77c34d39 Add ARM optimized version of strrchr. 2013-01-15 08:52:27 +00:00
matt
d8ec06e4ef Add missing ! on str 2013-01-15 04:48:14 +00:00
matt
daf6ab5d09 Add an ARM optimized version of strchr. 2013-01-15 02:04:04 +00:00
matt
1a27ca9824 Add simple/small versions of strchr/strrchr for ARM. 2013-01-15 02:03:30 +00:00
matt
cb5a58cf06 Fix two typos 2013-01-14 19:15:13 +00:00
matt
4362d68f7e Add a simple version of strcat. 2013-01-14 16:36:15 +00:00
matt
962e3d9743 Add a native version of strcat which uses the optimized strlen and strcpy
routines.
2013-01-14 00:07:29 +00:00
matt
052628e406 A version of memset that can do NEON, VFP as well as normal arm instructions 2013-01-12 20:27:13 +00:00
matt
f77b15e751 Back out workaround. 2013-01-10 06:52:35 +00:00
matt
14365a1730 Fix a typo in strlcpy which caused to not deal with NULs predecing the
string properly.
2013-01-10 04:51:49 +00:00
matt
eb9a5f19fe Use the naive version of strlcpy until the longer one is fixed (it's still
faster than the C version).
2013-01-10 02:14:42 +00:00
matt
ddfad239b3 use #if defined(xxx) instead of ifdef 2013-01-10 02:13:49 +00:00
matt
01beb558aa Add weak alias for strlcpy 2013-01-10 02:08:22 +00:00
matt
0e293547ab Use movw on armv7 to fill uppper halfword. 2013-01-09 00:01:07 +00:00
matt
d8854cd184 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.
2013-01-08 20:15:00 +00:00
pgoyette
640316503e Add missing quote - fix build 2013-01-08 16:58:59 +00:00
matt
8eef9c1e44 Depending on _STANDALONE include the "naive" version or the normal arm version. 2013-01-08 13:21:05 +00:00
matt
67fc12d2ba Rename strlen.S and strcpy.S to strlen_arm.S and strcpy_arm.S 2013-01-08 13:17:45 +00:00
matt
94d1844298 Add simple/small versions of the str* functions. Suitable for libsa, etc. 2013-01-08 13:14:54 +00:00
matt
3ddeb9ed7e 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.
2013-01-03 09:34:44 +00:00
matt
013f63afab Deal with _LIBC (aliases, etc).
Add missing #endif.
2013-01-02 15:38:03 +00:00
matt
7910d3cfb5 Rename strlen_armv6.S to strlen.S since this is no longer armv6 dependent. 2013-01-02 15:24:21 +00:00
matt
daf4ca4713 Add an assembly version of strcpy/strncpy/strlcpy.
(they all use a common source with defines to determine which to build).
2013-01-02 05:54:58 +00:00
matt
44d1b59f26 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.
2012-12-31 07:58:44 +00:00