diff options
author | Glauber de Oliveira Costa <gcosta@redhat.com> | 2008-01-30 07:32:09 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-30 07:32:09 -0500 |
commit | 21438f7c138f0b893a32df3cc77434e39a2145f8 (patch) | |
tree | 06725e4b0562f93cb00252949ae67577dad2f489 | |
parent | 1954448fb0c03dd5e301d7bef2dda71cd9b2fcf2 (diff) |
x86: add CLBR_ defines for 64-bit
x86_64 needs a potentially larger clobber list than i386, due to its calling
convention. So we add more CLBR_ defines for it.
Note that CLBR_ANY is different for each of the architectures, since it comprises
the notion of "All call clobbers in this architecture"
Signed-off-by: Glauber de Oliveira Costa <gcosta@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r-- | include/asm-x86/paravirt.h | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/include/asm-x86/paravirt.h b/include/asm-x86/paravirt.h index e8fbf742d425..5935c273af1f 100644 --- a/include/asm-x86/paravirt.h +++ b/include/asm-x86/paravirt.h | |||
@@ -8,11 +8,24 @@ | |||
8 | #include <asm/asm.h> | 8 | #include <asm/asm.h> |
9 | 9 | ||
10 | /* Bitmask of what can be clobbered: usually at least eax. */ | 10 | /* Bitmask of what can be clobbered: usually at least eax. */ |
11 | #define CLBR_NONE 0x0 | 11 | #define CLBR_NONE 0 |
12 | #define CLBR_EAX 0x1 | 12 | #define CLBR_EAX (1 << 0) |
13 | #define CLBR_ECX 0x2 | 13 | #define CLBR_ECX (1 << 1) |
14 | #define CLBR_EDX 0x4 | 14 | #define CLBR_EDX (1 << 2) |
15 | #define CLBR_ANY 0x7 | 15 | |
16 | #ifdef CONFIG_X86_64 | ||
17 | #define CLBR_RSI (1 << 3) | ||
18 | #define CLBR_RDI (1 << 4) | ||
19 | #define CLBR_R8 (1 << 5) | ||
20 | #define CLBR_R9 (1 << 6) | ||
21 | #define CLBR_R10 (1 << 7) | ||
22 | #define CLBR_R11 (1 << 8) | ||
23 | #define CLBR_ANY ((1 << 9) - 1) | ||
24 | #include <asm/desc_defs.h> | ||
25 | #else | ||
26 | /* CLBR_ANY should match all regs platform has. For i386, that's just it */ | ||
27 | #define CLBR_ANY ((1 << 3) - 1) | ||
28 | #endif /* X86_64 */ | ||
16 | 29 | ||
17 | #ifndef __ASSEMBLY__ | 30 | #ifndef __ASSEMBLY__ |
18 | #include <linux/types.h> | 31 | #include <linux/types.h> |