]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/Universal/Ebc/Dxe/x64/EbcLowLevel.S
1. Advance IP in case of Break(3) in breakpoint exception
[mirror_edk2.git] / EdkModulePkg / Universal / Ebc / Dxe / x64 / EbcLowLevel.S
index 61322a3264c6d2c0c9d439f56b9b422d75c0709b..d9f638643af49b8f37fafab3f006c821308e4456 100644 (file)
@@ -44,6 +44,8 @@
 #
 # Destroys no working registers.
 #****************************************************************************
+.global _CopyMem;
+
 # VOID EbcLLCALLEXNative(UINTN FuncAddr, UINTN NewStackPointer, VOID *FramePtr)
 .global _EbcLLCALLEXNative;
 _EbcLLCALLEXNative:
@@ -56,7 +58,12 @@ _EbcLLCALLEXNative:
       mov    %rcx, %rbx
 
       # Set stack pointer to new value
-      mov    %rdx, %rsp
+      sub    %r8,  %rdx
+      sub    %rsp, %r8
+      mov    %rsp, %rcx
+      sub    %rsp, 0x20
+      call   _CopyMem 
+      add    %rsp, 0x20
 
       # Considering the worst case, load 4 potiential arguments
       # into registers.