Preserve SSE registers in runtime relocations on x86-64.
authorUlrich Drepper <drepper@redhat.com>
Wed, 29 Jul 2009 15:33:03 +0000 (08:33 -0700)
committerUlrich Drepper <drepper@redhat.com>
Wed, 29 Jul 2009 15:33:03 +0000 (08:33 -0700)
commitb48a267b8fbb885191a04cffdb4050a4d4c8a20b
tree1a517e3273ee5785b44a9bd5b9aec9ae62b95ac3
parent9655389317c92e5935c47d90c0ba48ca54bd245e
Preserve SSE registers in runtime relocations on x86-64.

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.
ChangeLog
elf/dl-lookup.c
elf/dl-runtime.c
nptl/ChangeLog
nptl/sysdeps/x86_64/tcb-offsets.sym
nptl/sysdeps/x86_64/tls.h
stdio-common/scanf15.c
stdio-common/scanf17.c
sysdeps/x86_64/dl-trampoline.S
sysdeps/x86_64/tst-xmmymm.sh