summaryrefslogtreecommitdiff
path: root/libc/string
AgeCommit message (Collapse)Author
2008-04-15amd64 string ops: use alignment more carefully, and comment it.Denis Vlasenko
By capping max padding to not be bigger than three next insns, we avoid having ridiculously big NOPs like this one: 53:66 66 66 66 2e 0f 1f nopw %cs:0x0(%rax,%rax,1) 5a:84 00 00 00 00 00 which was bigger than next three insns combined! Size changes: text data bss dec hex filename 102 0 0 102 66 x86_64/memcpy.o 102 0 0 102 66 x86_64.old/memcpy.o 90 0 0 90 5a x86_64/mempcpy.o 102 0 0 102 66 x86_64.old/mempcpy.o 210 0 0 210 d2 x86_64/memset.o 242 0 0 242 f2 x86_64.old/memset.o 213 0 0 213 d5 x86_64/stpcpy.o 220 0 0 220 dc x86_64.old/stpcpy.o 428 0 0 428 1ac x86_64/strcat.o 444 0 0 444 1bc x86_64.old/strcat.o 417 0 0 417 1a1 x86_64/strchr.o 418 0 0 418 1a2 x86_64.old/strchr.o 33 0 0 33 21 x86_64/strcmp.o 33 0 0 33 21 x86_64.old/strcmp.o 213 0 0 213 d5 x86_64/strcpy.o 220 0 0 220 dc x86_64.old/strcpy.o 135 0 0 135 87 x86_64/strcspn.o 151 0 0 151 97 x86_64.old/strcspn.o 225 0 0 225 e1 x86_64/strlen.o 233 0 0 233 e9 x86_64.old/strlen.o 140 0 0 140 8c x86_64/strpbrk.o 156 0 0 156 9c x86_64.old/strpbrk.o 135 0 0 135 87 x86_64/strspn.o 151 0 0 151 97 x86_64.old/strspn.o Also, a few files got their .text alignment relaxed from 16 to 8 bytes, which reduces padding at link time.
2008-04-15amd64 string ops: replace some instructions by smaller ones,Denis Vlasenko
e.g. testb $0xff, %cl -> testb %cl, %cl
2008-03-26Paul Brook writes:Bernhard Reutner-Fischer
The attached patch adds support for compiling arm uClibc as pure Thumb code. This is needed because some recent ARM codes do not implement traditional ARM mode. Specifically: * Cortex-M1 - An extremely minimal FPGA based core that only implements Thumb-1 (aka ARMv6-M). * Cortex-M3 - A Thumb-2 only ARMv7-M core. Most of uClibc already builds in Thumb mode, all that is left are a handful of assembly bits. Tested on arm-uclinuxeabi.
2008-03-13avr32: Use HIDDEN_JUMPTARGET() macro in bzero.SHaavard Skinnemoen
Also, remove the hidden __memset symbol from memset.S
2008-03-13From: Geoffrey Wossum <geoffrey@pager.net>Haavard Skinnemoen
Found a problem with the AVR32 optimized bzero() code. Due to a missing #include, it actually generated no code.
2008-02-20Use HIDDEN_JUMPTARGET define instead of __GI_ directly in AVR32 filesHans-Christian Egtvedt
This patch uses the HIDDEN_JUMPTARGET instead of the __GI_ prefix in AVR32 assembler files. This is done to follow the code style in uClibc. Signed-off-by: Hans-Christian Egtvedt <hcegtvedt@atmel.com>
2008-01-09add workaround for gcc-3.4.6 with mipsMike Frysinger
2008-01-05Chris Zankel writes:Mike Frysinger
The following patches add support for the Xtensa processor architecture to uClibc. They are based on a recent SVN checkout (12/05/2007). The first patch (attached to this post) adds Xtensa support to various shared configuration and make files. The following patches then include the Xtensa specific files and directories. I welcome any feedback and would appreciate it if you could include the patches into the mainline tree. I am certainly committed to maintain the port. Bob Wilson was kind enough to review the patches. Some notes about the architecture: Xtensa is a configurable and extensible processor architecture developed by Tensilica. For more information, please visit: www.linux-xtensa.org.
2007-12-22mark a bunch of public mem/str functions as weak so that people who insist ↵Mike Frysinger
on their own local copies while static linking dont hit link failures when other uClibc code force the libc.a objects to be pulled in via the hidden alias symbols
2007-11-21Added optimized versions of strcpy() and strncpy() for CRIS/CRISv32.Peter Kjellerstedt
2007-11-16Added AVR32 support to uClibc. Signed-off-by: Hans-Christian Egtvedt ↵Carmelo Amoroso
<hcegtvedt@atmel.com>
2007-11-12CRIS/CRISv32 architecture specific memcpy, memmove and memset.Ricard Wanderlof
2007-09-15pull from Blackfin repo: cleanup string funcsMike Frysinger
2007-09-15Blue Swirl writes:Mike Frysinger
I got the library to compile with the attached patches, though dynamic loader crashes early. In buildroot I changed the architecture name by hand from sparc to sparc64, otherwise the compiler produced 32-bit files with V9 (64-bit) instructions. This configuration is not supported by QEMU, so I aimed for pure 64-bit. I think Sparc64 option needs to be added to buildroot. The _Qp_ ops seem to be required by the ABI. This and setjmp patches are just hacks to get the compilation further. The _Qp_ ops can be found in glibc, would it be OK to use those? V9 assembler requires declarations for global register use. The mem* functions in sparc32 directory did not work. They are actually used only by the hybrid 32-bit + V9 CPU configuration.
2007-09-15add strerror_r symbol alias as some autotool based packages simply use ↵Mike Frysinger
AC_CHECK_LIB() to see if a function exists rather than checking the headers
2007-07-29Remove stray code alignment (.align 16 and .align 4 directives)Denis Vlasenko
from i386 and x86_64.
2007-03-11Patch from Al Stone to fix ia64:Rob Landley
The attached patch works around some compilation failures on ia64 caused by the use of the C preprocessor ## operator, and allows the ia64 default configuration to build again -- or, at least get as far as an x86 build does (the current source tree has some problems compiling because of conflicting type declarations for __kernel_dev_t).
2007-02-08pull in features.h so we have access to config definesMike Frysinger
2006-11-04mips64 patch from Atsushi Nemoto:Eric Andersen
Import mips64 version of memset, memcpy from glibc.
2006-10-19Make strdup() use memcpy() rather than strcpy() to duplicate the string. Peter Kjellerstedt
The rationale is that we already have the length of the string to duplicate (from doing the malloc()), and memcpy() should then always be faster than strcpy() (or at least as fast).
2006-06-27revert previous nops in strcmp as they are not needed hereMike Frysinger
2006-06-27blackfin needs NOPs after the loop end when the last statement in the loop ↵Mike Frysinger
is an if/jump
2006-05-30Qunying Pan writes: Make strncmp weak hidden to fix link failures in ↵Mike Frysinger
building gdb and binutils statically
2006-05-30import some optimized functions from blackfin cvsMike Frysinger
2006-05-26Amir Shalem writes:Mike Frysinger
there is a missing include for <bits/uClibc_uintmaxtostr.h> in libc/string/_syserrmsg.h, where _syserrmsg.h uses __UIM_BUFLEN_INT
2006-05-15fix signed warningsMike Frysinger
2006-03-24Correct build failure introduced by SUSV3_LEGACY optionPeter S. Mazinger
2006-03-23Add new option for SuSv3 legacy functions and use it for ↵Peter S. Mazinger
bcopy/bzero/bcmp/index/rindex
2006-03-23Mark some functions as BSD onlyPeter S. Mazinger
2006-03-23select needs sys/select.h, str[n]casecmp/ffs needs strings.h, if BSD is not ↵Peter S. Mazinger
defined, gettimeofday has other prototype and tm_gmtoff/tm_zone do not exist
2006-03-22Correct build if UCLIBC_HAS_CTYPE_TABLES is not definedPeter S. Mazinger
2006-03-22Mark some functions as GNU, provide missing hidden memmem, remove ↵Peter S. Mazinger
_ISOC99/XOPEN_SOURCE
2006-03-10Remove all non-constant libc_hidden_data_def(), it is too unreliable, sorry, ↵Peter S. Mazinger
most of global data relocations are back
2006-02-22wcscoll_l.o does not existPeter S. Mazinger
2006-02-22exclude 2 more files from multiPeter S. Mazinger
2006-02-15strcoll for non-localePeter S. Mazinger
2006-02-13libc-{a,so,multi}-y replaced by libc-y covering common objects both in ↵Peter S. Mazinger
libc.a/libc.so, the diffs go into libc-static-y/libc-shared-y exclusively, add IMA to libc, don't use any MSRC anymore
2006-02-04fix buildingMike Frysinger
2006-02-04import files from glibc for an ia64/static portMike Frysinger
2006-02-03unify duplicated code cause i get tired of updating this stuffMike Frysinger
2006-02-01remove hidden versions of bzero, unused in libc.soPeter S. Mazinger
2006-01-31Khem Raj says:Mike Frysinger
add support for using BX instruction for THUMB aware architectures
2006-01-30Too many sparc versions ;-(, another hidden bcopy removedPeter S. Mazinger
2006-01-30Remove arch specific hidden bcopyPeter S. Mazinger
2006-01-30Change the only bcopy user to memmove and remove internal version of bcopyPeter S. Mazinger
2006-01-26Get rid of missing prototype warningsPeter S. Mazinger
2006-01-23Correct memcpy usePeter S. Mazinger
2006-01-22Enable _GNU_SOURCE build wide, trying to get consistent interfaces, else IMA ↵Peter S. Mazinger
is a useless attempt
2006-01-18check for signal existence rather than using arch definesMike Frysinger
2006-01-17update strcoll stuffMike Frysinger