re PR debug/83917 (with -mcall-ms2sysv-xlogues, stepping into x86 tail-call restore stub gives bad backtrace)
PR debug/83917 * config/i386/i386-asm.h (PACKAGE_VERSION, PACKAGE_NAME, PACKAGE_STRING, PACKAGE_TARNAME, PACKAGE_URL): Undefine between inclusion of auto-target.h and auto-host.h. (USE_GAS_CFI_DIRECTIVES): Define if not defined already based on __GCC_HAVE_DWARF2_CFI_ASM. (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset, cfi_def_cfa_register, cfi_def_cfa, cfi_register, cfi_offset, cfi_push, cfi_pop): Define. * config/i386/cygwin.S: Don't include auto-host.h here, just define USE_GAS_CFI_DIRECTIVES to 1 or 0 and include i386-asm.h. (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset, cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): Remove. * config/i386/resms64fx.h: Add cfi_* directives. * config/i386/resms64x.h: Likewise. From-SVN: r258010
This commit is contained in:
parent
106b15eac3
commit
e586831971
@ -1,3 +1,21 @@
|
||||
2018-02-26 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR debug/83917
|
||||
* config/i386/i386-asm.h (PACKAGE_VERSION, PACKAGE_NAME,
|
||||
PACKAGE_STRING, PACKAGE_TARNAME, PACKAGE_URL): Undefine between
|
||||
inclusion of auto-target.h and auto-host.h.
|
||||
(USE_GAS_CFI_DIRECTIVES): Define if not defined already based on
|
||||
__GCC_HAVE_DWARF2_CFI_ASM.
|
||||
(cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
|
||||
cfi_def_cfa_register, cfi_def_cfa, cfi_register, cfi_offset, cfi_push,
|
||||
cfi_pop): Define.
|
||||
* config/i386/cygwin.S: Don't include auto-host.h here, just
|
||||
define USE_GAS_CFI_DIRECTIVES to 1 or 0 and include i386-asm.h.
|
||||
(cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
|
||||
cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): Remove.
|
||||
* config/i386/resms64fx.h: Add cfi_* directives.
|
||||
* config/i386/resms64x.h: Likewise.
|
||||
|
||||
2018-02-20 Max Filippov <jcmvbkbc@gmail.com>
|
||||
|
||||
* config/xtensa/ieee754-df.S (__adddf3_aux): Add
|
||||
|
@ -23,31 +23,13 @@
|
||||
* <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "auto-host.h"
|
||||
|
||||
#ifdef HAVE_GAS_CFI_SECTIONS_DIRECTIVE
|
||||
# define USE_GAS_CFI_DIRECTIVES 1
|
||||
.cfi_sections .debug_frame
|
||||
# define cfi_startproc() .cfi_startproc
|
||||
# define cfi_endproc() .cfi_endproc
|
||||
# define cfi_adjust_cfa_offset(X) .cfi_adjust_cfa_offset X
|
||||
# define cfi_def_cfa_register(X) .cfi_def_cfa_register X
|
||||
# define cfi_register(D,S) .cfi_register D, S
|
||||
# ifdef __x86_64__
|
||||
# define cfi_push(X) .cfi_adjust_cfa_offset 8; .cfi_rel_offset X, 0
|
||||
# define cfi_pop(X) .cfi_adjust_cfa_offset -8; .cfi_restore X
|
||||
# else
|
||||
# define cfi_push(X) .cfi_adjust_cfa_offset 4; .cfi_rel_offset X, 0
|
||||
# define cfi_pop(X) .cfi_adjust_cfa_offset -4; .cfi_restore X
|
||||
# endif
|
||||
#else
|
||||
# define cfi_startproc()
|
||||
# define cfi_endproc()
|
||||
# define cfi_adjust_cfa_offset(X)
|
||||
# define cfi_def_cfa_register(X)
|
||||
# define cfi_register(D,S)
|
||||
# define cfi_push(X)
|
||||
# define cfi_pop(X)
|
||||
#endif /* HAVE_GAS_CFI_SECTIONS_DIRECTIVE */
|
||||
# define USE_GAS_CFI_DIRECTIVES 0
|
||||
#endif
|
||||
#include "i386-asm.h"
|
||||
|
||||
#ifdef L_chkstk
|
||||
/* Function prologue calls __chkstk to probe the stack when allocating more
|
||||
|
@ -27,8 +27,47 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
#define I386_ASM_H
|
||||
|
||||
#include "auto-target.h"
|
||||
#undef PACKAGE_VERSION
|
||||
#undef PACKAGE_NAME
|
||||
#undef PACKAGE_STRING
|
||||
#undef PACKAGE_TARNAME
|
||||
#undef PACKAGE_URL
|
||||
#include "auto-host.h"
|
||||
|
||||
#ifndef USE_GAS_CFI_DIRECTIVES
|
||||
# ifdef __GCC_HAVE_DWARF2_CFI_ASM
|
||||
# define USE_GAS_CFI_DIRECTIVES 1
|
||||
# else
|
||||
# define USE_GAS_CFI_DIRECTIVES 0
|
||||
# endif
|
||||
#endif
|
||||
#if USE_GAS_CFI_DIRECTIVES
|
||||
# define cfi_startproc() .cfi_startproc
|
||||
# define cfi_endproc() .cfi_endproc
|
||||
# define cfi_adjust_cfa_offset(X) .cfi_adjust_cfa_offset X
|
||||
# define cfi_def_cfa_register(X) .cfi_def_cfa_register X
|
||||
# define cfi_def_cfa(R,O) .cfi_def_cfa R, O
|
||||
# define cfi_register(D,S) .cfi_register D, S
|
||||
# define cfi_offset(R,O) .cfi_offset R, O
|
||||
# ifdef __x86_64__
|
||||
# define cfi_push(X) .cfi_adjust_cfa_offset 8; .cfi_rel_offset X, 0
|
||||
# define cfi_pop(X) .cfi_adjust_cfa_offset -8; .cfi_restore X
|
||||
# else
|
||||
# define cfi_push(X) .cfi_adjust_cfa_offset 4; .cfi_rel_offset X, 0
|
||||
# define cfi_pop(X) .cfi_adjust_cfa_offset -4; .cfi_restore X
|
||||
# endif
|
||||
#else
|
||||
# define cfi_startproc()
|
||||
# define cfi_endproc()
|
||||
# define cfi_adjust_cfa_offset(X)
|
||||
# define cfi_def_cfa_register(X)
|
||||
# define cfi_def_cfa(R,O)
|
||||
# define cfi_register(D,S)
|
||||
# define cfi_offset(R,O)
|
||||
# define cfi_push(X)
|
||||
# define cfi_pop(X)
|
||||
#endif
|
||||
|
||||
#define PASTE2(a, b) PASTE2a(a, b)
|
||||
#define PASTE2a(a, b) a ## b
|
||||
|
||||
|
@ -33,6 +33,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
* from the function. */
|
||||
|
||||
.text
|
||||
cfi_startproc()
|
||||
cfi_offset(%rbp, -16)
|
||||
cfi_def_cfa(%rbp, 16)
|
||||
MS2SYSV_STUB_BEGIN(resms64fx_17)
|
||||
mov -0x68(%rsi),%r15
|
||||
MS2SYSV_STUB_BEGIN(resms64fx_16)
|
||||
@ -48,7 +51,9 @@ MS2SYSV_STUB_BEGIN(resms64fx_12)
|
||||
SSE_RESTORE
|
||||
mov -0x38(%rsi),%rsi
|
||||
leaveq
|
||||
cfi_def_cfa(%rsp, 8)
|
||||
ret
|
||||
cfi_endproc()
|
||||
MS2SYSV_STUB_END(resms64fx_12)
|
||||
MS2SYSV_STUB_END(resms64fx_13)
|
||||
MS2SYSV_STUB_END(resms64fx_14)
|
||||
|
@ -32,6 +32,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
* function. */
|
||||
|
||||
.text
|
||||
cfi_startproc()
|
||||
cfi_def_cfa(%r10, 8)
|
||||
MS2SYSV_STUB_BEGIN(resms64x_18)
|
||||
mov -0x70(%rsi),%r15
|
||||
MS2SYSV_STUB_BEGIN(resms64x_17)
|
||||
@ -49,7 +51,9 @@ MS2SYSV_STUB_BEGIN(resms64x_12)
|
||||
SSE_RESTORE
|
||||
mov -0x38(%rsi),%rsi
|
||||
mov %r10,%rsp
|
||||
cfi_def_cfa_register(%rsp)
|
||||
ret
|
||||
cfi_endproc()
|
||||
MS2SYSV_STUB_END(resms64x_12)
|
||||
MS2SYSV_STUB_END(resms64x_13)
|
||||
MS2SYSV_STUB_END(resms64x_14)
|
||||
|
Loading…
Reference in New Issue
Block a user