]> git.proxmox.com Git - mirror_edk2.git/blobdiff - UnixPkg/Library/UnixBaseLib/X64/LongJump.S
Added support for an EFI X64 ABI compatible UnixPkg. With an internal only compiler...
[mirror_edk2.git] / UnixPkg / Library / UnixBaseLib / X64 / LongJump.S
index d17592cf379052ca3d756f2e20fb635443c41a32..f20446fcf01fa1683ec5574c4bd2815118d56a05 100644 (file)
 # VOID\r
 # EFIAPI\r
 # InternalLongJump (\r
-#   IN      BASE_LIBRARY_JUMP_BUFFER  *JumpBuffer, // %rcx\r
-#   IN      UINTN                     Value        // %rdx\r
+#   IN      BASE_LIBRARY_JUMP_BUFFER  *JumpBuffer,\r
+#   IN      UINTN                     Value\r
 #   );\r
 #------------------------------------------------------------------------------\r
-ASM_GLOBAL ASM_PFX(EfiInternalLongJump)\r
-ASM_PFX(EfiInternalLongJump):\r
+ASM_GLOBAL ASM_PFX(InternalLongJump)\r
+ASM_PFX(InternalLongJump):\r
     mov     (%rcx), %rbx\r
     mov     0x8(%rcx), %rsp\r
     mov     0x10(%rcx), %rbp\r
@@ -52,37 +52,3 @@ ASM_PFX(EfiInternalLongJump):
     movdqu  0xE8(%rcx), %xmm15  \r
     mov     %rdx, %rax          # set return value\r
     jmp     *0x48(%rcx)\r
-\r
-#------------------------------------------------------------------------------\r
-# VOID\r
-# EFIAPI\r
-# UnixInternalLongJump (\r
-#   IN      BASE_LIBRARY_JUMP_BUFFER  *JumpBuffer, // %rdi\r
-#   IN      UINTN                     Value        // %rsi\r
-#   );\r
-#------------------------------------------------------------------------------\r
-ASM_GLOBAL ASM_PFX(InternalLongJump)\r
-ASM_PFX(InternalLongJump):\r
-    mov     (%rdi), %rbx\r
-    mov     0x8(%rdi), %rsp\r
-    mov     0x10(%rdi), %rbp\r
-    mov     0x18(%rdi), %rdi\r
-    mov     0x20(%rdi), %rsi\r
-    mov     0x28(%rdi), %r12\r
-    mov     0x30(%rdi), %r13\r
-    mov     0x38(%rdi), %r14\r
-    mov     0x40(%rdi), %r15\r
-    # load non-volatile fp registers\r
-    ldmxcsr 0x50(%rdi)\r
-    movdqu  0x58(%rdi), %xmm6\r
-    movdqu  0x68(%rdi), %xmm7\r
-    movdqu  0x78(%rdi), %xmm8\r
-    movdqu  0x88(%rdi), %xmm9\r
-    movdqu  0x98(%rdi), %xmm10\r
-    movdqu  0xA8(%rdi), %xmm11\r
-    movdqu  0xB8(%rdi), %xmm12\r
-    movdqu  0xC8(%rdi), %xmm13\r
-    movdqu  0xD8(%rdi), %xmm14\r
-    movdqu  0xE8(%rdi), %xmm15  \r
-    mov     %rsi, %rax          # set return value\r
-    jmp     *0x48(%rdi)\r