Go to the documentation of this file.
6#ifndef XTF_X86_ASM_MACROS_H
7#define XTF_X86_ASM_MACROS_H
11# define __ASM_CODE(x) x
12# define __ASM_CODE_RAW(x) x
14# define __ASM_CODE(x) " " #x " "
15# define __ASM_CODE_RAW(x) #x
18#define ALIGN .align 16
22# define __ASM_SEL(c, l) __ASM_CODE(c)
23# define __ASM_SEL_RAW(c, l) __ASM_CODE_RAW(c)
25# define __ASM_SEL(c, l) __ASM_CODE(l)
26# define __ASM_SEL_RAW(c, l) __ASM_CODE_RAW(l)
29#define _WORD __ASM_SEL(.long, .quad)
31#define __ASM_REG(reg) __ASM_SEL_RAW(e ## reg, r ## reg)
33#define _ASM_AX __ASM_REG(ax)
34#define _ASM_CX __ASM_REG(cx)
35#define _ASM_DX __ASM_REG(dx)
36#define _ASM_BX __ASM_REG(bx)
37#define _ASM_SP __ASM_REG(sp)
38#define _ASM_BP __ASM_REG(bp)
39#define _ASM_SI __ASM_REG(si)
40#define _ASM_DI __ASM_REG(di)
46#if defined(__x86_64__)
62#elif defined(__i386__)
71# error Bad architecture for SAVE_ALL
76#if defined(__x86_64__)
92#elif defined(__i386__)
101# error Bad architecture for RESTORE_ALL