diff options
author | Matt Fleming <matt@console-pimps.org> | 2009-08-02 17:40:11 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2009-08-13 13:02:07 -0400 |
commit | cafb0ddac60556f7d2d4cd0ef1a93da8a6c71ffb (patch) | |
tree | b63a7d48bf913b03635e220f1f35fe31edbdf2c0 /arch/sh/kernel/entry-common.S | |
parent | 0b930489b8606224b829c8a6037eac24249a97ec (diff) |
sh: Add CFI annotations for exception return.
Annotate various assembly code paths with CFI assembler directives so
that DWARF unwind info is available for the unwinder.
Signed-off-by: Matt Fleming <matt@console-pimps.org>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/kernel/entry-common.S')
-rw-r--r-- | arch/sh/kernel/entry-common.S | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/sh/kernel/entry-common.S b/arch/sh/kernel/entry-common.S index b3b215fb21f7..e63178fefb9b 100644 --- a/arch/sh/kernel/entry-common.S +++ b/arch/sh/kernel/entry-common.S | |||
@@ -43,6 +43,7 @@ | |||
43 | * syscall # | 43 | * syscall # |
44 | * | 44 | * |
45 | */ | 45 | */ |
46 | #include <asm/dwarf.h> | ||
46 | 47 | ||
47 | #if defined(CONFIG_PREEMPT) | 48 | #if defined(CONFIG_PREEMPT) |
48 | # define preempt_stop() cli ; TRACE_IRQS_OFF | 49 | # define preempt_stop() cli ; TRACE_IRQS_OFF |
@@ -66,6 +67,11 @@ ENTRY(exception_error) | |||
66 | 67 | ||
67 | .align 2 | 68 | .align 2 |
68 | ret_from_exception: | 69 | ret_from_exception: |
70 | CFI_STARTPROC simple | ||
71 | CFI_DEF_CFA r14, 0 | ||
72 | CFI_REL_OFFSET 17, 64 | ||
73 | CFI_REL_OFFSET 15, 0 | ||
74 | CFI_REL_OFFSET 14, 56 | ||
69 | preempt_stop() | 75 | preempt_stop() |
70 | ENTRY(ret_from_irq) | 76 | ENTRY(ret_from_irq) |
71 | ! | 77 | ! |
@@ -240,6 +246,7 @@ debug_trap: | |||
240 | nop | 246 | nop |
241 | bra __restore_all | 247 | bra __restore_all |
242 | nop | 248 | nop |
249 | CFI_ENDPROC | ||
243 | 250 | ||
244 | .align 2 | 251 | .align 2 |
245 | 1: .long debug_trap_table | 252 | 1: .long debug_trap_table |