Author: tkreuzer
Date: Thu Oct 13 15:16:29 2011
New Revision: 54112

URL: http://svn.reactos.org/svn/reactos?rev=54112&view=rev
Log:
[ASM]
Improve .proc / .endproc syntax, so that the full symbolic name is passed, 
which allows to create fastcall symbols. Remove the need to pass the function 
name to .endp

Modified:
    trunk/reactos/dll/ntdll/dispatch/i386/dispatch.S
    trunk/reactos/dll/win32/kernel32/client/i386/fiber.S
    trunk/reactos/dll/win32/rpcrt4/msvc.S
    trunk/reactos/hal/halx86/apic/tsccal.S
    trunk/reactos/include/asm/asm.inc
    trunk/reactos/include/asm/syscalls.inc
    trunk/reactos/include/reactos/asm.inc
    trunk/reactos/lib/rtl/i386/debug_asm.S
    trunk/reactos/lib/rtl/i386/rtlswap.S
    trunk/reactos/lib/sdk/crt/string/i386/tcscpy.inc
    trunk/reactos/ntoskrnl/include/internal/i386/asmmacro.S
    trunk/reactos/ntoskrnl/ke/i386/trap.s

Modified: trunk/reactos/dll/ntdll/dispatch/i386/dispatch.S
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/ntdll/dispatch/i386/dispatch.S?rev=54112&r1=54111&r2=54112&view=diff
==============================================================================
--- trunk/reactos/dll/ntdll/dispatch/i386/dispatch.S [iso-8859-1] (original)
+++ trunk/reactos/dll/ntdll/dispatch/i386/dispatch.S [iso-8859-1] Thu Oct 13 
15:16:29 2011
@@ -184,7 +184,7 @@
 
 
 PUBLIC _KiUserExceptionDispatcher@8
-.PROC KiUserExceptionDispatcher@8
+.PROC _KiUserExceptionDispatcher@8
     FPO 0, 0, 0, 0, 0, FRAME_FPO
 
     /* Clear direction flag */
@@ -241,10 +241,10 @@
     call _RtlRaiseException@4
     ret 8
 
-.ENDP KiUserExceptionDispatcher@8
+.ENDP
 
 PUBLIC _KiIntSystemCall@0
-.PROC KiIntSystemCall@0
+.PROC _KiIntSystemCall@0
     FPO 0, 0, 0, 0, 0, FRAME_FPO
 
     /* Set stack in EDX and do the interrupt */
@@ -254,26 +254,26 @@
     /* Return to caller */
     ret
 
-.ENDP KiIntSystemCall@0
+.ENDP
 
 PUBLIC _KiFastSystemCall@0
-.PROC KiFastSystemCall@0
+.PROC _KiFastSystemCall@0
     FPO 0, 0, 0, 0, 0, FRAME_FPO
 
     /* Put ESP in EDX and do the SYSENTER */
     mov edx, esp
     sysenter
 
-.ENDP KiFastSystemCall@0
+.ENDP
 
 PUBLIC _KiFastSystemCallRet@0
-.PROC KiFastSystemCallRet@0
+.PROC _KiFastSystemCallRet@0
     FPO 0, 0, 0, 0, 0, FRAME_FPO
 
     /* Just return to caller */
     ret
 
-.ENDP KiFastSystemCallRet@0
+.ENDP
 
 PUBLIC _RtlpGetStackLimits@8
 _RtlpGetStackLimits@8:

