X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=MdePkg%2FInclude%2FIa32%2FNasm.inc;h=31ce861f1e7ecf55c4ccc0d55905adaeb0ab3c4c;hp=fa42f9d3e99b5d210700d55b2a23a137948c91c4;hb=HEAD;hpb=bdf1df8a5f8085a4ce83767c47d59e0bad16084d
diff --git a/MdePkg/Include/Ia32/Nasm.inc b/MdePkg/Include/Ia32/Nasm.inc
index fa42f9d3e9..e92c032bd8 100644
--- a/MdePkg/Include/Ia32/Nasm.inc
+++ b/MdePkg/Include/Ia32/Nasm.inc
@@ -1,6 +1,6 @@
;------------------------------------------------------------------------------
;
-; Copyright (c) 2019, Intel Corporation. All rights reserved.
+; Copyright (c) 2019 - 2022, Intel Corporation. All rights reserved.
; SPDX-License-Identifier: BSD-2-Clause-Patent
;
; Abstract:
@@ -9,26 +9,40 @@
;
;------------------------------------------------------------------------------
-%macro SAVEPREVSSP 0
- DB 0xF3, 0x0F, 0x01, 0xEA
-%endmacro
-
-%macro CLRSSBSY_EAX 0
- DB 0x67, 0xF3, 0x0F, 0xAE, 0x30
-%endmacro
-
-%macro RSTORSSP_EAX 0
- DB 0x67, 0xF3, 0x0F, 0x01, 0x28
-%endmacro
-
-%macro SETSSBSY 0
- DB 0xF3, 0x0F, 0x01, 0xE8
-%endmacro
-
-%macro READSSP_EAX 0
- DB 0xF3, 0x0F, 0x1E, 0xC8
-%endmacro
+; NASM provides built-in macros STRUC and ENDSTRUC for structure definition.
+; For example, to define a structure called mytype containing a longword,
+; a word, a byte and a string of bytes, you might code
+;
+; struc mytype
+;
+; mt_long: resd 1
+; mt_word: resw 1
+; mt_byte: resb 1
+; mt_str: resb 32
+;
+; endstruc
+;
+; Below macros are help to map the C types and the RESB family of pseudo-instructions.
+; So that the above structure definition can be coded as
+;
+; struc mytype
+;
+; mt_long: CTYPE_UINT32 1
+; mt_word: CTYPE_UINT16 1
+; mt_byte: CTYPE_UINT8 1
+; mt_str: CTYPE_CHAR8 32
+;
+; endstruc
+%define CTYPE_UINT64 resq
+%define CTYPE_INT64 resq
+%define CTYPE_UINT32 resd
+%define CTYPE_INT32 resd
+%define CTYPE_UINT16 resw
+%define CTYPE_INT16 resw
+%define CTYPE_BOOLEAN resb
+%define CTYPE_UINT8 resb
+%define CTYPE_CHAR8 resb
+%define CTYPE_INT8 resb
-%macro INCSSP_EAX 0
- DB 0xF3, 0x0F, 0xAE, 0xE8
-%endmacro
+%define CTYPE_UINTN resd
+%define CTYPE_INTN resd