[edk2-devel] [PATCH v4 1/2] MdePkg/Include: Add CET instructions to Nasm.inc

Laszlo Ersek lersek at redhat.com
Fri Feb 19 16:57:00 UTC 2021


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 at intel.com>
> Cc: Michael D Kinney <michael.d.kinney at intel.com>
> Cc: Liming Gao <gaoliming at byosoft.com.cn>
> Cc: Zhiguang Liu <zhiguang.liu at intel.com>
> Cc: Jiewen Yao <jiewen.yao at 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 at 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/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-





More information about the edk2-devel-archive mailing list