#------------------------------------------------------------------------------
#
# Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution.  The full text of the license may be found at
# http://opensource.org/licenses/bsd-license.php.
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
# Module Name:
#
#   LongJump.S
#
# Abstract:
#
#   Implementation of _LongJump() on x64.
#
#------------------------------------------------------------------------------

#------------------------------------------------------------------------------
# VOID
# EFIAPI
# InternalLongJump (
#   IN      BASE_LIBRARY_JUMP_BUFFER  *JumpBuffer,
#   IN      UINTN                     Value
#   );
#------------------------------------------------------------------------------
ASM_GLOBAL ASM_PFX(InternalLongJump)
ASM_PFX(InternalLongJump):
    mov     (%rcx), %rbx
    mov     0x8(%rcx), %rsp
    mov     0x10(%rcx), %rbp
    mov     0x18(%rcx), %rdi
    mov     0x20(%rcx), %rsi
    mov     0x28(%rcx), %r12
    mov     0x30(%rcx), %r13
    mov     0x38(%rcx), %r14
    mov     0x40(%rcx), %r15
    # load non-volatile fp registers
    ldmxcsr 0x50(%rcx)
    movdqu  0x58(%rcx), %xmm6
    movdqu  0x68(%rcx), %xmm7
    movdqu  0x78(%rcx), %xmm8
    movdqu  0x88(%rcx), %xmm9
    movdqu  0x98(%rcx), %xmm10
    movdqu  0xA8(%rcx), %xmm11
    movdqu  0xB8(%rcx), %xmm12
    movdqu  0xC8(%rcx), %xmm13
    movdqu  0xD8(%rcx), %xmm14
    movdqu  0xE8(%rcx), %xmm15  
    mov     %rdx, %rax          # set return value
    jmp     *0x48(%rcx)
