Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/newlib
AgeCommit message (Collapse)Author
2015-11-06Reorganize memcpy selection.Marcus Shawcroft
This patch cleans up the auto configury mechanism used to select different implementations of memcpy for various architecture versions. The approach here is to remove the selection of memcpy within automake and instead use complimentary logic in memcpy-stub.c and memcpy.S to choose between the generic memcpy.c implemenation or one of the architecture specific memcpy*.S implemenations. Regressed for armv7-a armv5 armv8-a, correct selection of memcpy implementation by manual inspection of a test program built for these three architectures. This revised patch flips the remaining preprocessor logic in memcpy-stub.c to use ACLE defines as requested in the previous review and removes the now disused HAVE_ARMV7A and HAVE_ARMV8A configure.in support.
2015-11-06Replace __attribute((__warning__())) by __attribute__((deprecated()))Olivier Martin
Clang raises the warning message: warning: unknown attribute '__warning__' ignored [-Wunknown-attributes] * libc/include/stdlib.h (mktemp): Change attribute to deprecated. (_mktemp_r): Ditto. Signed-off-by: Olivier Martin <olivier@labapart.com>
2015-11-03[ARM] Select appropriate memcpy implementation for ARMv8-a.Marcus Shawcroft
The newlib configury logic that detects architecture version and chooses an appropriate memcpy implementation does not consider ARMv8-a. This patch adds configury logic to detect ARMv8-a along with the associated changes in Makefile.am and memcpy.
2015-11-03Move duplicated documentation rules to Makefile.sharedJeff Johnston
- Also, harmonize libm to use CHEWOUT_FILES like libc, rather than chobj. Update documentation appropriately. * HOWTO: Update. * Makefile.shared: Move documentation rules to here... * libc/argz/Makefile.am: ... from here ... * libc/ctype/Makefile.am: ... and here. * libc/errno/Makefile.am: Ditto. * libc/iconv/Makefile.am: Ditto. * libc/iconv/ccs/Makefile.am : Ditto. * libc/iconv/ces/Makefile.am: Ditto. * libc/iconv/lib/Makefile.am: Ditto. * libc/locale/Makefile.am: Ditto. * libc/misc/Makefile.am: Ditto. * libc/posix/Makefile.am: Ditto. * libc/reent/Makefile.am: Ditto. * libc/search/Makefile.am: Ditto. * libc/stdio/Makefile.am: Ditto. * libc/stdio64/Makefile.am: Ditto. * libc/stdlib/Makefile.am : Ditto. * libc/string/Makefile.am: Ditto. * libc/syscalls/Makefile.am: Ditto. * libc/time/Makefile.am : Ditto. * libc/unix/Makefile.am: Ditto. * libc/xdr/Makefile.am: Ditto. * libm/common/Makefile.am: Ditto. * libm/complex/Makefile.am: Ditto. * libm/math/Makefile.am: Ditto. * libm/mathfp/Makefile.am: Ditto.
2015-11-03Consistently use an em-dash in math functions.Jeff Johnston
- also move previous ChangeLog entry to newlib instead of top-level * libc/time/wcsftime.c: Consistently use an em-dash in FUNCTION summary. * libm/common/isgreater.c: Ditto. * libm/common/s_fdim.c: Ditto. * libm/common/s_fma.c: Ditto. * libm/common/s_fmax.c: Ditto. * libm/common/s_fmin.c: Ditto. * libm/common/s_infinity.c: Ditto. * libm/common/s_isnan.c: Ditto. * libm/common/s_log2.c: Ditto. * libm/common/s_logb.c: Ditto. * libm/common/s_lrint.c: Ditto. * libm/common/s_lround.c: Ditto. * libm/common/s_nearbyint.c: Ditto. * libm/common/s_remquo.c: Ditto. * libm/common/s_rint.c: Ditto. * libm/common/s_round.c: Ditto. * libm/common/s_scalbn.c: Ditto. * libm/common/s_signbit.c: Ditto. * libm/common/s_trunc.c: Ditto. * libm/math/w_exp2.c: Ditto. * libm/math/w_gamma.c: Ditto.
2015-11-03Add missing semicolons to prototypes.Jeff Johnston
* libc/stdio/fseek.c: Add missing semicolons to prototypes in SYNOPSIS. * libc/stdio/fwide.c: Ditto. * libc/stdio64/fseeko64.c: Ditto. * libc/string/strtok.c: Ditto. * libc/string/wcstok.c: Ditto. * libm/math/w_cosh.c: Ditto. * libm/math/w_fmod.c: Ditto. * libm/mathfp/s_cosh.c: Ditto. * libm/mathfp/s_fmod.c: Ditto.
2015-11-03 Improve performance of MIPS memcpy.Steve Ellcey
* libc/machine/mips/memcpy.S (memcpy): Add word copies for small aligned data.
2015-11-02Add missing ChangeLog entry for ce8159d5Corinna Vinschen
2015-10-30Include <sched.h> in <pthread.h>Sebastian Huber
This is mandated by POSIX. 2015-10-30 Sebastian Huber <sebastian.huber@embedded-brains.de> libc/include/pthread.h: Include <sched.h> instead of <sys/sched.h>. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-10-27strftime: Add support for %s (seconds since epoch)Brian Inglis
* libc/time/strftime.c (__strftime): add support for %s (seconds from Unix epoch). Fix whitespaces. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-10-19Extend _intsup.h to support 16-bit and 20-bit pointers.Nick Clifton
* libc/include/sys/_intsup.h: Add support for 16-bit and 20-bit pointers.
2015-10-19C11 aligned_alloc() implementationSebastian Huber
aligned_alloc() is implemented in terms of posix_memalign() which is only declared in <stdlib.h> but not defined in Newlib in general. At least Linux and RTEMS implement this function. newlib/ChangeLog 2015-10-14 Sebastian Huber <sebastian.huber@embedded-brains.de> * libc/stdlib/Makefile.am (GENERAL_SOURCES): Add alloc_aligned.c.c. * libc/stdlib/Makefile.in: Regenerate. * libc/stdlib/aligned_alloc.c: New.
2015-10-19C11 aligned_alloc() support for <stdlib.h>Sebastian Huber
newlib/ChangeLog 2015-10-14 Sebastian Huber <sebastian.huber@embedded-brains.de> * libc/include/stdlib.h (alloc_aligned): Declare.
2015-10-19C11 quick_exit() support for <stdlib.h>Sebastian Huber
Import some <stdlib.h> function declarations from latest FreeBSD and implement them. I am not sure if we should call the global reent cleanup in quick_exit() similar to exit(). newlib/ChangeLog 2015-10-14 Sebastian Huber <sebastian.huber@embedded-brains.de> * libc/include/stdlib.h (at_quick_exit): Declare. (quick_exit): Likewise. * libc/stdlib/Makefile.am (GENERAL_SOURCES): Add quick_exit.c. * libc/stdlib/Makefile.in: Regenerate. * libc/stdlib/quick_exit.c: New.
2015-10-14Import <threads.h> from latest FreeBSD.Jeff Johnston
- Move types and defines to <machine/_threads.h> so that it can be customized per target. * libc/include/threads.h: New. * libc/sys/rtems/include/machine/_threads.h: Likewise.
2015-10-14Synchronize with FreeBSD.Jeff Johnston
* libc/include/sys/cdefs.h: Synchronize with latest FreeBSD version.
2015-10-14Add FreeBSD style changes to sys/cdefs.hJeff Johnston
* libc/include/sys/cdefs.h: Add style changes of latest FreeBSD version.
2015-10-08Define setjmp buffer length for IA64.Nick Clifton
2015-09-23Minimize newlib code size for ft32newlib-snapshot-20150924Jeff Johnston
* configure.host (ft32): minimise newlib code size
2015-09-04Add support for ft32 to newlib.Jeff Johnston
2015-09-03libc/machine/cris/sys/signal.h (kill): Declare.Hans-Peter Nilsson
2015-08-29Allow sysconf to return CPU cache informationCorinna Vinschen
* include/sys/unistd.h (_SC_LEVEL*): Add cache-related variables as on Linux. * fhandler_proc.cc (format_proc_cpuinfo): Fetch cache information from new cache functions in sysconf.cc, get_cpu_cache_intel and get_cpu_cache_amd. * sysconf.cc (__nt_query_system): New local helper. (get_nproc_values): Utilize __nt_query_system on pre-Windows 7 systems. Use GetLogicalProcessorInformationEx otherwise to handle more than 64 CPUs. Only handle _SC_NPROCESSORS_CONF and _SC_NPROCESSORS_ONLN. (get_phys_pages): New helper to handle _SC_PHYS_PAGES. (cpuid2_cache_descriptor): New array to map Intel CPUID 2 descriptor values to cache type, cache size, associativity and linesize. (cpuid2_cache_desc_compar): Comparision function for bsearch over cpuid2_cache_descriptor. (get_cpu_cache_intel_cpuid2): New function to fetch cache info from Intel CPUID 2. (get_cpu_cache_intel_cpuid4): Ditto from Intel CPUID 4. (get_cpu_cache_intel): New function as CPU-specific entry point. (assoc): New array to map associativity values from AMD CPUID 0x80000006. (get_cpu_cache_amd): New function to fetch cache info from AMD CPUIDs 0x80000005 and 0x80000006. (get_cpu_cache): New function to fetch cache info. (sca): Call get_phys_pages if _SC_PHYS_PAGES is requested. Call get_cpu_cache for new _SC_* cache requests. (SC_MAX): Set to _SC_LEVEL4_CACHE_LINESIZE. (get_phys_pages(void)): Call get_phys_pages(int). * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. * new-features.xml (ov-new2.3): Document sysconf cache addition. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-08-27strlen-armv7.S: Fix preprocessor checkCorinna Vinschen
Hi! I've got the situation, that the function strlen() occurs twice in libc.a (building newlib for ARM-V7a and Size-Optimized). In newlib/libc/machine/arm/strlen.c there are the pre-processor stetements ... #if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED) || \ (defined (__thumb__) && !defined (__thumb2__)) /*...*/ #else #if !(defined(_ISA_ARM_7) || defined(__ARM_ARCH_6T2__)) /*...*/ #endif and in newlib/libc/machine/arm/strlen-armv7.S the "exclude" begins with /* NOTE: This ifdef MUST match the ones in arm/strlen.c We fallback to the one in arm/strlen.c for size optimised or for older architectures. */ #if defined(_ISA_ARM_7) || defined(__ARM_ARCH_6T2__) && \ !(defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED) || \ (defined (__thumb__) && !defined (__thumb2__))) But this is not completely contrary to arm/strlen.c (see above)! To fix the logical statement in arm/strlen-armv7.S there are parentheses needed Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-08-27Fix for pri and scn formatsAndre Simoes Dias Vieira
2015-08-25Always declare "kill" in include/sys/signal.hJames Greenhalgh
Hi, As I mentioned recently [1], newlib is providing a "kill" symbol to link against, without declaring "kill" in signal.h. This is confusing for the libgfortran build, which tries to link against kill (which succeeds), then tries to use it (which triggers -Werror=implicit-function-declaration). This patch implements my suggestion in that thread - making the declaration of 'kill' in libc/include/sys/signal.h unconditional. I've tested this by building a modified libgfortran on AArch64/ARM to see that the Werror goes away, and the libgfortran build succeeds. Is something like this OK for newlib? If so, can someone please commit it on my behalf, as I have no commit access here. Otherwise, what is your preferred direction for me to take this patch? Thanks, James
2015-08-20Manuals failing to build on Ubuntu LTS 14.04cygwin-2_2_1-releaseJon TURNEY
On 11/08/2015 11:08, Andre Vieira wrote: > On 10/08/15 14:38, Jon TURNEY wrote: >> On 07/08/2015 11:13, Andre Vieira wrote: >>> Building the manuals on Ubuntu LTS 14.04 (64-bit) using pdfTeX >>> 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) is failing with the >>> following error: >>> "Transcript written on libc.log. >>> /usr/bin/texi2dvi: pdfetex exited with bad status, quitting." >>> >>> libc.log complaints about the following: >>> >>> You can't use `@unskip' in vertical mode. >>> [...] >>> >>> This code has been around for a while, so it might have to do with a >>> change in pdfTex? So it seems this problem has been around for a while, and looks like it is due to a change in texi2dvi in texinfo 5.0 or late 4.x, see [1]. I guess it's not very noticeable since it only occurs when doing 'make dvi', which doesn't happen by default. Attached is a different and perhaps cleaner workaround to the one in that thread. [1] https://sourceware.org/ml/newlib/2013/msg00057.html From 4d386b5900b6c68e022004b447faa696be5ff8c7 Mon Sep 17 00:00:00 2001 From: Jon TURNEY <jon.turney@dronecode.org.uk> Date: Tue, 11 Aug 2015 14:46:39 +0100 Subject: [PATCH] Use '@sp 1' rather than '@*' to workaround a change in texi2dvi. Since about TexInfo 5.0, using '@*' immediately after a table causes a 'You can't use `@unskip' in vertical mode' error. See https://sourceware.org/ml/newlib/2013/msg00057.html Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2015-08-20Add MIN MAX macro to param header file.Andre Vieira
newlib/ChangeLog: 2015-07-28 Andre Vieira <andre.simoesdiasvieira@arm.com> * libc/sys/arm/sys/param.h (MIN,MAX): Define. From 536ca7365d269f5e56679048e336d6969186d550 Mon Sep 17 00:00:00 2001 From: Andre Simoes Dias Vieira <andsim01@arm.com> Date: Tue, 28 Jul 2015 14:19:08 +0100 Subject: [PATCH] Added min max macros
2015-08-20Use machine header file for endianness configuration.Andre Vieira
newlib/ChangeLog: 2015-07-28 Andre Vieira <andre.simoesdiasvieira@arm.com> * libc/sys/arm/sys/param.h (BIG_ENDIAN, LITTLE_ENDIAN): Moved to machine/endian.h. * libc/machine/arm/machine/param.h (BYTE_ORDER): Idem. * libc/machine/arm/machine/endian.h: New. From ca6efccda91bc6b620b7d96a466b0f1e2f02cfeb Mon Sep 17 00:00:00 2001 From: Andre Simoes Dias Vieira <andsim01@arm.com> Date: Tue, 28 Jul 2015 12:16:20 +0100 Subject: [PATCH 2/2] Move endianness configuration to machine/endian.h
2015-08-20Use machine header file for param configuration.Andre Vieira
On 31/07/15 10:34, Richard Earnshaw wrote: > On 31/07/15 10:28, Andre Vieira wrote: >> newlib/ChangeLog: >> 2015-07-28 Andre Vieira <andre.simoesdiasvieira@arm.com> >> >> * libc/sys/arm/sys/param.h: Include machine/param.h >> (HZ, NOFILE, PATHSIZE): Define. >> >> param_refactor_1.patch >> >> >> From abc2d5f3398721f6ca891b9581feaba58730b19c Mon Sep 17 00:00:00 2001 >> From: Andre Simoes Dias Vieira <andsim01@arm.com> >> Date: Tue, 28 Jul 2015 12:10:59 +0100 >> Subject: [PATCH 1/2] Moved param configuration to machine/param.h >> >> --- >> newlib/libc/sys/arm/sys/param.h | 12 ++++++++++-- >> 1 file changed, 10 insertions(+), 2 deletions(-) >> >> diff --git a/newlib/libc/sys/arm/sys/param.h b/newlib/libc/sys/arm/sys/param.h >> index adc066e9a8756e07edaaa8cadc79b5f05c996ac9..622c371972ab3c9dbb93ea5c51323a593e2a171a 100644 >> --- a/newlib/libc/sys/arm/sys/param.h >> +++ b/newlib/libc/sys/arm/sys/param.h >> @@ -3,9 +3,17 @@ >> #ifndef _SYS_PARAM_H >> # define _SYS_PARAM_H >> >> -# define HZ (100) >> -# define NOFILE (60) >> +#include <machine/param.h> >> + >> +#ifndef HZ >> +# define HZ (60) > > Why have you changed the value for HZ? It seems that, by convention, > ARM boards have always used 100. > > R. > >> +#endif >> +#ifndef NOFILE >> +# define NOFILE>(60) >> +#endif >> +#ifndef PATHSIZE >> # define PATHSIZE (1024) >> +#endif >> >> #define BIG_ENDIAN 4321 >> #define LITTLE_ENDIAN 1234 >> > Hi Richard, ARM's machine/param.h that is included in "#include <machine/param.h>", before the 'ifndef' already defines HZ to be 100. This file was already there, it was just not being used. I understand that this 'ifndef' might be confusing, though I decided to add it to mimic the behavior of the default sys/param.h. There is however an unrelated issue with this patch, a typo in the "#define NOFILE" that crept in there due to some copy pasting when splitting the patch. Here is a fixed version. BR, Andre newlib/ChangeLog: 2015-07-28 Andre Vieira <andre.simoesdiasvieira@arm.com> * libc/sys/arm/sys/param.h: Include machine/param.h (HZ, NOFILE, PATHSIZE): Define. From abc2d5f3398721f6ca891b9581feaba58730b19c Mon Sep 17 00:00:00 2001 From: Andre Simoes Dias Vieira <andsim01@arm.com> Date: Tue, 28 Jul 2015 12:10:59 +0100 Subject: [PATCH 1/2] Moved param configuration to machine/param.h
2015-08-18sys/signal.h: include sys/ucontext.h on Cygwin per POSIX.1-2008Yaakov Selkowitz
* libc/include/sys/signal.h [__CYGWIN__]: include <sys/ucontext.h> if compiling for POSIX.1-2008. Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
2015-08-07or1k: Fix critical handling in malloc locksJeff Johnston
Only on first call to the recursive malloc lock the restore value of exception enable fields is stored. * libc/sys/or1k/mlock.c: Fix exception enable saving
2015-08-03Fix wscanf family positional parameter handling in %lc, %ls, %l[]Shoichi Sakon
* libc/stdio/vfwscanf.c (__SVFWSCANF_R): Convert wrong usage of va_arg to GET_ARG in %lc, %ls nad %l[] cases. Fix unterminated string in %l[] case. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-08-03Don't include stdio64 functions in reentrant syscalls menu when not bulding ↵Jon TURNEY
stdio64. Fix documentation build since 6c2b1842 by not including stdio64 functions in the reent syscalls menu if the node itself isn't going to be included because it's under the STDIO64 flag. Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2015-07-31Fix typo in <sys/lock.h>Sebastian Huber
Sorry, there was a typo in <sys/lock.h> which leads to memory corruption since not enough space is reserved for the lock object. newlib/ChangeLog 2015-07-30 Sebastian Huber <sebastian.huber@embedded-brains.de> * libc/sys/rtems/include/sys/lock.h (__LOCK_INIT_RECURSIVE): Use proper type.
2015-07-30[AArch64] Rewrite optimized memset.Wilco Dijkstra
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.
2015-07-29Move header filesSebastian Huber
During libgcc build the first include search path for <...> is "../newlib/libc/sys/rtems/include". Move all RTEMS specific header files to "libc/sys/rtems/include" so that they can be found. Later during libc build the header files in the previous location were somehow present, but for libgcc build they were invisible. This change is necessary to use <pthread.h> for the GCC thread model implementation. newlib/ChangeLog 2015-07-27 Sebastian Huber <sebastian.huber@embedded-brains.de> libc/sys/rtems/machine/_types.h: Move to ... libc/sys/rtems/include/machine/_types.h: ... here. libc/sys/rtems/machine/limits.h: Move to ... libc/sys/rtems/include/machine/limits.h: ... here. libc/sys/rtems/machine/param.h: Move to ... libc/sys/rtems/include/machine/param.h: ... here. libc/sys/rtems/sys/cpuset.h: Move to ... libc/sys/rtems/include/sys/cpuset.h: ... here. libc/sys/rtems/sys/dirent.h: Move to ... libc/sys/rtems/include/sys/dirent.h: ... here. libc/sys/rtems/sys/param.h: Move to ... libc/sys/rtems/include/sys/param.h: ... here. libc/sys/rtems/sys/syslimits.h: Move to ... libc/sys/rtems/include/sys/syslimits.h: ... here. libc/sys/rtems/sys/utime.h: Move to ... libc/sys/rtems/include/sys/utime.h: ... here.
2015-07-29newlib/ChangeLog: Left out of previous commit.Joel Sherrill
2015-07-29Add <sys/lock.h>Sebastian Huber
Provide self-contained synchronization objects for RTEMS. The API was designed to be able to use it for the Newlib internal locks, the C11 threads support, the GCC thread model support and the libgomp operating system configuration in combination with <pthread.h>. References: https://lists.rtems.org/pipermail/devel/2015-July/011989.html https://lists.rtems.org/pipermail/devel/2015-July/012000.html Tickets: https://devel.rtems.org/ticket/1247 https://devel.rtems.org/ticket/2274. v2: Fix typo in _Condition_Wait_recursive_timed() declaration. newlib/ChangeLog 2015-07-28 Sebastian Huber <sebastian.huber@embedded-brains.de> * libc/sys/rtems/include/sys/lock.h: New.
2015-07-24Remove workaround for texinfo bug with underscores in filenames from ↵newlib-snapshot-20150723Jon TURNEY
mothballed mathfp/ This got removed everywhere else in commit 139f923b, so I'm assuming whatever ancient bug this was has been fixed long since. There are plenty of other uses of texinfo with a filename containing an underscore now. Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2015-07-24Remove a stray sentence fragment in iconv.texJon TURNEY
I can't work out any meaning for this random sentence fragment, so remove it. Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2015-07-24Fix a typo in iconv.texJon TURNEY
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2015-07-24Fix SYNPOSIS prototypes for iconv functionsJon TURNEY
Terminate all protoypes with a semicolon. Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2015-07-24Use makedoc generated texinfo documentation for reentrant syscallsJon TURNEY
We use texinfo nodes beginning with an underscore in several other places, so revert this ancient workaround for a no longer existing bug, and use the makedoc generated texinfo for reentrant versions of syscalls, rather than handwritten documentation. Also alphabetically sort these functions. Also add documentation for _execve_r, _getpid_r, _kill_r and _times_r functions, whose non-reentrant versions are documented as stubs v2: Keep _open64_r, _lseek64_r and _fstat64_r functions under texinfo conditional STDIO64 Add _stat64_r function likewise. Notes: 1. The handwritten prototypes give the reentrancy structure pointer as of type void *, rather than the presumably more correct struct __reent * 2. The fcntl, gettimeofday, mkdir and rename functions are not documented as stubs, so I haven't added the reentrant versions either Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2015-07-24Add missing NEWPAGE commands to makedoc markup in reent/Jon TURNEY
makedoc requires a NEWPAGE command to preceed the second and subsequent FUNCTION commands in a file in order to produce the correct texinfo output. Add missing NEWPAGE commands needed in reent/execr.c. and reent/signalr.c, which contain makedoc markup for multiple functions. Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2015-07-21Cygwin: Implement siglongjmp and sigsetjmp functions.Corinna Vinschen
* libc/include/machine/setjmp.h (siglongjmp): Declare as function on Cygwin. (sigsetjmp): Ditto. (_longjmp): Mark as noreturn function on Cygwin. * common.din (siglongjmp): Export. (sigsetjmp): Export. * gendef: Change formatting of some comments. (sigsetjmp): Implement. (siglongjmp): Implement. (__setjmpex): x86_64 only: Drop entry point. (setjmp): x86_64 only: Store tls stackptr in Frame now, store MXCSR and FPUCW registers in Spare, as MSVCRT does. (longjmp): x86_64 only: Restore tls stackptr from Frame now, restore MXCSR and FPUCW registers from Spare. * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. * new-features.xml (ov-new2.2): Document sigsetjmp, siglongjmp. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-07-15[AArch64] Reverting recent optimized memset().Marcus Shawcroft
2015-07-13[AArch64] Optimized memset.Wilco Dijkstra
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.
2015-07-13Fix ChangeLog entry for previous two commits.Marcus Shawcroft
2015-07-13[AArch64] Optimized memcpy.Wilco Dijkstra
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.
2015-07-13[AArch64] Optimized memmove.Wilco Dijkstra
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.