mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
Replace hand-coded unwind tables from x86-64 pthread_once.
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
/* Generic asm macros used on many machines.
|
||||
Copyright (C) 1991,92,93,96,98,2002,2003 Free Software Foundation, Inc.
|
||||
Copyright (C) 1991,92,93,96,98,2002,2003,2009 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@ -39,13 +39,13 @@
|
||||
#ifdef __ASSEMBLER__
|
||||
/* Mark the end of function named SYM. This is used on some platforms
|
||||
to generate correct debugging information. */
|
||||
#ifndef END
|
||||
#define END(sym)
|
||||
#endif
|
||||
# ifndef END
|
||||
# define END(sym)
|
||||
# endif
|
||||
|
||||
#ifndef JUMPTARGET
|
||||
#define JUMPTARGET(sym) sym
|
||||
#endif
|
||||
# ifndef JUMPTARGET
|
||||
# define JUMPTARGET(sym) sym
|
||||
# endif
|
||||
|
||||
/* Makros to generate eh_frame unwind information. */
|
||||
# ifdef HAVE_ASM_CFI_DIRECTIVES
|
||||
@ -65,6 +65,8 @@
|
||||
# define cfi_remember_state .cfi_remember_state
|
||||
# define cfi_restore_state .cfi_restore_state
|
||||
# define cfi_window_save .cfi_window_save
|
||||
# define cfi_personality(enc, exp) .cfi_personality enc, exp
|
||||
# define cfi_lsda(enc, exp) .cfi_lsda enc, exp
|
||||
# else
|
||||
# define cfi_startproc
|
||||
# define cfi_endproc
|
||||
@ -82,6 +84,8 @@
|
||||
# define cfi_remember_state
|
||||
# define cfi_restore_state
|
||||
# define cfi_window_save
|
||||
# define cfi_personality(enc, exp)
|
||||
# define cfi_lsda(enc, exp)
|
||||
# endif
|
||||
|
||||
#else /* ! ASSEMBLER */
|
||||
@ -116,6 +120,10 @@
|
||||
".cfi_restore_state"
|
||||
# define CFI_WINDOW_SAVE \
|
||||
".cfi_window_save"
|
||||
# define CFI_PERSONALITY(enc, exp) \
|
||||
".cfi_personality " CFI_STRINGIFY(enc) "," CFI_STRINGIFY(exp)
|
||||
# define CFI_LSDA(enc, exp) \
|
||||
".cfi_lsda " CFI_STRINGIFY(enc) "," CFI_STRINGIFY(exp)
|
||||
# else
|
||||
# define CFI_STARTPROC
|
||||
# define CFI_ENDPROC
|
||||
@ -132,6 +140,27 @@
|
||||
# define CFI_REMEMBER_STATE
|
||||
# define CFI_RESTORE_STATE
|
||||
# define CFI_WINDOW_SAVE
|
||||
# define CFI_PERSONALITY(enc, exp)
|
||||
# define CFI_LSDA(enc, exp)
|
||||
# endif
|
||||
|
||||
#endif /* __ASSEMBLER__ */
|
||||
|
||||
/* Values used for encoding parameter of cfi_personality and cfi_lsda. */
|
||||
#define DW_EH_PE_absptr 0x00
|
||||
#define DW_EH_PE_omit 0xff
|
||||
#define DW_EH_PE_uleb128 0x01
|
||||
#define DW_EH_PE_udata2 0x02
|
||||
#define DW_EH_PE_udata4 0x03
|
||||
#define DW_EH_PE_udata8 0x04
|
||||
#define DW_EH_PE_sleb128 0x09
|
||||
#define DW_EH_PE_sdata2 0x0a
|
||||
#define DW_EH_PE_sdata4 0x0b
|
||||
#define DW_EH_PE_sdata8 0x0c
|
||||
#define DW_EH_PE_signed 0x08
|
||||
#define DW_EH_PE_pcrel 0x10
|
||||
#define DW_EH_PE_textrel 0x20
|
||||
#define DW_EH_PE_datarel 0x30
|
||||
#define DW_EH_PE_funcrel 0x40
|
||||
#define DW_EH_PE_aligned 0x50
|
||||
#define DW_EH_PE_indirect 0x80
|
||||
|
Reference in New Issue
Block a user