[CONSRV]
[reactos.git] / include / asm / asm.inc
index db0acdb..97c4f89 100644 (file)
@@ -32,13 +32,18 @@ rip = 0
 \r
 /* To avoid reverse syntax we provide a new macro .PROC, replacing PROC... */\r
 .PROC MACRO name\r
-    _&name PROC\r
+__current_function_name EQU %name\r
+#ifdef _M_IX86\r
+    %name PROC\r
+#else\r
+    %name PROC FRAME\r
+#endif\r
 ENDM\r
 #define FUNC .PROC\r
 \r
 /* ... and .ENDP, replacing ENDP */\r
-.ENDP MACRO name\r
-    _&name ENDP\r
+.ENDP MACRO\r
+    %__current_function_name ENDP\r
 ENDM\r
 #define ENDFUNC .ENDP\r
 \r
@@ -149,6 +154,11 @@ ljmp16 MACRO segment, offset
     DW segment\r
 ENDM\r
 \r
+data32 MACRO opcode:VARARG\r
+    DB 66h\r
+    opcode\r
+ENDM\r
+\r
 UNIMPLEMENTED MACRO name\r
 ENDM\r
 \r
@@ -189,16 +199,22 @@ ENDM
 /* To avoid reverse syntax we provide a new macro .PROC, replacing PROC... */\r
 .macro .PROC name\r
     .func \name\r
+#ifdef _X86_\r
+    /* x86 gas expects a label with _ prefix */\r
     _\name:\r
+#endif\r
+    \name:\r
     .cfi_startproc\r
     .equ cfa_current_offset, -8\r
 .endm\r
+#define FUNC .PROC\r
 \r
 /* ... and .ENDP, replacing ENDP */\r
-.macro .ENDP name\r
+.macro .ENDP\r
     .cfi_endproc\r
     .endfunc\r
 .endm\r
+#define ENDFUNC .ENDP\r
 \r
 /* MASM compatible PUBLIC */\r
 .macro PUBLIC symbol\r