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>
|
2018-02-20 Max Filippov <jcmvbkbc@gmail.com>
|
||||||
|
|
||||||
* config/xtensa/ieee754-df.S (__adddf3_aux): Add
|
* config/xtensa/ieee754-df.S (__adddf3_aux): Add
|
||||||
|
|
|
@ -23,31 +23,13 @@
|
||||||
* <http://www.gnu.org/licenses/>.
|
* <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "auto-host.h"
|
|
||||||
|
|
||||||
#ifdef HAVE_GAS_CFI_SECTIONS_DIRECTIVE
|
#ifdef HAVE_GAS_CFI_SECTIONS_DIRECTIVE
|
||||||
|
# define USE_GAS_CFI_DIRECTIVES 1
|
||||||
.cfi_sections .debug_frame
|
.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
|
#else
|
||||||
# define cfi_startproc()
|
# define USE_GAS_CFI_DIRECTIVES 0
|
||||||
# define cfi_endproc()
|
#endif
|
||||||
# define cfi_adjust_cfa_offset(X)
|
#include "i386-asm.h"
|
||||||
# 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 */
|
|
||||||
|
|
||||||
#ifdef L_chkstk
|
#ifdef L_chkstk
|
||||||
/* Function prologue calls __chkstk to probe the stack when allocating more
|
/* 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
|
#define I386_ASM_H
|
||||||
|
|
||||||
#include "auto-target.h"
|
#include "auto-target.h"
|
||||||
|
#undef PACKAGE_VERSION
|
||||||
|
#undef PACKAGE_NAME
|
||||||
|
#undef PACKAGE_STRING
|
||||||
|
#undef PACKAGE_TARNAME
|
||||||
|
#undef PACKAGE_URL
|
||||||
#include "auto-host.h"
|
#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 PASTE2(a, b) PASTE2a(a, b)
|
||||||
#define PASTE2a(a, b) 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. */
|
* from the function. */
|
||||||
|
|
||||||
.text
|
.text
|
||||||
|
cfi_startproc()
|
||||||
|
cfi_offset(%rbp, -16)
|
||||||
|
cfi_def_cfa(%rbp, 16)
|
||||||
MS2SYSV_STUB_BEGIN(resms64fx_17)
|
MS2SYSV_STUB_BEGIN(resms64fx_17)
|
||||||
mov -0x68(%rsi),%r15
|
mov -0x68(%rsi),%r15
|
||||||
MS2SYSV_STUB_BEGIN(resms64fx_16)
|
MS2SYSV_STUB_BEGIN(resms64fx_16)
|
||||||
|
@ -48,7 +51,9 @@ MS2SYSV_STUB_BEGIN(resms64fx_12)
|
||||||
SSE_RESTORE
|
SSE_RESTORE
|
||||||
mov -0x38(%rsi),%rsi
|
mov -0x38(%rsi),%rsi
|
||||||
leaveq
|
leaveq
|
||||||
|
cfi_def_cfa(%rsp, 8)
|
||||||
ret
|
ret
|
||||||
|
cfi_endproc()
|
||||||
MS2SYSV_STUB_END(resms64fx_12)
|
MS2SYSV_STUB_END(resms64fx_12)
|
||||||
MS2SYSV_STUB_END(resms64fx_13)
|
MS2SYSV_STUB_END(resms64fx_13)
|
||||||
MS2SYSV_STUB_END(resms64fx_14)
|
MS2SYSV_STUB_END(resms64fx_14)
|
||||||
|
|
|
@ -32,6 +32,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||||
* function. */
|
* function. */
|
||||||
|
|
||||||
.text
|
.text
|
||||||
|
cfi_startproc()
|
||||||
|
cfi_def_cfa(%r10, 8)
|
||||||
MS2SYSV_STUB_BEGIN(resms64x_18)
|
MS2SYSV_STUB_BEGIN(resms64x_18)
|
||||||
mov -0x70(%rsi),%r15
|
mov -0x70(%rsi),%r15
|
||||||
MS2SYSV_STUB_BEGIN(resms64x_17)
|
MS2SYSV_STUB_BEGIN(resms64x_17)
|
||||||
|
@ -49,7 +51,9 @@ MS2SYSV_STUB_BEGIN(resms64x_12)
|
||||||
SSE_RESTORE
|
SSE_RESTORE
|
||||||
mov -0x38(%rsi),%rsi
|
mov -0x38(%rsi),%rsi
|
||||||
mov %r10,%rsp
|
mov %r10,%rsp
|
||||||
|
cfi_def_cfa_register(%rsp)
|
||||||
ret
|
ret
|
||||||
|
cfi_endproc()
|
||||||
MS2SYSV_STUB_END(resms64x_12)
|
MS2SYSV_STUB_END(resms64x_12)
|
||||||
MS2SYSV_STUB_END(resms64x_13)
|
MS2SYSV_STUB_END(resms64x_13)
|
||||||
MS2SYSV_STUB_END(resms64x_14)
|
MS2SYSV_STUB_END(resms64x_14)
|
||||||
|
|
Loading…
Reference in New Issue