|  | #ifndef _ASM_X86_ASM_H | 
|  | #define _ASM_X86_ASM_H | 
|  |  | 
|  | #ifdef __ASSEMBLY__ | 
|  | # define __ASM_FORM(x)	x | 
|  | # define __ASM_EX_SEC	.section __ex_table, "a" | 
|  | #else | 
|  | # define __ASM_FORM(x)	" " #x " " | 
|  | # define __ASM_EX_SEC	" .section __ex_table,\"a\"\n" | 
|  | #endif | 
|  |  | 
|  | #ifdef CONFIG_X86_32 | 
|  | # define __ASM_SEL(a,b) __ASM_FORM(a) | 
|  | #else | 
|  | # define __ASM_SEL(a,b) __ASM_FORM(b) | 
|  | #endif | 
|  |  | 
|  | #define __ASM_SIZE(inst)	__ASM_SEL(inst##l, inst##q) | 
|  | #define __ASM_REG(reg)		__ASM_SEL(e##reg, r##reg) | 
|  |  | 
|  | #define _ASM_PTR	__ASM_SEL(.long, .quad) | 
|  | #define _ASM_ALIGN	__ASM_SEL(.balign 4, .balign 8) | 
|  |  | 
|  | #define _ASM_MOV	__ASM_SIZE(mov) | 
|  | #define _ASM_INC	__ASM_SIZE(inc) | 
|  | #define _ASM_DEC	__ASM_SIZE(dec) | 
|  | #define _ASM_ADD	__ASM_SIZE(add) | 
|  | #define _ASM_SUB	__ASM_SIZE(sub) | 
|  | #define _ASM_XADD	__ASM_SIZE(xadd) | 
|  |  | 
|  | #define _ASM_AX		__ASM_REG(ax) | 
|  | #define _ASM_BX		__ASM_REG(bx) | 
|  | #define _ASM_CX		__ASM_REG(cx) | 
|  | #define _ASM_DX		__ASM_REG(dx) | 
|  | #define _ASM_SP		__ASM_REG(sp) | 
|  | #define _ASM_BP		__ASM_REG(bp) | 
|  | #define _ASM_SI		__ASM_REG(si) | 
|  | #define _ASM_DI		__ASM_REG(di) | 
|  |  | 
|  | /* Exception table entry */ | 
|  | #ifdef __ASSEMBLY__ | 
|  | # define _ASM_EXTABLE(from,to)	    \ | 
|  | __ASM_EX_SEC ;		    \ | 
|  | _ASM_ALIGN ;		    \ | 
|  | _ASM_PTR from , to ;	    \ | 
|  | .previous | 
|  | #else | 
|  | # define _ASM_EXTABLE(from,to) \ | 
|  | __ASM_EX_SEC	\ | 
|  | _ASM_ALIGN "\n" \ | 
|  | _ASM_PTR #from "," #to "\n" \ | 
|  | " .previous\n" | 
|  | #endif | 
|  |  | 
|  | #endif /* _ASM_X86_ASM_H */ |