Browse Source

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>
Matt Fleming 16 years ago
parent
commit
cafb0ddac6
1 changed files with 7 additions and 0 deletions
  1. 7 0
      arch/sh/kernel/entry-common.S

+ 7 - 0
arch/sh/kernel/entry-common.S

@@ -43,6 +43,7 @@
  *	syscall #
  *	syscall #
  *
  *
  */
  */
+#include <asm/dwarf.h>
 
 
 #if defined(CONFIG_PREEMPT)
 #if defined(CONFIG_PREEMPT)
 #  define preempt_stop()	cli ; TRACE_IRQS_OFF
 #  define preempt_stop()	cli ; TRACE_IRQS_OFF
@@ -66,6 +67,11 @@ ENTRY(exception_error)
 
 
 	.align	2
 	.align	2
 ret_from_exception:
 ret_from_exception:
+	CFI_STARTPROC simple
+	CFI_DEF_CFA r14, 0
+	CFI_REL_OFFSET 17, 64
+	CFI_REL_OFFSET 15, 0
+	CFI_REL_OFFSET 14, 56
 	preempt_stop()
 	preempt_stop()
 ENTRY(ret_from_irq)
 ENTRY(ret_from_irq)
 	!
 	!
@@ -240,6 +246,7 @@ debug_trap:
 	 nop
 	 nop
 	bra	__restore_all
 	bra	__restore_all
 	 nop
 	 nop
+	CFI_ENDPROC
 
 
 	.align	2
 	.align	2
 1:	.long	debug_trap_table
 1:	.long	debug_trap_table