1 #ifndef _DWARF2_H 2 #define _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_UNWIND_INFO 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 31 #ifdef CONFIG_AS_CFI_SIGNAL_FRAME 32 #define CFI_SIGNAL_FRAME .cfi_signal_frame 33 #else 34 #define CFI_SIGNAL_FRAME 35 #endif 36 37 #else 38 39 /* Due to the structure of pre-exisiting code, don't use assembler line 40 comment character # to ignore the arguments. Instead, use a dummy macro. */ 41 .macro ignore a=0, b=0, c=0, d=0 42 .endm 43 44 #define CFI_STARTPROC ignore 45 #define CFI_ENDPROC ignore 46 #define CFI_DEF_CFA ignore 47 #define CFI_DEF_CFA_REGISTER ignore 48 #define CFI_DEF_CFA_OFFSET ignore 49 #define CFI_ADJUST_CFA_OFFSET ignore 50 #define CFI_OFFSET ignore 51 #define CFI_REL_OFFSET ignore 52 #define CFI_REGISTER ignore 53 #define CFI_RESTORE ignore 54 #define CFI_REMEMBER_STATE ignore 55 #define CFI_RESTORE_STATE ignore 56 #define CFI_UNDEFINED ignore 57 #define CFI_SIGNAL_FRAME ignore 58 59 #endif 60 61 #endif 62