diff options
author | Ulrich Drepper <drepper@redhat.com> | 2009-08-25 10:42:30 -0700 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2009-08-25 10:42:30 -0700 |
commit | 84088310ce06bfc5759b37f0cd043dce80f578b6 (patch) | |
tree | d3bb1a5e1b7d77c1bad3ebef67d19510d51b4569 /sysdeps | |
parent | cf00cc00bc53ab26b23b810b4bfbdfb43262538a (diff) | |
download | glibc-84088310ce06bfc5759b37f0cd043dce80f578b6.tar.gz glibc-84088310ce06bfc5759b37f0cd043dce80f578b6.tar.xz glibc-84088310ce06bfc5759b37f0cd043dce80f578b6.zip |
Handle AVX saving on x86-64 in interrupted smbol lookups.
If a signal arrived during a symbol lookup and the signal handler also required a symbol lookup, the end of the lookup in the signal handler reset the flag whether restoring AVX/SSE registers is needed. Resetting means in this case that the tail part of the outer lookup code will try to restore the registers and this can fail miserably. We now restore to the previous value which makes nesting calls possible.
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/x86_64/dl-trampoline.S | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/sysdeps/x86_64/dl-trampoline.S b/sysdeps/x86_64/dl-trampoline.S index f9c60ad5cf..5564a11af2 100644 --- a/sysdeps/x86_64/dl-trampoline.S +++ b/sysdeps/x86_64/dl-trampoline.S @@ -197,7 +197,6 @@ _dl_x86_64_save_sse: ret L(no_avx5): # endif -# define YMM_SIZE 16 movdqa %xmm0, %fs:RTLD_SAVESPACE_SSE+0*XMM_SIZE movdqa %xmm1, %fs:RTLD_SAVESPACE_SSE+1*XMM_SIZE movdqa %xmm2, %fs:RTLD_SAVESPACE_SSE+2*XMM_SIZE |