[HAL] Convert HalpEndSoftwareInterrupt2 to fastcall. CORE-14076
authorThomas Faber <thomas.faber@reactos.org>
Sun, 11 Feb 2018 10:33:16 +0000 (11:33 +0100)
committerThomas Faber <thomas.faber@reactos.org>
Sun, 18 Feb 2018 12:06:37 +0000 (13:06 +0100)
hal/halx86/up/pic.S
hal/halx86/up/pic.c

index c9bd891..5025a44 100644 (file)
@@ -11,7 +11,7 @@
 
 #include <ks386.inc>
 
-EXTERN _HalpEndSoftwareInterrupt2@8:PROC
+EXTERN @HalpEndSoftwareInterrupt2@8:PROC
 
 /* GLOBALS *******************************************************************/
 
@@ -26,9 +26,9 @@ PUBLIC _HalpEndSoftwareInterrupt@8
     FPO 0, 2, 0, 0, 0, FRAME_FPO
 
     /* Call the C function with the same arguments we got */
-    push [esp+8]
-    push [esp+8]
-    call _HalpEndSoftwareInterrupt2@8
+    mov ecx, [esp+4]
+    mov edx, [esp+8]
+    call @HalpEndSoftwareInterrupt2@8
 
     /* Check if we got a pointer back */
     test eax, eax
@@ -39,7 +39,8 @@ PUBLIC _HalpEndSoftwareInterrupt@8
 
 CallIntHandler:
     /* We got a pointer to call. Since it won't return, free up our stack
-       space, or we could end up with some nasty deep recursion */
+       space. Otherwise we could end up with some nasty deep recursion.
+       The next function takes the trap frame as its (fastcall) argument. */
     mov ecx, [esp+8]
     add esp, 12
     jmp eax
index a66526c..f61bf73 100644 (file)
@@ -677,7 +677,7 @@ HalClearSoftwareInterrupt(IN KIRQL Irql)
 }
 
 PHAL_SW_INTERRUPT_HANDLER_2ND_ENTRY
-NTAPI
+FASTCALL
 HalpEndSoftwareInterrupt2(IN KIRQL OldIrql,
                           IN PKTRAP_FRAME TrapFrame)
 {