Author: tkreuzer Date: Sat Aug 20 10:39:28 2011 New Revision: 53333
URL: http://svn.reactos.org/svn/reactos?rev=53333&view=rev Log: [ASM] - prefix labels only on x86 - improve syscall stub code
Modified: trunk/reactos/include/asm/asm.inc trunk/reactos/include/asm/syscalls.inc
Modified: trunk/reactos/include/asm/asm.inc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/asm/asm.inc?rev=533... ============================================================================== --- trunk/reactos/include/asm/asm.inc [iso-8859-1] (original) +++ trunk/reactos/include/asm/asm.inc [iso-8859-1] Sat Aug 20 10:39:28 2011 @@ -32,13 +32,21 @@
/* To avoid reverse syntax we provide a new macro .PROC, replacing PROC... */ .PROC MACRO name +#ifdef _M_IX86 _&name PROC +#else + &name PROC FRAME +#endif ENDM #define FUNC .PROC
/* ... and .ENDP, replacing ENDP */ .ENDP MACRO name +#ifdef _M_IX86 _&name ENDP +#else + &name ENDP +#endif ENDM #define ENDFUNC .ENDP
Modified: trunk/reactos/include/asm/syscalls.inc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/asm/syscalls.inc?re... ============================================================================== --- trunk/reactos/include/asm/syscalls.inc [iso-8859-1] (original) +++ trunk/reactos/include/asm/syscalls.inc [iso-8859-1] Sat Aug 20 10:39:28 2011 @@ -3,12 +3,14 @@ #define KUSER_SHARED_SYSCALL HEX(7ffe0300) #define KGDT_R0_CODE 8 MACRO(STUBCODE_U, SyscallId, StackBytes) + FPO 0, 0, 0, 0, 0, FRAME_FPO mov eax, SyscallId mov ecx, KUSER_SHARED_SYSCALL call dword ptr [ecx] ret StackBytes ENDM MACRO(STUBCODE_K, SyscallId, StackBytes) + FPO 0, 0, 0, 0, 0, FRAME_FPO mov eax, SyscallId lea edx, [esp + 4] pushfd @@ -18,12 +20,14 @@ ENDM #elif defined(_M_AMD64) MACRO(STUBCODE_U, SyscallId, StackBytes) + .ENDPROLOG mov eax, SyscallId mov r10, rcx syscall ret StackBytes ENDM MACRO(STUBCODE_K, SyscallId, StackBytes) + .ENDPROLOG mov eax, SyscallId call KiSystemService ret StackBytes @@ -74,7 +78,6 @@ MACRO(START_PROC, Name, Stackbytes) PUBLIC _&Name&@&Stackbytes .PROC &Name&@&Stackbytes - FPO 0, 0, 0, 0, 0, FRAME_FPO ENDM MACRO(END_PROC, Name, Stackbytes) .ENDP &Name&@&Stackbytes @@ -87,7 +90,6 @@ MACRO(START_PROC, Name, Stackbytes) PUBLIC &Name .PROC &Name - FPO 0, 0, 0, 0, 0, FRAME_FPO ENDM MACRO(END_PROC, Name, Stackbytes) .ENDP &Name