diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2012-03-10 13:46:33 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2020-03-28 16:31:41 +0100 |
commit | dd9e5cf1a51c7333d561fc694b68a756edf32b0f (patch) | |
tree | 127bf7ea55c2a4706c01ca09755ffbf550027bbb /i386/include | |
parent | 9e7436251ccfd563d4fcfdd96ab48e9c0759307f (diff) | |
download | gnumach-dd9e5cf1a51c7333d561fc694b68a756edf32b0f.tar.gz gnumach-dd9e5cf1a51c7333d561fc694b68a756edf32b0f.tar.bz2 gnumach-dd9e5cf1a51c7333d561fc694b68a756edf32b0f.zip |
asm.h: Add 64bit variant
* i386/include/mach/i386/asm.h (S_ARG0, S_ARG1, S_ARG2, S_ARG3, S_ARG4,
S_ARG5, FRAME, EMARF, B_ARG0, B_ARG1, B_ARG2, B_ARG3, INT_FIX): Add
64bit variants.
Diffstat (limited to 'i386/include')
-rw-r--r-- | i386/include/mach/i386/asm.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/i386/include/mach/i386/asm.h b/i386/include/mach/i386/asm.h index 45b848df..8ceae8ca 100644 --- a/i386/include/mach/i386/asm.h +++ b/i386/include/mach/i386/asm.h @@ -27,6 +27,7 @@ #ifndef _MACH_I386_ASM_H_ #define _MACH_I386_ASM_H_ +#ifdef __i386__ #define S_ARG0 4(%esp) #define S_ARG1 8(%esp) #define S_ARG2 12(%esp) @@ -39,6 +40,32 @@ #define B_ARG1 12(%ebp) #define B_ARG2 16(%ebp) #define B_ARG3 20(%ebp) +#endif + +#ifdef __x86_64__ +#define S_ARG0 %rdi +#define S_ARG1 %rsi +#define S_ARG2 %rdx +#define S_ARG3 %rcx +#define S_ARG4 %r8 +#define S_ARG5 %r9 + +#define FRAME pushq %rbp; movq %rsp, %rbp +#define EMARF leave + +#define B_ARG0 S_ARG0 +#define B_ARG1 S_ARG1 +#define B_ARG2 S_ARG2 +#define B_ARG3 S_ARG3 + +#ifdef MACH_XEN +#define INT_FIX \ + popq %rcx ;\ + popq %r11 +#else +#define INT_FIX +#endif +#endif #ifdef i486 #define TEXT_ALIGN 4 |