;------------------------------------------------------------------------------
;
; Copyright (c) 2022, Intel Corporation. All rights reserved.<BR>
; SPDX-License-Identifier: BSD-2-Clause-Patent
;
; Abstract:
;
;   Switch the stack from temporary memory to permanent memory.
;
;------------------------------------------------------------------------------

    SECTION .text

;------------------------------------------------------------------------------
; VOID
; EFIAPI
; SecSwitchStack (
;   UINT32   TemporaryMemoryBase,
;   UINT32   PermanentMemoryBase
;   );
;------------------------------------------------------------------------------
global ASM_PFX(SecSwitchStack)
ASM_PFX(SecSwitchStack):
    ;
    ; Save four register: rax, rbx, rcx, rdx
    ;
    push  rax
    push  rbx
    push  rcx
    push  rdx

    ;
    ; !!CAUTION!! this function address's is pushed into stack after
    ; migration of whole temporary memory, so need save it to permanent
    ; memory at first!
    ;

    mov   rbx, rcx                 ; Save the first parameter
    mov   rcx, rdx                 ; Save the second parameter

    ;
    ; Save this function's return address into permanent memory at first.
    ; Then, Fixup the esp point to permanent memory
    ;
    mov   rax, rsp
    sub   rax, rbx
    add   rax, rcx
    mov   rdx, qword [rsp]         ; copy pushed register's value to permanent memory
    mov   qword [rax], rdx
    mov   rdx, qword [rsp + 8]
    mov   qword [rax + 8], rdx
    mov   rdx, qword [rsp + 16]
    mov   qword [rax + 16], rdx
    mov   rdx, qword [rsp + 24]
    mov   qword [rax + 24], rdx
    mov   rdx, qword [rsp + 32]    ; Update this function's return address into permanent memory
    mov   qword [rax + 32], rdx
    mov   rsp, rax                 ; From now, rsp is pointed to permanent memory

    ;
    ; Fixup the rbp point to permanent memory
    ;
    mov   rax, rbp
    sub   rax, rbx
    add   rax, rcx
    mov   rbp, rax                 ; From now, rbp is pointed to permanent memory

    pop   rdx
    pop   rcx
    pop   rbx
    pop   rax
    ret

