diff options
Diffstat (limited to 'include/asm-x86/asm.h')
-rw-r--r-- | include/asm-x86/asm.h | 55 |
1 files changed, 29 insertions, 26 deletions
diff --git a/include/asm-x86/asm.h b/include/asm-x86/asm.h index 90dec0c23646..97220321f39d 100644 --- a/include/asm-x86/asm.h +++ b/include/asm-x86/asm.h | |||
@@ -1,37 +1,40 @@ | |||
1 | #ifndef _ASM_X86_ASM_H | 1 | #ifndef _ASM_X86_ASM_H |
2 | #define _ASM_X86_ASM_H | 2 | #define _ASM_X86_ASM_H |
3 | 3 | ||
4 | #ifdef CONFIG_X86_32 | 4 | #ifdef __ASSEMBLY__ |
5 | /* 32 bits */ | 5 | # define __ASM_FORM(x) x |
6 | 6 | # define __ASM_EX_SEC .section __ex_table | |
7 | # define _ASM_PTR " .long " | ||
8 | # define _ASM_ALIGN " .balign 4 " | ||
9 | # define _ASM_MOV_UL " movl " | ||
10 | |||
11 | # define _ASM_INC " incl " | ||
12 | # define _ASM_DEC " decl " | ||
13 | # define _ASM_ADD " addl " | ||
14 | # define _ASM_SUB " subl " | ||
15 | # define _ASM_XADD " xaddl " | ||
16 | |||
17 | #else | 7 | #else |
18 | /* 64 bits */ | 8 | # define __ASM_FORM(x) " " #x " " |
9 | # define __ASM_EX_SEC " .section __ex_table,\"a\"\n" | ||
10 | #endif | ||
19 | 11 | ||
20 | # define _ASM_PTR " .quad " | 12 | #ifdef CONFIG_X86_32 |
21 | # define _ASM_ALIGN " .balign 8 " | 13 | # define __ASM_SEL(a,b) __ASM_FORM(a) |
22 | # define _ASM_MOV_UL " movq " | 14 | #else |
23 | 15 | # define __ASM_SEL(a,b) __ASM_FORM(b) | |
24 | # define _ASM_INC " incq " | 16 | #endif |
25 | # define _ASM_DEC " decq " | 17 | |
26 | # define _ASM_ADD " addq " | 18 | #define __ASM_SIZE(inst) __ASM_SEL(inst##l, inst##q) |
27 | # define _ASM_SUB " subq " | 19 | #define __ASM_REG(reg) __ASM_SEL(e##reg, r##reg) |
28 | # define _ASM_XADD " xaddq " | 20 | |
29 | 21 | #define _ASM_PTR __ASM_SEL(.long, .quad) | |
30 | #endif /* CONFIG_X86_32 */ | 22 | #define _ASM_ALIGN __ASM_SEL(.balign 4, .balign 8) |
23 | #define _ASM_MOV_UL __ASM_SIZE(mov) | ||
24 | |||
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 | #define _ASM_AX __ASM_REG(ax) | ||
31 | #define _ASM_BX __ASM_REG(bx) | ||
32 | #define _ASM_CX __ASM_REG(cx) | ||
33 | #define _ASM_DX __ASM_REG(dx) | ||
31 | 34 | ||
32 | /* Exception table entry */ | 35 | /* Exception table entry */ |
33 | # define _ASM_EXTABLE(from,to) \ | 36 | # define _ASM_EXTABLE(from,to) \ |
34 | " .section __ex_table,\"a\"\n" \ | 37 | __ASM_EX_SEC \ |
35 | _ASM_ALIGN "\n" \ | 38 | _ASM_ALIGN "\n" \ |
36 | _ASM_PTR #from "," #to "\n" \ | 39 | _ASM_PTR #from "," #to "\n" \ |
37 | " .previous\n" | 40 | " .previous\n" |