aboutsummaryrefslogtreecommitdiff
path: root/src/malloc/aligned_alloc.c (unfollow)
Commit message (Expand)AuthorFilesLines
2015-03-11math: add dummy implementations of 128 bit long double functions•••This is in preparation for the aarch64 port only to have the long double math symbols available on ld128 platforms. The implementations should be fixed up later once we have proper tests for these functions. Added bigendian handling for ld128 bit manipulations too. Szabolcs Nagy17-4/+111
2015-03-11math: add ld128 exp2l based on the freebsd implementation•••Changed the special case handling and bit manipulation to better match the double version. Szabolcs Nagy1-1/+366
2015-03-11copy the dtv pointer to the end of the pthread struct for TLS_ABOVE_TP archs•••There are two main abi variants for thread local storage layout: (1) TLS is above the thread pointer at a fixed offset and the pthread struct is below that. So the end of the struct is at known offset. (2) the thread pointer points to the pthread struct and TLS starts below it. So the start of the struct is at known (zero) offset. Assembly code for the dynamic TLSDESC callback needs to access the dynamic thread vector (dtv) pointer which is currently at the front of the pthread struct. So in case of (1) the asm code needs to hard code the offset from the end of the struct which can easily break if the struct changes. This commit adds a copy of the dtv at the end of the struct. New members must not be added after dtv_copy, only before it. The size of the struct is increased a bit, but there is opportunity for size optimizations. Szabolcs Nagy3-4/+5
2015-03-07fix regression in pthread_cond_wait with cancellation disabled•••due to a logic error in the use of masked cancellation mode, pthread_cond_wait did not honor PTHREAD_CANCEL_DISABLE but instead failed with ECANCELED when cancellation was pending. Rich Felker1-0/+1
2015-03-07fix FLT_ROUNDS to reflect the current rounding mode•••Implemented as a wrapper around fegetround introducing a new function to the ABI: __flt_rounds. (fegetround cannot be used directly from float.h) Szabolcs Nagy11-9/+22
2015-03-06fix over-alignment of TLS, insufficient builtin TLS on 64-bit archs•••a conservative estimate of 4*sizeof(size_t) was used as the minimum alignment for thread-local storage, despite the only requirements being alignment suitable for struct pthread and void* (which struct pthread already contains). additional alignment required by the application or libraries is encoded in their headers and is already applied. over-alignment prevented the builtin_tls array from ever being used in dynamic-linked programs on 64-bit archs, thereby requiring allocation at startup even in programs with no TLS of their own. Rich Felker2-4/+16