diff options
author | Kuo, Ted <ted.kuo@intel.com> | 2022-03-14 10:48:00 +0800 |
---|---|---|
committer | mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> | 2022-03-17 13:23:28 +0000 |
commit | 411b3ff6ddb4042374a6e61285dac9f5a227f652 (patch) | |
tree | cd2291c034d2361e181c31c5665b42acc4e6c4fe /IntelFsp2Pkg/Include | |
parent | 0531f61376548c8a4d79eaee1dd5f4070ef009bf (diff) | |
download | edk2-411b3ff6ddb4042374a6e61285dac9f5a227f652.tar.gz |
IntelFsp2Pkg: BaseFspSwitchStackLib Support for X64
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3832
Add BaseFspSwitchStackLib Support for X64.
Cc: Chasel Chiu <chasel.chiu@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Ashraf Ali S <ashraf.ali.s@intel.com>
Signed-off-by: Ted Kuo <ted.kuo@intel.com>
Reviewed-by: Chasel Chiu <chasel.chiu@intel.com>
Diffstat (limited to 'IntelFsp2Pkg/Include')
-rw-r--r-- | IntelFsp2Pkg/Include/PushPopRegsNasm.inc | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/IntelFsp2Pkg/Include/PushPopRegsNasm.inc b/IntelFsp2Pkg/Include/PushPopRegsNasm.inc new file mode 100644 index 0000000000..ec103940d8 --- /dev/null +++ b/IntelFsp2Pkg/Include/PushPopRegsNasm.inc @@ -0,0 +1,67 @@ +;------------------------------------------------------------------------------
+;
+; 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
+
|