summaryrefslogtreecommitdiffstats
path: root/lib/libc/arm/string
Commit message (Collapse)AuthorAgeFilesLines
* Clean up our ARM assembly:andrew2014-12-147-123/+138
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MFC 275256: Switch to the ARM unified assembly language as the clang integrated as only supports it. Binutils supports it when the ".syntax unified" directive is set. Sponsored by: ABT Systems Ltd MFC 275264: Update _ENTRY to use _EENTRY to reduce the common code. MFC 275321: Remove extra labels, ENTRY_NP already provides them. Sponsored by: ABT Systems Ltd MFC 275322: Correctly a few incorrect uses of ENTRY/EENTRY and END/EEND Sponsored by: ABT Systems Ltd MFC 275416: Fix the name of the coprocessor to include the "p" prefix, the clang integrated assembler expects this. Sponsored by: ABT Systems Ltd MFC 275418: Switch to unified syntax so these can be built with clang 3.5. Sponsored by: ABT Systems Ltd MFC 275519: Add missing END macros to some of the xscale functions. Sponsored by: ABT Systems Ltd MFC 275520: Use the unified syntax in a few more assembly files Sponsored by: ABT Systems Ltd MFC 275521: Set the alignment to 4-bytes after a string as clang 3.5 can switch to thumb mode if this is incorrect. Sponsored by: ABT Systems Ltd MFC 275522: Place the literal pool after a RET otherwise clang 3.5 tries to put it too far away from a ldr psuedo instruction. With this clang will place the literal value here where it's close enough to be loaded. Sponsored by: ABT Systems Ltd MFC 275523: Switch to an armv6k cpu, without this clang 3.5 complains "bx lr" is unsupported as it needs a newer cpu. Sponsored by: ABT Systems Ltd MFC 275524: Switch to a .cpu directive. These will work when clang 3.5 is imported where the .arch directive is a nop. Sponsored by: ABT Systems Ltd
* MFC r270882, r270930:ian2014-09-099-0/+17
| | | | | | | | | | | | | In ARM asm code, ensure that every ENTRY(foo) has a matching END(foo). The EABI unwind info requires a .fnend for every .fnstart, and newer binutils will complain about seeing two .fnstart in a row. This change allows newer tools to compile our code. Do not generate unwind info in asm functions if _STANDALONE is defined. The .fnend op causes the assembler to emit RELOC references to unwind support functions that don't exist in libstand. Approved by: re(gjb)
* Merge index() and strchr() together.ed2012-01-031-4/+3
| | | | | | | | | | | | | | | | | As I looked through the C library, I noticed the FreeBSD MIPS port has a hand-written version of index(). This is nice, if it weren't for the fact that most applications call strchr() instead. Also, on the other architectures index() and strchr() are identical, meaning we have two identical pieces of code in the C library and statically linked applications. Solve this by naming the actual file strchr.[cS] and let it use __strong_reference()/STRONG_ALIAS() to provide the index() routine. Do the same for rindex()/strrchr(). This seems to make the C libraries and static binaries slightly smaller, but this reduction in size seems negligible.
* The NetBSD Foundation has granted permission to remove clause 3 and 4 fromjoel2010-03-023-21/+0
| | | | | | their software. Obtained from: NetBSD
* - Eliminate extra subcs instruction. I have not noticed before that westas2009-06-211-2/+1
| | | | | always perform substraction now, so no instruction could be rordered to eliminate the conditional substraction.
* - Fix strncmp on arm. Return 0 as result without performing thestas2009-06-211-5/+9
| | | | | | | | main cycle only if the len passed is equal to 0. If end address overflows use last possible address as the end address. Based on: discussion on arm@ MFC after: 1 month
* revert r191633; this breaks at91 & xscale (likely all arm)sam2009-05-061-4/+4
|
* Change the test at the beginning of strncmp(), from being if (len - 1) < 0cognet2009-04-281-4/+4
| | | | | | | | | to if (len == 0). The length is supposed to be unsigned, so len - 1 < 0 won't happen except if len == 0 anyway, and it would return 0 when it shouldn't, if len was > INT_MAX. Spotted out by: Channa <channa kad gmail com>
* MFKernel: do not use __XSCALE__ to detect if clz/pld/ldrd/strd arecognet2007-10-133-9/+9
| | | | | | available, use _ARM_ARCH_5/_ARM_ARCH_5E instead. MFC After: 3 days
* Fix a long line in copyright notice.cognet2005-10-031-1/+2
| | | | Pointed out by: Gavin Atkinson gavin.atkinson ury york ac uk
* Add an asm version of strlen() for arm (how useful).cognet2005-10-032-1/+78
|
* Use the RET macro.cognet2004-11-096-31/+31
| | | | | For setjmp() and longjmp(), put the signal mask where it's supposed to be, instead of in the space reserved for fp regs.
* MFKernel: Implement ffs with clz on Xscale.cognet2004-11-071-0/+6
|
* Always use bx for returning on Xscale.cognet2004-09-231-76/+76
| | | | Obtained from: NetBSD
* Fix the align-to-32-bits code.cognet2004-09-231-2/+2
| | | | Obtained from: NetBSD
* Import the FreeBSD/arm libc bits.cognet2004-05-1412-0/+3363
Obtained from: NetBSD
OpenPOWER on IntegriCloud