mirror of https://github.com/acidanthera/audk.git
68 lines
1.4 KiB
PHP
68 lines
1.4 KiB
PHP
;------------------------------------------------------------------------------
|
|
;
|
|
; Copyright (c) 2022, Intel Corporation. All rights reserved.<BR>
|
|
; SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
;
|
|
; Abstract:
|
|
;
|
|
; Provide macro to push/pop registers in X64
|
|
;
|
|
;------------------------------------------------------------------------------
|
|
|
|
;-----------------------------------------------------------------------------
|
|
; Macro: PUSHA_64
|
|
;
|
|
; Description: Saves all registers on stack
|
|
;
|
|
; Input: None
|
|
;
|
|
; Output: None
|
|
;-----------------------------------------------------------------------------
|
|
%macro PUSHA_64 0
|
|
push r8
|
|
push r9
|
|
push r10
|
|
push r11
|
|
push r12
|
|
push r13
|
|
push r14
|
|
push r15
|
|
push rax
|
|
push rcx
|
|
push rdx
|
|
push rbx
|
|
push rsp
|
|
push rbp
|
|
push rsi
|
|
push rdi
|
|
%endmacro
|
|
|
|
;-----------------------------------------------------------------------------
|
|
; Macro: POPA_64
|
|
;
|
|
; Description: Restores all registers from stack
|
|
;
|
|
; Input: None
|
|
;
|
|
; Output: None
|
|
;-----------------------------------------------------------------------------
|
|
%macro POPA_64 0
|
|
pop rdi
|
|
pop rsi
|
|
pop rbp
|
|
pop rsp
|
|
pop rbx
|
|
pop rdx
|
|
pop rcx
|
|
pop rax
|
|
pop r15
|
|
pop r14
|
|
pop r13
|
|
pop r12
|
|
pop r11
|
|
pop r10
|
|
pop r9
|
|
pop r8
|
|
%endmacro
|
|
|