From e2151932e4ee6ee0fdd08977172616562410b843 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Sat, 30 Jan 2010 01:16:42 +0000 Subject: [PATCH] More macros and fixes svn path=/branches/ros-amd64-bringup/; revision=45332 --- reactos/include/reactos/asm.h | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/reactos/include/reactos/asm.h b/reactos/include/reactos/asm.h index fab908d29b7..2e08472ab42 100644 --- a/reactos/include/reactos/asm.h +++ b/reactos/include/reactos/asm.h @@ -14,6 +14,9 @@ OPTION DOTNAME /* Hex numbers need to be in 01ABh format */ #define HEX(x) 0##x##h +/* Macro values need to be marked */ +#define VAL(x) x + /* MASM/ML doesn't want explicit [rip] addressing */ #define RIP(address) address @@ -47,11 +50,15 @@ ENDM /* Hex numbers need to be in 0x1AB format */ #define HEX(x) 0x##x +/* Macro values need to be marked */ +#define VAL(x) \x + /* GAS needs explicit [rip] addressing */ #define RIP(address) address##[rip] /* Due to MASM's reverse syntax, we are forced to use a precompiler macro */ -#define MACRO(name, ...) .MACRO name, __VA_ARGS__ +#define MACRO(...) .macro __VA_ARGS__ +#define ENDM .endm /* To avoid reverse syntax we provide a new macro .PROC, replacing PROC... */ .macro .PROC name @@ -77,6 +84,12 @@ ENDM #define REPEAT .rept #define ENDR .endr +/* MASM compatible EXTERN */ +.macro EXTERN name +.endm + +/* MASM needs an END tag */ +#define END /* Macros for x64 stack unwind OPs */ -- 2.17.1