From e1f04ea0de4c14e4ac8ff2e00353862f14ef93e2 Mon Sep 17 00:00:00 2001 From: Pierre Schweitzer Date: Tue, 30 Dec 2014 13:51:41 +0000 Subject: [PATCH] [FREELDR] Simplify the stack management in PxeCallApi(), we don't need that much svn path=/trunk/; revision=65909 --- .../boot/freeldr/freeldr/arch/i386/entry.S | 22 ++++++------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/reactos/boot/freeldr/freeldr/arch/i386/entry.S b/reactos/boot/freeldr/freeldr/arch/i386/entry.S index 7cf097eb581..63a63c6dc99 100644 --- a/reactos/boot/freeldr/freeldr/arch/i386/entry.S +++ b/reactos/boot/freeldr/freeldr/arch/i386/entry.S @@ -158,41 +158,33 @@ Int386_return: */ PUBLIC _PxeCallApi _PxeCallApi: - push ebp - mov ebp, esp - - pusha - push es - /* copy entry point */ - mov eax, [ebp + 8] + mov eax, [esp + 4] shl eax, 16 - mov ax, [ebp + 12] + mov ax, [esp + 8] mov dword ptr ds:[BSS_PxeEntryPoint], eax /* copy function */ - mov ax, [ebp + 16] + mov ax, [esp + 12] mov word ptr ds:[BSS_PxeFunction], ax /* convert pointer to data buffer to segment/offset */ - mov eax, [ebp + 20] + mov eax, [esp + 16] shr eax, 4 and eax, HEX(0f000) mov word ptr ds:[BSS_PxeBufferSegment], ax - mov eax, [ebp + 20] + mov eax, [esp + 16] and eax, HEX(0ffff) mov word ptr ds:[BSS_PxeBufferOffset], ax + pusha + /* Set the function ID and call realmode */ mov bx, FNID_PxeCallApi call i386CallRealMode - pop es popa - mov esp, ebp - pop ebp - mov ax, word ptr [BSS_PxeResult] ret