ecaf45ee5c
- Move them to a pure assembly file. Previously they were in a C file that only consisted of inline assembly. Doing it in pure assembler is much nicer. - Add a frame.i include with FRAME/ENDFRAME macros to easily add frame pointers to assembly functions - Add dwarf2 annotation to them so that the new dwarf2 unwinder doesn't get stuck on them - Random cleanups Includes feedback from Jan Beulich and a UML build fix from Andrew Morton. Cc: jbeulich@novell.com Cc: jdike@addtoit.com Signed-off-by: Andi Kleen <ak@suse.de>
25 lines
479 B
OpenEdge ABL
25 lines
479 B
OpenEdge ABL
#include <linux/config.h>
|
|
#include <asm/dwarf2.h>
|
|
|
|
/* The annotation hides the frame from the unwinder and makes it look
|
|
like a ordinary ebp save/restore. This avoids some special cases for
|
|
frame pointer later */
|
|
#ifdef CONFIG_FRAME_POINTER
|
|
.macro FRAME
|
|
pushl %ebp
|
|
CFI_ADJUST_CFA_OFFSET 4
|
|
CFI_REL_OFFSET ebp,0
|
|
movl %esp,%ebp
|
|
.endm
|
|
.macro ENDFRAME
|
|
popl %ebp
|
|
CFI_ADJUST_CFA_OFFSET -4
|
|
CFI_RESTORE ebp
|
|
.endm
|
|
#else
|
|
.macro FRAME
|
|
.endm
|
|
.macro ENDFRAME
|
|
.endm
|
|
#endif
|