Age | Commit message (Collapse) | Author |
|
|
|
Register eax contains the syscall number, use a different one instead.
|
|
|
|
|
|
|
|
This patch fixes mixed SSE/AVX audit and checks AVX only once in
_dl_runtime_profile. When an AVX or SSE register value in pltenter is
modified, we have to make sure that the SSE part value is the same in both
lr_xmm and lr_vector fields so that pltexit will get the correct value
from either lr_xmm or lr_vector fields. AVX-enabled pltenter should
update both lr_xmm and lr_vector fields to support stacked AVX/SSE
pltenter functions.
|
|
For ia32, we can avoid PIC in IFUNC functions in static library.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
An invalid symbol name pointer was entered into the hash table while
enlarging it.
|
|
|
|
The meaning of the 25-14 bits in EAX returned from cpuid with EAX = 4
has been changed from "the maximum number of threads sharing the cache"
to "the maximum number of addressable IDs for logical processors sharing
the cache" if cpuid takes EAX = 11. We need to use results from both
EAX = 4 and EAX = 11 to get the number of threads sharing the cache.
The 25-14 bits in EAX on Core i7 is 15 although the number of logical
processors is 8. Here is a white paper on this:
http://software.intel.com/en-us/articles/intel-64-architecture-processor-topology-enumeration/
This patch correctly counts number of logical processors on Intel CPUs
with EAX = 11 support on cpuid. Tested on Dinnington, Core i7 and
Nehalem EX/EP.
It also fixed Pentium Ds workaround since EBX may not have the right
value returned from cpuid with EAX = 1.
|
|
The backslash-newline pair is interpreted as the beginning of an address
regex.
|
|
|
|
|
|
This patch adds 32bit SSE4.2 string functions. It uses -16L instead of
0xfffffffffffffff0L, which works for both 32bit and 64bit long. Tested
on 32bit Core i7 and Core 2.
|
|
The syscall wrappers had to save and restore the syscall parameter
values and return value when calling the functions to enable/disable
cancellation were called. Not anymore. The called functions are
special and don't modify any unexpected registers.
|
|
|
|
|
|
|
|
Better definition of the *_NITSET macros.
|
|
|
|
|
|
|
|
After a recent change to fix CFI in ____longjmp_chk the test of the
ss_flags used the wrong memory location.
|
|
This patch adds multiarch support when configured for i686. I modified
some x86-64 functions to support 32bit. I will contribute 32bit SSE string
and memory functions later.
|
|
obstack calls several callbacks, so on i?86 it'd better be compiled
without -mpreferred-stack-boundary=2, otherwise the callbacks are called
with misaligned stack.
|
|
|
|
|
|
All other i386 ports need to provide their own versions.
|
|
We use sigaltstack internally which on some systems is a syscall
and should be used as such. Move the x86-64 version to the Linux
specific directory and create in its place a file which always
causes compile errors.
|
|
|
|
|
|
|
|
|
|
The simple test previously used might trigger if the longjmp jumps
from the signal stack to the normal stack. We now explicitly test
for this case.
|
|
|
|
Use it to implement fma and fmaf, if possible.
|
|
We use a callback function into libc.so to get access to the data
structure with the information and have special versions of the test
macros which automatically use this function.
|
|
|
|
|
|
tst-audit4 and tst-audit5 fail under AVX emulator due to je instead of
jne. This patch fixes them.
|
|
SSE registers are used for passing parameters and must be preserved
in runtime relocations. This is inside ld.so enforced through the
tests in tst-xmmymm.sh. But the malloc routines used after startup
come from libc.so and can be arbitrarily complex. It's overkill
to save the SSE registers all the time because of that. These calls
are rare. Instead we save them on demand. The new infrastructure
put in place in this patch makes this possible and efficient.
|