aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorMatt Fleming <matt@console-pimps.org>2009-08-02 17:40:11 -0400
committerPaul Mundt <lethal@linux-sh.org>2009-08-13 13:02:07 -0400
commitcafb0ddac60556f7d2d4cd0ef1a93da8a6c71ffb (patch)
treeb63a7d48bf913b03635e220f1f35fe31edbdf2c0 /arch
parent0b930489b8606224b829c8a6037eac24249a97ec (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')
-rw-r--r--arch/sh/kernel/entry-common.S7
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
68ret_from_exception: 69ret_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()
70ENTRY(ret_from_irq) 76ENTRY(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
2451: .long debug_trap_table 2521: .long debug_trap_table