linux/arch/x86/include/asm/dwarf2.h
<<
>>
Prefs
   1#ifndef _ASM_X86_DWARF2_H
   2#define _ASM_X86_DWARF2_H
   3
   4#ifndef __ASSEMBLY__
   5#warning "asm/dwarf2.h should be only included in pure assembly files"
   6#endif
   7
   8/*
   9 * Macros for dwarf2 CFI unwind table entries.
  10 * See "as.info" for details on these pseudo ops. Unfortunately
  11 * they are only supported in very new binutils, so define them
  12 * away for older version.
  13 */
  14
  15#ifdef CONFIG_AS_CFI
  16
  17#define CFI_STARTPROC           .cfi_startproc
  18#define CFI_ENDPROC             .cfi_endproc
  19#define CFI_DEF_CFA             .cfi_def_cfa
  20#define CFI_DEF_CFA_REGISTER    .cfi_def_cfa_register
  21#define CFI_DEF_CFA_OFFSET      .cfi_def_cfa_offset
  22#define CFI_ADJUST_CFA_OFFSET   .cfi_adjust_cfa_offset
  23#define CFI_OFFSET              .cfi_offset
  24#define CFI_REL_OFFSET          .cfi_rel_offset
  25#define CFI_REGISTER            .cfi_register
  26#define CFI_RESTORE             .cfi_restore
  27#define CFI_REMEMBER_STATE      .cfi_remember_state
  28#define CFI_RESTORE_STATE       .cfi_restore_state
  29#define CFI_UNDEFINED           .cfi_undefined
  30#define CFI_ESCAPE              .cfi_escape
  31
  32#ifdef CONFIG_AS_CFI_SIGNAL_FRAME
  33#define CFI_SIGNAL_FRAME        .cfi_signal_frame
  34#else
  35#define CFI_SIGNAL_FRAME
  36#endif
  37
  38#if defined(CONFIG_AS_CFI_SECTIONS) && defined(__ASSEMBLY__)
  39#ifndef BUILD_VDSO
  40        /*
  41         * Emit CFI data in .debug_frame sections, not .eh_frame sections.
  42         * The latter we currently just discard since we don't do DWARF
  43         * unwinding at runtime.  So only the offline DWARF information is
  44         * useful to anyone.  Note we should not use this directive if
  45         * vmlinux.lds.S gets changed so it doesn't discard .eh_frame.
  46         */
  47        .cfi_sections .debug_frame
  48#else
  49         /*
  50          * For the vDSO, emit both runtime unwind information and debug
  51          * symbols for the .dbg file.
  52          */
  53        .cfi_sections .eh_frame, .debug_frame
  54#endif
  55#endif
  56
  57#else
  58
  59/*
  60 * Due to the structure of pre-exisiting code, don't use assembler line
  61 * comment character # to ignore the arguments. Instead, use a dummy macro.
  62 */
  63.macro cfi_ignore a=0, b=0, c=0, d=0
  64.endm
  65
  66#define CFI_STARTPROC           cfi_ignore
  67#define CFI_ENDPROC             cfi_ignore
  68#define CFI_DEF_CFA             cfi_ignore
  69#define CFI_DEF_CFA_REGISTER    cfi_ignore
  70#define CFI_DEF_CFA_OFFSET      cfi_ignore
  71#define CFI_ADJUST_CFA_OFFSET   cfi_ignore
  72#define CFI_OFFSET              cfi_ignore
  73#define CFI_REL_OFFSET          cfi_ignore
  74#define CFI_REGISTER            cfi_ignore
  75#define CFI_RESTORE             cfi_ignore
  76#define CFI_REMEMBER_STATE      cfi_ignore
  77#define CFI_RESTORE_STATE       cfi_ignore
  78#define CFI_UNDEFINED           cfi_ignore
  79#define CFI_ESCAPE              cfi_ignore
  80#define CFI_SIGNAL_FRAME        cfi_ignore
  81
  82#endif
  83
  84#endif /* _ASM_X86_DWARF2_H */
  85