Modified: trunk/reactos/dll/win32/kernel32/client/i386/fiber.S
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/client/i386/fiber.S?rev=54112&r1=54111&r2=54112&view=diff
==============================================================================
--- trunk/reactos/dll/win32/kernel32/client/i386/fiber.S [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/kernel32/client/i386/fiber.S [iso-8859-1] Thu Oct 
13 15:16:29 2011
@@ -15,7 +15,7 @@
 .code
 
 PUBLIC _BaseFiberStartup@0
-.PROC BaseFiberStartup@0
+.PROC _BaseFiberStartup@0
     /* Frame pointer is zeroed */
     FPO 0, 0, 0, 0, 0, FRAME_FPO
 
@@ -25,7 +25,7 @@
     push dword ptr [eax+FIBER_CONTEXT_EBX] /* Parameter */
     push dword ptr [eax+FIBER_CONTEXT_EAX] /* Start Address */
     call _BaseThreadStartup@8
-.ENDP BaseFiberStartup@0
+.ENDP
 
 
 PUBLIC _SwitchToFiber@4
@@ -135,6 +135,7 @@
     /* Jump to new fiber */
     mov esp, [ecx+FIBER_CONTEXT_ESP]
     ret 4
+
+
 END
-
 /* EOF */

Modified: trunk/reactos/dll/win32/rpcrt4/msvc.S
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rpcrt4/msvc.S?rev=54112&r1=54111&r2=54112&view=diff
==============================================================================
--- trunk/reactos/dll/win32/rpcrt4/msvc.S [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/rpcrt4/msvc.S [iso-8859-1] Thu Oct 13 15:16:29 2011
@@ -63,7 +63,7 @@
     call ndr_client_call
     add rsp, 38h
     ret
-ENDFUNC call_stubless_func
+ENDFUNC
 
 PUBLIC call_server_func
 FUNC call_server_func
@@ -102,7 +102,7 @@
     pop rsi
     pop rbp
     ret
-ENDFUNC call_server_func
+ENDFUNC
 
 
 PUBLIC NdrClientCall2
@@ -121,7 +121,7 @@
 
     add rsp, 28h
     ret
-ENDFUNC NdrClientCall2
+ENDFUNC
 
 EXTERN ndr_async_client_call:PROC
 PUBLIC NdrAsyncClientCall
@@ -139,7 +139,7 @@
 
     add rsp, 28h
     ret
-ENDFUNC NdrAsyncClientCall
+ENDFUNC
 
 #endif
 

Modified: trunk/reactos/hal/halx86/apic/tsccal.S
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halx86/apic/tsccal.S?rev=54112&r1=54111&r2=54112&view=diff
==============================================================================
--- trunk/reactos/hal/halx86/apic/tsccal.S [iso-8859-1] (original)
+++ trunk/reactos/hal/halx86/apic/tsccal.S [iso-8859-1] Thu Oct 13 15:16:29 2011
@@ -100,7 +100,7 @@
     pop rbx
     pop rax
     iretq
-ENDFUNC TscCalibrationISR
+ENDFUNC
 #endif
 
 END

Modified: trunk/reactos/include/asm/asm.inc
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/include/asm/asm.inc?rev=54112&r1=54111&r2=54112&view=diff
==============================================================================
--- trunk/reactos/include/asm/asm.inc [iso-8859-1] (original)
+++ trunk/reactos/include/asm/asm.inc [iso-8859-1] Thu Oct 13 15:16:29 2011
@@ -32,21 +32,18 @@
 
 /* To avoid reverse syntax we provide a new macro .PROC, replacing PROC... */
 .PROC MACRO name
+__current_function_name EQU %name
 #ifdef _M_IX86
-    _&name PROC
+    %name PROC
 #else
-    &name PROC FRAME
+    %name PROC FRAME
 #endif
 ENDM
 #define FUNC .PROC
 
 /* ... and .ENDP, replacing ENDP */
-.ENDP MACRO name
-#ifdef _M_IX86
-    _&name ENDP
-#else
-    &name ENDP
-#endif
+.ENDP MACRO
+    %__current_function_name ENDP
 ENDM
 #define ENDFUNC .ENDP
 
@@ -203,17 +200,17 @@
 .macro .PROC name
     .func \name
 #ifdef _X86_
+    /* x86 gas expects a label with _ prefix */
     _\name:
-#else
+#endif
     \name:
-#endif
     .cfi_startproc
     .equ cfa_current_offset, -8
 .endm
 #define FUNC .PROC
 
 /* ... and .ENDP, replacing ENDP */
-.macro .ENDP name
+.macro .ENDP
     .cfi_endproc
     .endfunc
 .endm

Modified: trunk/reactos/include/asm/syscalls.inc
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/include/asm/syscalls.inc?rev=54112&r1=54111&r2=54112&view=diff
==============================================================================
--- trunk/reactos/include/asm/syscalls.inc [iso-8859-1] (original)
+++ trunk/reactos/include/asm/syscalls.inc [iso-8859-1] Thu Oct 13 15:16:29 2011
@@ -77,10 +77,7 @@
 ENDM
 MACRO(START_PROC, Name, Stackbytes)
     PUBLIC _&Name&@&Stackbytes
-    .PROC &Name&@&Stackbytes
-ENDM
-MACRO(END_PROC, Name, Stackbytes)
-    .ENDP &Name&@&Stackbytes
+    .PROC _&Name&@&Stackbytes
 ENDM
 #else
 MACRO(MAKE_LABEL, Name, Stackbytes)
@@ -91,9 +88,6 @@
     PUBLIC &Name
     .PROC &Name
 ENDM
-MACRO(END_PROC, Name, Stackbytes)
-    .ENDP &Name
-ENDM
 #endif
 
 MACRO(STUB_U, Name, ArgCount)
@@ -101,7 +95,7 @@
     MAKE_LABEL Zw&Name, %Stackbytes
     START_PROC Nt&Name, %Stackbytes
     STUBCODE_U SyscallId, %Stackbytes
-    END_PROC Nt&Name, %Stackbytes
+    .ENDP
     SyscallId = SyscallId + 1
 ENDM
 
@@ -109,6 +103,6 @@
     Stackbytes = 4 * &ArgCount
     START_PROC Zw&Name, %Stackbytes
     STUBCODE_K SyscallId, %Stackbytes
-    END_PROC Zw&Name, %Stackbytes
+    .ENDP
     SyscallId = SyscallId + 1
 ENDM

Modified: trunk/reactos/include/reactos/asm.inc
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/asm.inc?rev=54112&r1=54111&r2=54112&view=diff
==============================================================================
--- trunk/reactos/include/reactos/asm.inc [iso-8859-1] (original)
+++ trunk/reactos/include/reactos/asm.inc [iso-8859-1] Thu Oct 13 15:16:29 2011
@@ -32,14 +32,20 @@
 
 /* To avoid reverse syntax we provide a new macro .PROC, replacing PROC... */
 .PROC MACRO name
-    name PROC FRAME
-    _name:
-ENDM
+__current_function_name EQU %name
+#ifdef _M_IX86
+    %name PROC
+#else
+    %name PROC FRAME
+#endif
+ENDM
+#define FUNC .PROC
 
 /* ... and .ENDP, replacing ENDP */
-.ENDP MACRO name
-    name ENDP
-ENDM
+.ENDP MACRO
+    %__current_function_name ENDP
+ENDM
+#define ENDFUNC .ENDP
 
 /* check http://msdn.microsoft.com/en-us/library/9c9k076y%28VS.80%29.aspx
    and http://msdn.microsoft.com/en-us/library/ms679352%28VS.85%29.aspx */
@@ -150,17 +156,17 @@
 .macro .PROC name
     .func \name
 #ifdef _X86_
+    /* x86 gas expects a label with _ prefix */
     _\name:
-#else
+#endif
     \name:
-#endif
     .cfi_startproc
     .equ cfa_current_offset, -8
 .endm
 #define FUNC .PROC
 
 /* ... and .ENDP, replacing ENDP */
-.macro .ENDP name
+.macro .ENDP
     .cfi_endproc
     .endfunc
 .endm

Modified: trunk/reactos/lib/rtl/i386/debug_asm.S
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/rtl/i386/debug_asm.S?rev=54112&r1=54111&r2=54112&view=diff
==============================================================================
--- trunk/reactos/lib/rtl/i386/debug_asm.S [iso-8859-1] (original)
+++ trunk/reactos/lib/rtl/i386/debug_asm.S [iso-8859-1] Thu Oct 13 15:16:29 2011
@@ -22,31 +22,31 @@
 
 .code
 
-FUNC DbgBreakPointNoBugCheck@0
+FUNC _DbgBreakPointNoBugCheck@0
     FPO 0, 0, 0, 0, 0, FRAME_FPO
     int 3
     ret
-ENDFUNC DbgBreakPointNoBugCheck@0
+ENDFUNC
 
 _DbgUserBreakPoint@0:
-FUNC DbgBreakPoint@0
+FUNC _DbgBreakPoint@0
     FPO 0, 0, 0, 0, 0, FRAME_FPO
     int 3
     ret
-ENDFUNC DbgBreakPoint@0
+ENDFUNC
 
-FUNC DbgBreakPointWithStatus@4
+FUNC _DbgBreakPointWithStatus@4
     FPO 0, 1, 0, 0, 0, FRAME_FPO
     mov eax, [esp+4]
-ENDFUNC DbgBreakPointWithStatus@4
+ENDFUNC
 
-FUNC RtlpBreakWithStatusInstruction@0
+FUNC _RtlpBreakWithStatusInstruction@0
     FPO 0, 0, 0, 0, 0, FRAME_FPO
     int 3
     ret 4
-ENDFUNC RtlpBreakWithStatusInstruction@0
+ENDFUNC
 
-FUNC DebugService2@12
+FUNC _DebugService2@12
     FPO 0, 3, 3, 0, 1, FRAME_NONFPO
 
     /* Setup the stack */
@@ -63,9 +63,9 @@
     /* Restore stack */
     pop ebp
     ret 12
-ENDFUNC DebugService2@12
+ENDFUNC
 
-FUNC DebugService@20
+FUNC _DebugService@20
     FPO 0, 5, 3, 0, 1, FRAME_NONFPO
 
     /* Setup the stack */
@@ -92,6 +92,6 @@
     /* Return */
     pop ebp
     ret 20
-ENDFUNC DebugService@20
+ENDFUNC
 
 END

Modified: trunk/reactos/lib/rtl/i386/rtlswap.S
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/rtl/i386/rtlswap.S?rev=54112&r1=54111&r2=54112&view=diff
==============================================================================
--- trunk/reactos/lib/rtl/i386/rtlswap.S [iso-8859-1] (original)
+++ trunk/reactos/lib/rtl/i386/rtlswap.S [iso-8859-1] Thu Oct 13 15:16:29 2011
@@ -16,28 +16,25 @@
 /* FUNCTIONS ***************************************************************/
 .code
 
-@RtlUshortByteSwap@4:
-FUNC RtlUshortByteSwap
+FUNC @RtlUshortByteSwap@4
     FPO 0, 0, 0, 0, 0, FRAME_FPO
 
     /* Swap high and low bits */
     mov ah, cl
     mov al, ch
     ret
-ENDFUNC RtlUshortByteSwap
+ENDFUNC
 
-@RtlUlongByteSwap@4:
-FUNC RtlUlongByteSwap
+FUNC @RtlUlongByteSwap@4
     FPO 0, 0, 0, 0, 0, FRAME_FPO
 
     /* Swap high and low bits */
     mov eax, ecx
     bswap eax
     ret
-ENDFUNC RtlUlongByteSwap
+ENDFUNC
 
-@RtlUlonglongByteSwap@8:
-FUNC RtlUlonglongByteSwap
+FUNC @RtlUlonglongByteSwap@8
     FPO 0, 2, 0, 0, 0, FRAME_FPO
 
     /* Get 64-bit integer */
@@ -53,6 +50,6 @@
        and therefore put on tthe stack instead of in ecx and edx,
        but thats exactly how the function behaves on Windows! */
     ret
-ENDFUNC RtlUlonglongByteSwap
+ENDFUNC
 
 END

Modified: trunk/reactos/lib/sdk/crt/string/i386/tcscpy.inc
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/string/i386/tcscpy.inc?rev=54112&r1=54111&r2=54112&view=diff
==============================================================================
--- trunk/reactos/lib/sdk/crt/string/i386/tcscpy.inc [iso-8859-1] (original)
+++ trunk/reactos/lib/sdk/crt/string/i386/tcscpy.inc [iso-8859-1] Thu Oct 13 
15:16:29 2011
@@ -7,7 +7,7 @@
 PUBLIC _tcscpy
 .code
 
-FUNC tcscpy
+FUNC _tcscpy
     FPO 0, 2, 2, 2, 0, FRAME_FPO
     push esi
     push edi
@@ -27,7 +27,7 @@
     pop edi
     pop esi
     ret
-ENDFUNC tcscpy
+ENDFUNC
 
 END
 /* EOF */

Modified: trunk/reactos/ntoskrnl/include/internal/i386/asmmacro.S
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/i386/asmmacro.S?rev=54112&r1=54111&r2=54112&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/include/internal/i386/asmmacro.S [iso-8859-1] 
(original)
+++ trunk/reactos/ntoskrnl/include/internal/i386/asmmacro.S [iso-8859-1] Thu 
Oct 13 15:16:29 2011
@@ -219,7 +219,7 @@
 MACRO(TRAP_ENTRY, Trap, Flags)
     EXTERN @&Trap&Handler@4 :PROC
     PUBLIC _&Trap
-    .PROC &Trap
+    .PROC _&Trap
         /* Generate proper debugging symbols */
         FPO 0, 0, 0, 0, 1, FRAME_TRAP
 
@@ -228,7 +228,7 @@
 
         /* Call the C handler */
         KiCallHandler @&Trap&Handler@4
-    .ENDP &Trap
+    .ENDP
 ENDM
 
 #define KI_RESTORE_EAX        HEX(001)

Modified: trunk/reactos/ntoskrnl/ke/i386/trap.s
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/trap.s?rev=54112&r1=54111&r2=54112&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/ke/i386/trap.s [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/ke/i386/trap.s [iso-8859-1] Thu Oct 13 15:16:29 2011
@@ -136,19 +136,19 @@
 
 EXTERN @KiSystemServiceHandler@8:PROC
 PUBLIC _KiSystemService
-.PROC KiSystemService
+.PROC _KiSystemService
     FPO 0, 0, 0, 0, 1, FRAME_TRAP
     KiEnterTrap (KI_PUSH_FAKE_ERROR_CODE OR KI_NONVOLATILES_ONLY OR 
KI_DONT_SAVE_SEGS)
     KiCallHandler @KiSystemServiceHandler@8
-.ENDP KiSystemService
+.ENDP
 
 EXTERN @KiFastCallEntryHandler@8:PROC
 PUBLIC _KiFastCallEntry
-.PROC KiFastCallEntry
+.PROC _KiFastCallEntry
     FPO 0, 0, 0, 0, 1, FRAME_TRAP
     KiEnterTrap (KI_FAST_SYSTEM_CALL OR KI_NONVOLATILES_ONLY OR 
KI_DONT_SAVE_SEGS)
     KiCallHandler @KiFastCallEntryHandler@8
-.ENDP KiFastCallEntry
+.ENDP
 
 
 PUBLIC _KiEndUnexpectedRange@0


Reply via email to