diff options
author | Vineet Gupta <vgupta@synopsys.com> | 2016-09-16 17:23:26 -0700 |
---|---|---|
committer | Vineet Gupta <vgupta@synopsys.com> | 2016-09-30 14:48:22 -0700 |
commit | 5a205a32ffccf6e720a2d2b3aee44b16619016a6 (patch) | |
tree | 9ff1460c48ecbcc382405826ff53c5329bd5a9dd /arch/arc/include/asm/linkage.h | |
parent | ARC: entry: make ret_from_system_call local label (diff) | |
download | linux-dev-5a205a32ffccf6e720a2d2b3aee44b16619016a6.tar.xz linux-dev-5a205a32ffccf6e720a2d2b3aee44b16619016a6.zip |
ARC: dw2 unwind: add infrastructure for adding cfi pseudo ops to asm
1. detect whether binutils supports the cfi pseudo ops
2. define conditional macros to generate the ops
3. define new ENTRY_CFI/END_CFI to annotate hand asm code.
- Needed because we don't want to emit dwarf info in general ENTRY/END
used by lowest level trap/exception/interrutp handlers as unwinder
gets confused trying to unwind out of them. We want unwinder to
instead stop when it hits onfo those routines
- These provide minimal start/end cfi ops assuming routine doesn't
touch stack memory/regs
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Diffstat (limited to 'arch/arc/include/asm/linkage.h')
-rw-r--r-- | arch/arc/include/asm/linkage.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/arc/include/asm/linkage.h b/arch/arc/include/asm/linkage.h index 5faad17118b4..b29f1a9fd6f7 100644 --- a/arch/arc/include/asm/linkage.h +++ b/arch/arc/include/asm/linkage.h @@ -9,6 +9,8 @@ #ifndef __ASM_LINKAGE_H #define __ASM_LINKAGE_H +#include <asm/dwarf.h> + #ifdef __ASSEMBLY__ #define ASM_NL ` /* use '`' to mark new line in macro */ @@ -32,6 +34,16 @@ #endif .endm +#define ENTRY_CFI(name) \ + .globl name ASM_NL \ + ALIGN ASM_NL \ + name: ASM_NL \ + CFI_STARTPROC ASM_NL + +#define END_CFI(name) \ + CFI_ENDPROC ASM_NL \ + .size name, .-name + #else /* !__ASSEMBLY__ */ #ifdef CONFIG_ARC_HAS_ICCM |