]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/Universal/Ebc/Dxe/Ia32/EbcLowLevel.S
1. Advance IP in case of Break(3) in breakpoint exception
[mirror_edk2.git] / EdkModulePkg / Universal / Ebc / Dxe / Ia32 / EbcLowLevel.S
index 712cac2ece1838bbe107f5195694ae8826af834e..2df0f0c3e0ed636956de7fb9546860abac6efe94 100644 (file)
 #*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             
 #*                                                                          
 #****************************************************************************
+.globl ASM_PFX(CopyMem)
+
 .globl ASM_PFX(EbcLLCALLEXNative)
 ASM_PFX(EbcLLCALLEXNative):
-        push   %ebp
-        mov    %esp,%ebp
-        mov    0x8(%esp),%ecx
-        mov    0xc(%esp),%eax
-        mov    %eax,%esp
-        call   *%ecx
-        mov    %ebp,%esp
-        mov    %ebp,%esp
-        pop    %ebp
-        ret    
+         push   %ebp\r
+         push   %ebx\r
+         mov    %esp,%ebp\r
+         mov    0xc(%esp),%ecx\r
+         mov    0x14(%esp),%eax\r
+         mov    0x10(%esp),%edx\r
+         sub    %edx,%eax\r
+         sub    %eax,%esp\r
+         mov    %esp,%ebx\r
+         push   %ecx\r
+         push   %eax\r
+         push   %edx\r
+         push   %ebx\r
+         call   ASM_PFX(CopyMem)\r
+         pop    %eax\r
+         pop    %eax\r
+         pop    %eax\r
+         pop    %ecx\r
+         call   *%ecx\r
+         mov    %ebp,%esp\r
+         mov    %ebp,%esp\r
+         pop    %ebx\r
+         pop    %ebp\r
+         ret    \r
 
 .globl ASM_PFX(EbcLLGetEbcEntryPoint)
 ASM_PFX(EbcLLGetEbcEntryPoint):