frame.h 582 B

123456789101112131415161718192021222324252627
  1. #ifdef __ASSEMBLY__
  2. #include <asm/asm.h>
  3. #include <asm/dwarf2.h>
  4. /* The annotation hides the frame from the unwinder and makes it look
  5. like a ordinary ebp save/restore. This avoids some special cases for
  6. frame pointer later */
  7. #ifdef CONFIG_FRAME_POINTER
  8. .macro FRAME
  9. __ASM_SIZE(push,_cfi) %__ASM_REG(bp)
  10. CFI_REL_OFFSET __ASM_REG(bp), 0
  11. __ASM_SIZE(mov) %__ASM_REG(sp), %__ASM_REG(bp)
  12. .endm
  13. .macro ENDFRAME
  14. __ASM_SIZE(pop,_cfi) %__ASM_REG(bp)
  15. CFI_RESTORE __ASM_REG(bp)
  16. .endm
  17. #else
  18. .macro FRAME
  19. .endm
  20. .macro ENDFRAME
  21. .endm
  22. #endif
  23. #endif /* __ASSEMBLY__ */