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