summaryrefslogtreecommitdiffstats
path: root/newlib/libc/machine
Commit message (Collapse)AuthorAgeFilesLines
* [AArch64] Reverting recent optimized memset().Marcus Shawcroft2015-07-151-184/+191
|
* [AArch64] Optimized memset.Wilco Dijkstra2015-07-131-191/+184
| | | | | | | | | | | This is an optimized memset for AArch64. Memset is split into 4 main cases: small sets of up to 16 bytes, medium of 16..96 bytes which are fully unrolled. Large memsets of more than 96 bytes align the destination and use an unrolled loop processing 64 bytes per iteration. Memsets of zero of more than 256 use the dc zva instruction, and there are faster versions for the common ZVA sizes 64 or 128. STP of Q registers is used to reduce codesize without loss of performance.
* [AArch64] Optimized memcpy.Wilco Dijkstra2015-07-131-134/+161
| | | | | | | | | | This is an optimized memcpy for AArch64. Copies are split into 3 main cases: small copies of up to 16 bytes, medium copies of 17..96 bytes which are fully unrolled. Large copies of more than 96 bytes align the destination and use an unrolled loop processing 64 bytes per iteration. In order to share code with memmove, small and medium copies read all data before writing, allowing any kind of overlap. On a random copy test memcpy is 40.8% faster on A57 and 28.4% on A53.
* [AArch64] Optimized memmove.Wilco Dijkstra2015-07-131-282/+108
| | | | | | | This is an optimized memmove for AArch64. All copies of up to 96 bytes and all backward copies are done by the new memcpy. The only remaining case is large forward copies which are done in the same way as the memcpy loop, but copying from the end rather than the start.
* Update the assembler code to support old ARM architectures.Hale Wang2015-06-016-183/+179
| | | | | | | | | | | | * libc/machine/arm/aeabi_memmove-arm.S (__aeabi_memmove): Update the assembler implementation. * libc/machine/arm/aeabi_memmove-thumb.S (__aeabi_memmove): Ditto. * libc/machine/arm/aeabi_memmove-thumb2.S (__aeabi_memmove): Ditto. * libc/machine/arm/aeabi_memset-arm.S (__aeabi_memset): Ditto. * libc/machine/arm/aeabi_memset-thumb.S (__aeabi_memset): Ditto. * libc/machine/arm/aeabi_memset-thumb2.S (__aeabi_memset): Ditto. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* For the RX port, avoid using string instructions when ↵Nick Clifton2015-04-2312-0/+235
| | | | | | | | | | | | | | | | | | | __RX_DISALLOW_STRING_INSNS__ is defined. * rx/crt0.S (_start): If string instructions are not allowed, avoid using SMOVF. * libc/machine/rx/memchr.S: Add non-string insn using version. * libc/machine/rx/memcpy.S: Likewise. * libc/machine/rx/memmove.S: Likewise. * libc/machine/rx/mempcpy.S: Likewise. * libc/machine/rx/strcat.S: Likewise. * libc/machine/rx/strcmp.S: Likewise. * libc/machine/rx/strcpy.S: Likewise. * libc/machine/rx/strlen.S: Likewise. * libc/machine/rx/strncat.S: Likewise. * libc/machine/rx/strncmp.S: Likewise. * libc/machine/rx/strncpy.S: Likewise.
* * libc/machine/mips/memset.S: Add support for mips32r6/mips64r6.Steve Ellcey2015-03-031-0/+58
|
* * libc/machine/mips/memcpy.S: Add support for mips32r6/mips64r6.Steve Ellcey2015-03-031-14/+165
|
* 2015-02-26 Steve Ellcey <sellcey@imgtec.com>Steve Ellcey2015-02-261-108/+108
| | | | | * libc/machine/mips/memcpy.S: Fix macro indentation and typos in comments.
* * libc/machine/arm/aeabi_memclr.c: New file to supportCorinna Vinschen2015-02-178-5/+542
| | | | | | | | | | | | aeabi_memclr. * libc/machine/arm/aeabi_memset.c: New file to support aeabi_memset. * libc/machine/arm/aeabi_memset-soft.S: Ditto. * libc/machine/arm/aeabi_memset-arm.S: Ditto. * libc/machine/arm/aeabi_memset-thumb.S: Ditto. * libc/machine/arm/aeabi_memset-thumb2.S: Ditto. * libc/machine/arm/Makefile.am: Add dependencies. * libc/machine/arm/Makefile.in: Regenerated.
* * libc/machine/arm/aeabi_memmove.c: New file to supportCorinna Vinschen2015-02-177-3/+340
| | | | | | | | | | aeabi_memmove. * libc/machine/arm/aeabi_memmove-soft.S: Ditto. * libc/machine/arm/aeabi_memmove-arm.S: Ditto. * libc/machine/arm/aeabi_memmove-thumb.S: Ditto. * libc/machine/arm/aeabi_memmove-thumb2.S: Ditto. * libc/machine/arm/Makefile.am: Add dependencies. * libc/machine/arm/Makefile.in: Regenerated.
* * libc/include/complex.h (cabsl): Add prototype.Nick Clifton2015-02-061-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (cimagl): Add prototype. (creall): Add prototype. * libc/include/ieeefp.h: Include float.h. (EXT_EXPBITS, EXT_FRACHBITS, EXT_FRACLBITS) (EXT_EXP_INFNAN. EXT_EXP_BIAS, EXT_FRACBITS): Define. (struct ieee_ext, union ieee_ext_u): New types for long double support. * libc/include/math.h (finitel): Add prototype. (hypotl): Add prototype. (sqrtl): Add prototype. * libm/common/Makefile.am (lsrc): Add sl_finite.c. * libm/common/Makefile.in: Regenerate. * libm/common/fdlibm.h (__ieee754_hypotl): Add prototype. * libm/common/hypotl.c (hypotl): Add implementation for when long double is larger than double. * libm/common/sqrtl.c (sqrtl): Likewise. * libm/common/sl_finite.c: New file. Adds implementation of the finitel function. * libm/complex/Makefile.am (lsrc): Define. (libcomplex_la_SOURCES): Add lsrc. (lib_a_SOURCES): Add lsrc. * libm/complex/Makefile.in: Regenerate. * libm/complex/cabs.c: Add documentation of cabsl function. * libm/complex/cimag.c: Add documentation of cimagl function. * libm/complex/creall.c: Add documentation of creall function. * libm/complex/cabsl.c: New file. Adds implementation of the cabsl function. * libm/complex/cimagl.c: New file. Adds implementation of the cimagl function. * libm/complex/creall.c: New file. Adds implementation of the creall function. * libm/math/Makefile.am (lsrc): Define. (libmath_la_SOURCES): Add lsrc. (lib_a_SOURCES): Add lsrc. * libm/math/Makefile.in: Regenerate. * libm/math/el_hypot.c: New file. Adds implementation of the __ieee754_hypotl function.
* Complete action from 2001-12-18:Corinna Vinschen2015-01-2317-697/+0
| | | | * libc/machine/i386/f_*: Remove duplicate files.
* * COPYING.LIBGLOSS: Add Controls and Data Services copyright.Eric Botcazou2015-01-2113-2/+7993
| | | | | | | | | | | | | | | | * COPYING.NEWLIB: Likewise. libgloss/ * configure.in: Add Visium support. * configure: Regenerate. * visium/: New directory. newlib/ * configure.host: Add Visium support. * libc/machine/configure.in: Likewise. * libc/machine/configure: Regenerate. * libc/machine/visium/: New directory. * libc/include/machine/setjmp.h (_JBLEN): Define for Visium. * libc/include/machine/ieeefp.h (__IEEE_BIG_ENDIAN): Likewise. * libc/include/machine/time.h (_CLOCKS_PER_SEC_): Likewise.
* * libc/machine/aarch64/strlen.S (strlen): Improve performance.Corinna Vinschen2015-01-201-69/+171
|
* * libc/machine/aarch64/strcpy.S (strcpy): Further performanceRichard Earnshaw2015-01-065-125/+250
| | | | | | | | improvements. Adjust to allow building as stpcpy. * libc/machine/aarch64/stpcpy.S: New file. * libc/machine/aarch64/stpcpy-stub.c: New file. * libc/machine/aarch64/Makefile.am (lib_a_SOURCES): Build stpcpy. * libc/machine/aarch64/Makefile.in: Regenerated.
* 2014-12-18 Jeff Johnston <jjohnstn@redhat.com>Jeff Johnston2014-12-1855-1166/+876
| | | | | | | | | | | | | | * NEWS: Update with 2.2.0 info. * README: Ditto. * acinclude.m4: Change version number to 2.2.0. * libc/libc.texinfo: Ditto. * libm/libm.texinfo: Ditto. * configure: Regenerated. * Makefile.in: Regenerated. * doc/configure: Ditto. * libc/*/configure: Ditto. * libm/*/configure: Ditto. * libc/sys/linux/shared.ld: Add VERS_2.2
* * libc/machine/aarch64/strcpy.S: Improve handling of short strings.Richard Earnshaw2014-12-161-135/+207
|
* * newlib/libc/include/machine/setjmp.h: Add FPU support.Corinna Vinschen2014-12-151-2/+80
| | | | * newlib/libc/machine/nds32/setjmp.S: Add FPU support.
* 2014-12-12 Stefan Wallentowitz <stefan.wallentowitz@tum.de>Jeff Johnston2014-12-121-1/+20
| | | | | | * configure.host: or1knd support, OpenRISC without delay slot * libc/include/machine/setjmp.h: Add or1knd * libc/machine/or1k/setjmp.S: Optional delay slot
* 2014-12-12 Stefan Wallentowitz <stefan.wallentowitz@tum.de>Jeff Johnston2014-12-121-13/+2
| | | | * libc/machine/or1k/setjmp.S: Remove save/restore of r3-r8
* * libc/machine/aarch64/strchrnul.S (vrepmask): Use a call-clobberedRichard Earnshaw2014-12-101-1/+1
| | | | register.
* * libc/machine/aarch64/strrchr.S: New file.Richard Earnshaw2014-12-084-2/+230
| | | | | | * libc/machine/aarch64/strrchr-stub.c: New file. * libc/machine/aarch64/Makefile.am: Add them to build list. * libc/machine/aarch64/Makefile.in: Regenerated.
* * libc/include/machine/setjmp.h [__mips__]: Remove __mips_fpr == 64Corinna Vinschen2014-11-281-5/+41
| | | | | | | from the 64-bit _JBTYPE definition. * libc/machine/mips/setjmp.S: Re-work the o32 FP64 support to match the now one-and-only supported o32 FP64 ABI extension. Also support o32 FPXX.
* * libc/machine/arm/strcmp-armv6m.S: New file.Corinna Vinschen2014-11-264-50/+163
| | | | | | * libc/machine/arm/strcmp.S: Add new wrapper. * libc/machine/arm/Makefile.am: Add dependencies. * libc/machine/arm/Makefile.in: Regenerated.
* * libc/machine/aarch64/strcpy.S: New file.Richard Earnshaw2014-11-104-3/+274
| | | | | | * libc/machine/aarch64/strcpy-stub.S: New file. * libc/machine/aarch64/Makefile.am (lib_a_SOURCES): Add new files. * libc/machine/aarch64/Makefile.in: Regenerate.
* 2014-10-08 Steve Ellcey <sellcey@mips.com>Steve Ellcey2014-10-084-79/+269
| | | | | | | | * newlib/libc/machine/mips/strcmp.c: Remove. * newlib/libc/machine/mips/strcmp.S: New. * newlib/libc/machine/mips/Makefile.am (lib_a_SOURCES): Replace strcmp.c with strcmp.S * newlib/libc/machine/mips/Makefile.in: Regenerate.
* 2014-09-08 Freddie Chopin <freddie_chopin@op.pl>Jeff Johnston2014-09-082-7/+7
| | | | | * libc/machine/arm/Makefile.am: Fix typo. * libc/machine/arm/Makefile.in: Regenerated.
* 2014-09-05 Hale Wang <hale.wang@arm.com>Jeff Johnston2014-09-0510-123/+551
| | | | | | | | | | | | | * libc/machine/arm/memchr.S: Clean up the wrapper. * libc/machine/arm/memcpy.S: Likewise. * libc/machine/arm/memchr-stub.c: Delete this redundant file. * libc/machine/arm/memcpy-stub.c: Likewise. * libc/machine/arm/strcmp.S: Add speed-preferred wrapper. * libc/machine/arm/strlen.S: Likewise. * libc/machine/arm/Makefile.am: Add dependencies. * libc/machine/arm/Makefile.in: Regenerated. * libc/machine/arm/configure.in: Add dependencies. * libc/machine/arm/configure: Regenerated.
* Add missing libc/machine/arm/aeabi_memcpy.c fileCorinna Vinschen2014-09-051-0/+64
|
* Add missing libc/machine/arm/aeabi_memcpy-armv7a.S fileCorinna Vinschen2014-09-041-0/+286
|
* * libc/machine/arm/aeabi_memcpy.c: New file.Corinna Vinschen2014-09-042-3/+18
| | | | | | * libc/machine/arm/aeabi_memcpy-armv7a.S: New file. * libc/machine/arm/Makefile.am: Add dependencies. * libc/machine/arm/Makefile.in: Regenerated.
* * libc/machine/aarch64/memchr.S: Add check for zero-sized buffer.Richard Earnshaw2014-08-191-0/+6
|
* headers: properly decorate attributesEric Blake2014-08-012-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Found by: find -name '*.h' |xargs grep -i 'attribute.*(([a-z]' For an example of the type of bugs this causes, try compiling this valid C11 program (it's valid because 'noreturn' is reserved for use in the user namespace unless you include <stdnoreturn.h>): $ cat foo.c #define noreturn __attribute__((noreturn)) #include <stdlib.h> $ gcc -c -o foo.o -Wall foo.c In file included from /usr/include/stdlib.h:11:0, from foo.c:2: foo.c:1:18: error: expected ')' before '__attribute__' #define noreturn __attribute__((noreturn)) ^ /usr/include/stdlib.h:66:28: error: expected ',' or ';' before ')' token _VOID _EXFUN(abort,(_VOID) _ATTRIBUTE ((noreturn))); ^ * libc/machine/spu/spu_timer_internal.h: Decorate attribute names with __, for namespace safety. * libc/machine/xscale/machine/profile.h: Likewise. * libc/include/stdlib.h: Likewise. * libc/include/_ansi.h: Likewise. * libc/include/sys/unistd.h: Likewise. * libc/sys/linux/linuxthreads/libc-symbols.h: Likewise. * libc/sys/linux/linuxthreads/internals.h: Likewise. * libc/sys/linux/machine/i386/weakalias.h: Likewise. * libc/sys/linux/machine/i386/dl-procinfo.h: Likewise. * libc/sys/linux/machine/i386/dl-machine.h: Likewise. * libc/sys/linux/libc-symbols.h: Likewise. * libc/sys/linux/iconv/gconv_charset.h: Likewise. * libc/sys/linux/include/resolv.h: Likewise. * libc/sys/linux/sys/unistd.h: Likewise. * libc/sys/linux/dl/atomicity.h: Likewise. * libc/sys/linux/dl/dynamic-link.h: Likewise. * libc/sys/linux/dl/ldsodefs.h: Likewise.
* * configure.host: Remove or16 and or32 targets and add or1k.Corinna Vinschen2014-07-178-2/+6626
| | | | | | | | * libc/include/machine/ieeefp.h: Replace or32 with or1k. * libc/machine/configure.in: Add or1k subdirectory. * libc/machine/or1k/configure.in: New file. * libc/machine/or1k/Makefile.am: New file. * libc/machine/or1k/setjmp.S: New file.
* [aarch64] Add memchr.Richard Earnshaw2014-07-114-6/+222
| | | | | | | | | 2014-07-11 K�vin Petit <kevin.petit@arm.com> * libc/machine/aarch64/memchr.S: New file. * libc/machine/aarch64/memchr-stub.c: New file. * libc/machine/aarch64/Makefile.am: Add the new files. * libc/machine/aarch64/Makefile.in: Regenerated.
* 2014-07-07 Pavel Pisa <pisa@cmp.felk.cvut.cz>Richard Earnshaw2014-07-071-1/+3
| | | | | | Richard Earnshaw <rearnsha@arm.com> * libc/machine/arm/memchr.S (.arch): Require revision ARMv6t2.
* * libc/machine/aarch64/strchrnul.S: New file.Richard Earnshaw2014-06-114-3/+199
| | | | | | * libc/machine/aarch64/strchrnul-stub.c: New file. * libc/machine/aarch64/Makefile.am: Add them to build list. * libc/machine/aarch64/Makefile.in: Regenerated.
* * libc/machine/aarch64/strchr.S: New fileRichard Earnshaw2014-06-104-3/+213
| | | | | | * libc/machine/aarch64/strchr-stub.c: New file * libc/machine/aarch64/Makefile.am: Add them to build list. * libc/machine/aarch64/Makefile.in: Regenerated.
* * libc/machine/sparc/setjmp.S (longjmp): Use register g1 instead of g6.Corinna Vinschen2014-05-151-4/+4
|
* * libc/machine/arm/strcmp-arm-tiny.S: New file.Richard Earnshaw2014-04-229-741/+1843
| | | | | | | | | | | | | * libc/machine/arm/strcmp-armv4.S: New file. * libc/machine/arm/strcmp-armv4t.S: New file. * libc/machine/arm/strcmp-armv6.S: New file. * libc/machine/arm/strcmp-armv7.S: New file. * libc/machine/arm/strcmp-armv7m.S: New file. * libc/machine/arm/strcmp.S: Replace with wrapper for various implementations. * libc/machine/arm/Makefile.am (strcmp.o, strcmp.obj): Add dependencies. * libc/machine/arm/Makefile.in: Regenerated.
* * libc/machine/rl78/setjmp.S: Add RL78/G10 support.DJ Delorie2014-04-091-0/+21
|
* * libc/machine/arm/acle-compat.h: New file.Richard Earnshaw2014-03-272-19/+201
| | | | * libc/machine/arm/arm_asm.h: Use it.
* 2014-03-21 Sabrina Ni <sabrinanitw@gmail.com>Jeff Johnston2014-03-212-0/+79
| | | | | * libc/machine/nds32/configure: Regenerated. * libc/machine/nds32/configure.in: Add AC_NOEXECUTABLES.
* 2014-03-21 Sabrina Ni <sabrinanitw@gmail.com>Jeff Johnston2014-03-214-6/+1017
| | | | | | | | * libc/machine/nds32/Makefile.am: Use C code implemented memcpy, memset for 'ISA V3M'. * libc/machine/nds32/Makefile.in: Generated. * libc/machine/nds32/configure: Generated. * libc/machine/nds32/configure.in: Detect IS_NDS32_ISA_V3M.
* 2014-03-21 Sabrina Ni <sabrinanitw@gmail.com>Jeff Johnston2014-03-211-11/+13
| | | | * libc/machine/nds32/setjmp.S: Keep jmp_buff sync with GDB.
* 2014-03-21 Sabrina Ni <sabrinanitw@gmail.com>Jeff Johnston2014-03-211-5/+4
| | | | * libc/machine/nds32/setjmp.S: Optimize.
* 2013-12-23 Jeff Johnston <jjohnstn@redhat.com>Jeff Johnston2013-12-2354-754/+882
| | | | | | | | | | | | | | | | | | * NEWS: Update with 2.1.0 info. * README: Ditto. * acinclude.m4: Change version number to 2.1.0. * aclocal.m4: Regenerated. * configure: Ditto. * Makefile.in: Regenerated. * doc/aclocal.m4: Ditto. * doc/configure: Ditto. * libc/*/aclocal.m4: Ditto. * libc/*/configure: Ditto. * libc/libc.texinfo: Ditto. * libm/*/aclocal.m4: Ditto. * libm/*/configure: Ditto. * libm/libm.texinfo: Ditto. * libc/sys/linux/shared.ld: Add VERS_2.1
* * libc/machine/mips/setjmp.S: Fix definition of macro FPR_LAYOUTCorinna Vinschen2013-11-271-0/+1
| | | | for ABI == N32.
* 2013-11-26 Matheus Almeida <Matheus.Almeida@imgtec.com>Jeff Johnston2013-11-261-4/+29
| | | | | | | * libc/include/machine/setjmp.h: Add support for __mips_fpr being 64 and treat it the same as if __mips64 is set. * libc/machine/mips/setjmp.S: Ditto, plus add checks for _MIPS_SIM being _ABIN32 and _ABI64.