| #ifdef __ASSEMBLY__ |
| |
| #include <asm/asm.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 |
| __ASM_SIZE(push,_cfi) %__ASM_REG(bp) |
| CFI_REL_OFFSET __ASM_REG(bp), 0 |
| __ASM_SIZE(mov) %__ASM_REG(sp), %__ASM_REG(bp) |
| .endm |
| .macro ENDFRAME |
| __ASM_SIZE(pop,_cfi) %__ASM_REG(bp) |
| CFI_RESTORE __ASM_REG(bp) |
| .endm |
| #else |
| .macro FRAME |
| .endm |
| .macro ENDFRAME |
| .endm |
| #endif |
| |
| #endif /* __ASSEMBLY__ */ |