home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / x86 / include / asm / asm.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  1.1 KB  |  48 lines

  1. #ifndef _ASM_X86_ASM_H
  2. #define _ASM_X86_ASM_H
  3.  
  4. #ifdef __ASSEMBLY__
  5. # define __ASM_FORM(x)    x
  6. # define __ASM_EX_SEC    .section __ex_table
  7. #else
  8. # define __ASM_FORM(x)    " " #x " "
  9. # define __ASM_EX_SEC    " .section __ex_table,\"a\"\n"
  10. #endif
  11.  
  12. #ifdef CONFIG_X86_32
  13. # define __ASM_SEL(a,b) __ASM_FORM(a)
  14. #else
  15. # define __ASM_SEL(a,b) __ASM_FORM(b)
  16. #endif
  17.  
  18. #define __ASM_SIZE(inst)    __ASM_SEL(inst##l, inst##q)
  19. #define __ASM_REG(reg)        __ASM_SEL(e##reg, r##reg)
  20.  
  21. #define _ASM_PTR    __ASM_SEL(.long, .quad)
  22. #define _ASM_ALIGN    __ASM_SEL(.balign 4, .balign 8)
  23.  
  24. #define _ASM_MOV    __ASM_SIZE(mov)
  25. #define _ASM_INC    __ASM_SIZE(inc)
  26. #define _ASM_DEC    __ASM_SIZE(dec)
  27. #define _ASM_ADD    __ASM_SIZE(add)
  28. #define _ASM_SUB    __ASM_SIZE(sub)
  29. #define _ASM_XADD    __ASM_SIZE(xadd)
  30.  
  31. #define _ASM_AX        __ASM_REG(ax)
  32. #define _ASM_BX        __ASM_REG(bx)
  33. #define _ASM_CX        __ASM_REG(cx)
  34. #define _ASM_DX        __ASM_REG(dx)
  35. #define _ASM_SP        __ASM_REG(sp)
  36. #define _ASM_BP        __ASM_REG(bp)
  37. #define _ASM_SI        __ASM_REG(si)
  38. #define _ASM_DI        __ASM_REG(di)
  39.  
  40. /* Exception table entry */
  41. # define _ASM_EXTABLE(from,to) \
  42.     __ASM_EX_SEC    \
  43.     _ASM_ALIGN "\n" \
  44.     _ASM_PTR #from "," #to "\n" \
  45.     " .previous\n"
  46.  
  47. #endif /* _ASM_X86_ASM_H */
  48.