Fix CFI info in x86-64 trampolines for non-AVX code

This commit is contained in:
Ulrich Drepper 2011-08-20 08:56:30 -04:00
parent 94d7165ffa
commit c88f17668b
3 changed files with 27 additions and 11 deletions

View File

@ -1,3 +1,11 @@
2011-08-20 Ulrich Drepper <drepper@gmail.com>
* sysdeps/x86_64/dl-trampoline.h: If MORE_CODE is defined, restore
the CFI state in the end.
* sysdeps/x86_64/dl-trampoline.S: Define MORE_CODE before first
inclusion of dl-trampoline.h.
Based on a patch by Jiri Olsa <jolsa@redhat.com>.
2011-08-19 Andreas Schwab <schwab@redhat.com> 2011-08-19 Andreas Schwab <schwab@redhat.com>
* sysdeps/powerpc/fpu/libm-test-ulps: Relax ctan (0.75 + 1.25 i) * sysdeps/powerpc/fpu/libm-test-ulps: Relax ctan (0.75 + 1.25 i)

View File

@ -158,6 +158,7 @@ L(have_avx):
1: js L(no_avx) 1: js L(no_avx)
# define RESTORE_AVX # define RESTORE_AVX
# define MORE_CODE
# include "dl-trampoline.h" # include "dl-trampoline.h"
.align 16 .align 16

View File

@ -1,6 +1,6 @@
/* Partial PLT profile trampoline to save and restore x86-64 vector /* Partial PLT profile trampoline to save and restore x86-64 vector
registers. registers.
Copyright (C) 2009 Free Software Foundation, Inc. Copyright (C) 2009, 2011 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -267,3 +267,10 @@
# (eats the reloc index and link_map) # (eats the reloc index and link_map)
cfi_adjust_cfa_offset(-48) cfi_adjust_cfa_offset(-48)
retq retq
#ifdef MORE_CODE
cfi_adjust_cfa_offset(48)
cfi_rel_offset(%rbx, 0)
cfi_def_cfa_register(%rbx)
# undef MORE_CODE
#endif