This is to add instruction SAVEPREVSSP, CLRSSBSY and RSTORSSP_RAX in Nasm.
The open CI is using NASM 2.14.02.
CET instructions are supported since NASM 2.15.01.
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3192
Signed-off-by: Sheng Wei <w.sheng@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Zhiguang Liu <zhiguang.liu@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
---
MdePkg/Include/Ia32/Nasm.inc | 12 ++++++++++++
MdePkg/Include/X64/Nasm.inc | 12 ++++++++++++
2 files changed, 24 insertions(+)
diff --git a/MdePkg/Include/Ia32/Nasm.inc b/MdePkg/Include/Ia32/Nasm.inc
index 31ce861f1e..fa42f9d3e9 100644
--- a/MdePkg/Include/Ia32/Nasm.inc
+++ b/MdePkg/Include/Ia32/Nasm.inc
@@ -9,6 +9,18 @@
;
;------------------------------------------------------------------------------
+%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
diff --git a/MdePkg/Include/X64/Nasm.inc b/MdePkg/Include/X64/Nasm.inc
index 42412735ea..e57a803c81 100644
--- a/MdePkg/Include/X64/Nasm.inc
+++ b/MdePkg/Include/X64/Nasm.inc
@@ -9,6 +9,18 @@
;
;------------------------------------------------------------------------------
+%macro SAVEPREVSSP 0
+ DB 0xF3, 0x0F, 0x01, 0xEA
+%endmacro
+
+%macro CLRSSBSY_RAX 0
+ DB 0xF3, 0x0F, 0xAE, 0x30
+%endmacro
+
+%macro RSTORSSP_RAX 0
+ DB 0xF3, 0x0F, 0x01, 0x28
+%endmacro
+
%macro SETSSBSY 0
DB 0xF3, 0x0F, 0x01, 0xE8
%endmacro
--
2.16.2.windows.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#71809): https://edk2.groups.io/g/devel/message/71809
Mute This Topic: https://groups.io/mt/80749115/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Hi Sheng,
On 02/19/21 05:47, Sheng Wei wrote:
> This is to add instruction SAVEPREVSSP, CLRSSBSY and RSTORSSP_RAX in Nasm.
> The open CI is using NASM 2.14.02.
> CET instructions are supported since NASM 2.15.01.
>
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3192
>
> Signed-off-by: Sheng Wei <w.sheng@intel.com>
> Cc: Michael D Kinney <michael.d.kinney@intel.com>
> Cc: Liming Gao <gaoliming@byosoft.com.cn>
> Cc: Zhiguang Liu <zhiguang.liu@intel.com>
> Cc: Jiewen Yao <jiewen.yao@intel.com>
> ---
> MdePkg/Include/Ia32/Nasm.inc | 12 ++++++++++++
> MdePkg/Include/X64/Nasm.inc | 12 ++++++++++++
> 2 files changed, 24 insertions(+)
>
> diff --git a/MdePkg/Include/Ia32/Nasm.inc b/MdePkg/Include/Ia32/Nasm.inc
> index 31ce861f1e..fa42f9d3e9 100644
> --- a/MdePkg/Include/Ia32/Nasm.inc
> +++ b/MdePkg/Include/Ia32/Nasm.inc
> @@ -9,6 +9,18 @@
> ;
> ;------------------------------------------------------------------------------
>
> +%macro SAVEPREVSSP 0
> + DB 0xF3, 0x0F, 0x01, 0xEA
> +%endmacro
Under your v1 patch, I wrote the following:
msgid <48aa5d2c-372d-31e5-0a69-8ae0a2234372@redhat.com>
https://edk2.groups.io/g/devel/message/71366
I'll let others review this patch.
I'm OK to add macros to the nasm.inc files under MdePkg, as wrappers
for the DB-encoded CET instructions, as long as you also file a
reminder BZ to replace the DBs with the actual instructions, once a
CET-supporting NASM becomes available in CI.
Can you please file a reminder BZ *now*, for removing the DB-encoded
instructions, and can you also please reference that BZ ticket in the
commit message of this patch?
(To slightly correct my above quote, the new BZ should be addressed when
the edk2-native BaseTools requirements are advanced to NASM 2.15.01 as
well.)
Thanks
Laszlo
> +
> +%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
> diff --git a/MdePkg/Include/X64/Nasm.inc b/MdePkg/Include/X64/Nasm.inc
> index 42412735ea..e57a803c81 100644
> --- a/MdePkg/Include/X64/Nasm.inc
> +++ b/MdePkg/Include/X64/Nasm.inc
> @@ -9,6 +9,18 @@
> ;
> ;------------------------------------------------------------------------------
>
> +%macro SAVEPREVSSP 0
> + DB 0xF3, 0x0F, 0x01, 0xEA
> +%endmacro
> +
> +%macro CLRSSBSY_RAX 0
> + DB 0xF3, 0x0F, 0xAE, 0x30
> +%endmacro
> +
> +%macro RSTORSSP_RAX 0
> + DB 0xF3, 0x0F, 0x01, 0x28
> +%endmacro
> +
> %macro SETSSBSY 0
> DB 0xF3, 0x0F, 0x01, 0xE8
> %endmacro
>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#71848): https://edk2.groups.io/g/devel/message/71848
Mute This Topic: https://groups.io/mt/80749115/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
© 2016 - 2026 Red Hat, Inc.