From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail.byosoft.com.cn (mail.byosoft.com.cn [58.240.74.242]) by mx.groups.io with SMTP id smtpd.web09.1862.1641266099478500119 for ; Mon, 03 Jan 2022 19:15:08 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=none, err=permanent DNS error (domain: byosoft.com.cn, ip: 58.240.74.242, mailfrom: gaoliming@byosoft.com.cn) Received: from DESKTOPS6D0PVI ([58.246.60.130]) (envelope-sender ) by 192.168.6.13 with ESMTP for ; Tue, 04 Jan 2022 11:14:23 +0800 X-WM-Sender: gaoliming@byosoft.com.cn X-Originating-IP: 58.246.60.130 X-WM-AuthFlag: YES X-WM-AuthUser: gaoliming@byosoft.com.cn From: "gaoliming" To: , , "'Kinney, Michael D'" Cc: "'Liu, Zhiguang'" References: <20211229021026.3107-1-yun.lou@intel.com> <20211229021026.3107-2-yun.lou@intel.com> <012e01d7fc62$3e29f290$ba7dd7b0$@byosoft.com.cn> In-Reply-To: Subject: =?UTF-8?B?5Zue5aSNOiBbZWRrMi1kZXZlbF0gW1BBVENIIHYxIDIvNF0gTWRlUGtnOiBSZXBsYWNlIE9wY29kZSB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGluc3RydWN0aW9ucy4=?= Date: Tue, 4 Jan 2022 11:14:24 +0800 Message-ID: <011701d80119$2d01c310$87054930$@byosoft.com.cn> MIME-Version: 1.0 X-Mailer: Microsoft Outlook 16.0 Thread-Index: AQDiFwwHKY21BPbnSSWwcCYnbO88SAFFayVMAkyVYggBd4me664VtoYg Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Content-Language: zh-cn Jason: Can you also update MdePkg\Include\Ia32\Nasm.inc and MdePkg\Include\X64\N= asm.inc? Meanwhile, please also update BaseTools\Conf\tools_def.template to mentio= n the required minimal nasm version. Current version is 2.12.01. It should = be updated to 2.15.06 with these changes.=20 Thanks Liming > -----=E9=82=AE=E4=BB=B6=E5=8E=9F=E4=BB=B6----- > =E5=8F=91=E4=BB=B6=E4=BA=BA: devel@edk2.groups.io = =E4=BB=A3=E8=A1=A8 Jason Lou > =E5=8F=91=E9=80=81=E6=97=B6=E9=97=B4: 2021=E5=B9=B412=E6=9C=8829=E6=97=A5= 11:51 > =E6=94=B6=E4=BB=B6=E4=BA=BA: Gao, Liming > =E6=8A=84=E9=80=81: Kinney, Michael D ; Liu, = Zhiguang > ; devel@edk2.groups.io > =E4=B8=BB=E9=A2=98: Re: [edk2-devel] [PATCH v1 2/4] MdePkg: Replace Opcod= e with the > corresponding instructions. >=20 > Hi Liming, >=20 > Yes, and I use version 2.15.05 of the nasm compiler to verify code change= s. > https://www.nasm.us/xdoc/2.15.05/html/nasmdocb.html >=20 > Best Regards > Jason Lou >=20 > -----Original Message----- > From: gaoliming > Sent: Wednesday, December 29, 2021 11:15 AM > To: Lou, Yun ; devel@edk2.groups.io > Cc: Kinney, Michael D ; Liu, Zhiguang > > Subject: =E5=9B=9E=E5=A4=8D: [PATCH v1 2/4] MdePkg: Replace Opcode with t= he > corresponding instructions. >=20 > Jason: > Does this change depend on new version nasm compiler? Can you provide > which nasm compiler version is required? >=20 > Thanks > Liming > > -----=E9=82=AE=E4=BB=B6=E5=8E=9F=E4=BB=B6----- > > =E5=8F=91=E4=BB=B6=E4=BA=BA: Jason > > =E5=8F=91=E9=80=81=E6=97=B6=E9=97=B4: 2021=E5=B9=B412=E6=9C=8829=E6=97= =A5 10:10 > > =E6=94=B6=E4=BB=B6=E4=BA=BA: devel@edk2.groups.io > > =E6=8A=84=E9=80=81: Jason Lou ; Michael D Kinney > > ; Liming Gao ; > > Zhiguang Liu > > =E4=B8=BB=E9=A2=98: [PATCH v1 2/4] MdePkg: Replace Opcode with the corr= esponding > > instructions. > > > > From: Jason Lou > > > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3790 > > > > Replace Opcode with the corresponding instructions. > > The code changes have been verified with CompareBuild.py tool, which > > can be used to compare the results of two different EDK II builds to > > determine if they generate the same binaries. > > (the tool link: https://github.com/mdkinney/edk2) > > > > Signed-off-by: Jason Lou > > Cc: Michael D Kinney > > Cc: Liming Gao > > Cc: Zhiguang Liu > > --- > > MdePkg/Library/BaseLib/Ia32/EnablePaging64.nasm | 20 > > ++++++++------------ > > MdePkg/Library/BaseLib/Ia32/LongJump.nasm | 6 +++--- > > MdePkg/Library/BaseLib/Ia32/Monitor.nasm | 4 ++-- > > MdePkg/Library/BaseLib/Ia32/Mwait.nasm | 4 ++-- > > MdePkg/Library/BaseLib/Ia32/RdRand.nasm | 13 > +++++-------- > > MdePkg/Library/BaseLib/Ia32/ReadDr4.nasm | 6 +++--- > > MdePkg/Library/BaseLib/Ia32/ReadDr5.nasm | 6 +++--- > > MdePkg/Library/BaseLib/Ia32/SetJump.nasm | 6 +++--- > > MdePkg/Library/BaseLib/Ia32/WriteDr4.nasm | 6 +++--- > > MdePkg/Library/BaseLib/Ia32/WriteDr5.nasm | 6 +++--- > > MdePkg/Library/BaseLib/X64/DisablePaging64.nasm | 5 ++--- > > MdePkg/Library/BaseLib/X64/LongJump.nasm | 6 +++--- > > MdePkg/Library/BaseLib/X64/Monitor.nasm | 4 ++-- > > MdePkg/Library/BaseLib/X64/Mwait.nasm | 4 ++-- > > MdePkg/Library/BaseLib/X64/RdRand.nasm | 11 > ++++------- > > MdePkg/Library/BaseLib/X64/ReadDr4.nasm | 4 ++-- > > MdePkg/Library/BaseLib/X64/ReadDr5.nasm | 4 ++-- > > MdePkg/Library/BaseLib/X64/ReadMm0.nasm | 7 ++----- > > MdePkg/Library/BaseLib/X64/ReadMm1.nasm | 7 ++----- > > MdePkg/Library/BaseLib/X64/ReadMm2.nasm | 7 ++----- > > MdePkg/Library/BaseLib/X64/ReadMm3.nasm | 7 ++----- > > MdePkg/Library/BaseLib/X64/ReadMm4.nasm | 7 ++----- > > MdePkg/Library/BaseLib/X64/ReadMm5.nasm | 7 ++----- > > MdePkg/Library/BaseLib/X64/ReadMm6.nasm | 7 ++----- > > MdePkg/Library/BaseLib/X64/ReadMm7.nasm | 7 ++----- > > MdePkg/Library/BaseLib/X64/SetJump.nasm | 6 +++--- > > MdePkg/Library/BaseLib/X64/WriteDr4.nasm | 4 ++-- > > MdePkg/Library/BaseLib/X64/WriteDr5.nasm | 4 ++-- > > MdePkg/Library/BaseLib/X64/WriteMm0.nasm | 7 ++----- > > MdePkg/Library/BaseLib/X64/WriteMm1.nasm | 7 ++----- > > MdePkg/Library/BaseLib/X64/WriteMm2.nasm | 7 ++----- > > MdePkg/Library/BaseLib/X64/WriteMm3.nasm | 7 ++----- > > MdePkg/Library/BaseLib/X64/WriteMm4.nasm | 7 ++----- > > MdePkg/Library/BaseLib/X64/WriteMm5.nasm | 7 ++----- > > MdePkg/Library/BaseLib/X64/WriteMm6.nasm | 7 ++----- > > MdePkg/Library/BaseLib/X64/WriteMm7.nasm | 7 ++----- > > MdePkg/Library/BaseMemoryLibMmx/X64/CopyMem.nasm | 10 > > +++++----- > > MdePkg/Library/BaseMemoryLibMmx/X64/SetMem.nasm | 8 > ++++---- > > MdePkg/Library/BaseMemoryLibMmx/X64/SetMem16.nasm | 8 > ++++---- > > MdePkg/Library/BaseMemoryLibMmx/X64/SetMem32.nasm | 10 > > +++++----- > > MdePkg/Library/BaseMemoryLibMmx/X64/SetMem64.nasm | 6 +++--- > > MdePkg/Library/BaseMemoryLibMmx/X64/ZeroMem.nasm | 8 > ++++---- > > 42 files changed, 116 insertions(+), 175 deletions(-) > > > > diff --git a/MdePkg/Library/BaseLib/Ia32/EnablePaging64.nasm > > b/MdePkg/Library/BaseLib/Ia32/EnablePaging64.nasm > > index 544e3c3892..492306fd70 100644 > > --- a/MdePkg/Library/BaseLib/Ia32/EnablePaging64.nasm > > +++ b/MdePkg/Library/BaseLib/Ia32/EnablePaging64.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006, Intel Corporation. All rights reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -44,16 +44,12 @@ ASM_PFX(InternalX86EnablePaging64): > > mov cr0, eax ; enable paging > > > > retf ; topmost 2 dwords hold > the > > address > > > > .0: > > > > - DB 0x67, 0x48 ; 32-bit address size, > > 64-bit operand size > > > > - mov ebx, [esp] ; mov rbx, [esp] > > > > - DB 0x67, 0x48 > > > > - mov ecx, [esp + 8] ; mov rcx, [esp + 8] > > > > - DB 0x67, 0x48 > > > > - mov edx, [esp + 0x10] ; mov rdx, [esp + 10h] > > > > - DB 0x67, 0x48 > > > > - mov esp, [esp + 0x18] ; mov rsp, [esp + 18h] > > > > - DB 0x48 > > > > - add esp, -0x20 ; add rsp, -20h > > > > - call ebx ; call rbx > > > > +BITS 64 > > > > + mov rbx, [esp] > > > > + mov rcx, [esp + 8] > > > > + mov rdx, [esp + 0x10] > > > > + mov rsp, [esp + 0x18] > > > > + add rsp, -0x20 > > > > + call rbx > > > > hlt ; no one should get here > > > > > > > > diff --git a/MdePkg/Library/BaseLib/Ia32/LongJump.nasm > > b/MdePkg/Library/BaseLib/Ia32/LongJump.nasm > > index f94d10f806..17e215b9cb 100644 > > --- a/MdePkg/Library/BaseLib/Ia32/LongJump.nasm > > +++ b/MdePkg/Library/BaseLib/Ia32/LongJump.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006 - 2019, Intel Corporation. All rights > > reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -39,12 +39,12 @@ ASM_PFX(InternalLongJump): > > > > > > mov edx, [esp + 4] ; edx =3D JumpBuffer > > > > mov edx, [edx + 24] ; edx =3D target SSP > > > > - READSSP_EAX > > > > + rdsspd eax > > > > sub edx, eax ; edx =3D delta > > > > mov eax, edx ; eax =3D delta > > > > > > > > shr eax, 2 ; eax =3D delta/sizeof(UINT32) > > > > - INCSSP_EAX > > > > + incsspd eax > > > > > > > > CetDone: > > > > > > > > diff --git a/MdePkg/Library/BaseLib/Ia32/Monitor.nasm > > b/MdePkg/Library/BaseLib/Ia32/Monitor.nasm > > index 28dc0ba70a..145520ce44 100644 > > --- a/MdePkg/Library/BaseLib/Ia32/Monitor.nasm > > +++ b/MdePkg/Library/BaseLib/Ia32/Monitor.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006, Intel Corporation. All rights reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -31,6 +31,6 @@ ASM_PFX(AsmMonitor): > > mov eax, [esp + 4] > > > > mov ecx, [esp + 8] > > > > mov edx, [esp + 12] > > > > - DB 0xf, 1, 0xc8 ; monitor > > > > + monitor > > > > ret > > > > > > > > diff --git a/MdePkg/Library/BaseLib/Ia32/Mwait.nasm > > b/MdePkg/Library/BaseLib/Ia32/Mwait.nasm > > index 3956940cab..f0a6d14f5f 100644 > > --- a/MdePkg/Library/BaseLib/Ia32/Mwait.nasm > > +++ b/MdePkg/Library/BaseLib/Ia32/Mwait.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006, Intel Corporation. All rights reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -29,6 +29,6 @@ global ASM_PFX(AsmMwait) > > ASM_PFX(AsmMwait): > > > > mov eax, [esp + 4] > > > > mov ecx, [esp + 8] > > > > - DB 0xf, 1, 0xc9 ; mwait > > > > + mwait > > > > ret > > > > > > > > diff --git a/MdePkg/Library/BaseLib/Ia32/RdRand.nasm > > b/MdePkg/Library/BaseLib/Ia32/RdRand.nasm > > index e12b8e9611..7a69dc9b0d 100644 > > --- a/MdePkg/Library/BaseLib/Ia32/RdRand.nasm > > +++ b/MdePkg/Library/BaseLib/Ia32/RdRand.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2015 - 2016, Intel Corporation. All rights > > reserved.
> > > > +; Copyright (c) 2015 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -25,9 +25,8 @@ SECTION .text > > > ;------------------------------------------------------------------------= --- > --- > > > > global ASM_PFX(InternalX86RdRand16) > > > > ASM_PFX(InternalX86RdRand16): > > > > - ; rdrand ax ; generate a 16 bit RN into ax > > > > + rdrand eax ; generate a 16 bit RN into ax > > > > ; CF=3D1 if RN generated ok, > > otherwise CF=3D0 > > > > - db 0xf, 0xc7, 0xf0 ; rdrand r16: "0f c7 /6 > > ModRM:r/m(w)" > > > > jc rn16_ok ; jmp if CF=3D1 > > > > xor eax, eax ; reg=3D0 if CF=3D0 > > > > ret ; return with failure status > > > > @@ -45,9 +44,8 @@ rn16_ok: > > > ;------------------------------------------------------------------------= --- > --- > > > > global ASM_PFX(InternalX86RdRand32) > > > > ASM_PFX(InternalX86RdRand32): > > > > - ; rdrand eax ; generate a 32 bit RN into eax > > > > + rdrand eax ; generate a 32 bit RN into eax > > > > ; CF=3D1 if RN generated ok, > > otherwise CF=3D0 > > > > - db 0xf, 0xc7, 0xf0 ; rdrand r32: "0f c7 /6 > > ModRM:r/m(w)" > > > > jc rn32_ok ; jmp if CF=3D1 > > > > xor eax, eax ; reg=3D0 if CF=3D0 > > > > ret ; return with failure status > > > > @@ -65,14 +63,13 @@ rn32_ok: > > > ;------------------------------------------------------------------------= --- > --- > > > > global ASM_PFX(InternalX86RdRand64) > > > > ASM_PFX(InternalX86RdRand64): > > > > - ; rdrand eax ; generate a 32 bit RN into eax > > > > + rdrand eax ; generate a 32 bit RN into eax > > > > ; CF=3D1 if RN generated ok, > > otherwise CF=3D0 > > > > - db 0xf, 0xc7, 0xf0 ; rdrand r32: "0f c7 /6 > > ModRM:r/m(w)" > > > > jnc rn64_ret ; jmp if CF=3D0 > > > > mov edx, dword [esp + 4] > > > > mov [edx], eax > > > > > > > > - db 0xf, 0xc7, 0xf0 ; generate another 32 bit RN > > > > + rdrand eax ; generate another 32 bit RN > > > > jnc rn64_ret ; jmp if CF=3D0 > > > > mov [edx + 4], eax > > > > > > > > diff --git a/MdePkg/Library/BaseLib/Ia32/ReadDr4.nasm > > b/MdePkg/Library/BaseLib/Ia32/ReadDr4.nasm > > index 81c681de34..0014720143 100644 > > --- a/MdePkg/Library/BaseLib/Ia32/ReadDr4.nasm > > +++ b/MdePkg/Library/BaseLib/Ia32/ReadDr4.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006, Intel Corporation. All rights reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -31,8 +31,8 @@ ASM_PFX(AsmReadDr4): > > ; this register will cause a #UD exception. > > > > ; > > > > ; MS assembler doesn't support this instruction since no one > > would > use > > it > > > > - ; under normal circustances. Here opcode is used. > > > > + ; under normal circustances. > > > > ; > > > > - DB 0xf, 0x21, 0xe0 > > > > + mov eax, dr4 > > > > ret > > > > > > > > diff --git a/MdePkg/Library/BaseLib/Ia32/ReadDr5.nasm > > b/MdePkg/Library/BaseLib/Ia32/ReadDr5.nasm > > index e2deacb832..40f48e07e9 100644 > > --- a/MdePkg/Library/BaseLib/Ia32/ReadDr5.nasm > > +++ b/MdePkg/Library/BaseLib/Ia32/ReadDr5.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006, Intel Corporation. All rights reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -31,8 +31,8 @@ ASM_PFX(AsmReadDr5): > > ; this register will cause a #UD exception. > > > > ; > > > > ; MS assembler doesn't support this instruction since no one > > would > use > > it > > > > - ; under normal circustances. Here opcode is used. > > > > + ; under normal circustances. > > > > ; > > > > - DB 0xf, 0x21, 0xe8 > > > > + mov eax, dr5 > > > > ret > > > > > > > > diff --git a/MdePkg/Library/BaseLib/Ia32/SetJump.nasm > > b/MdePkg/Library/BaseLib/Ia32/SetJump.nasm > > index 364613b5f9..978e1946af 100644 > > --- a/MdePkg/Library/BaseLib/Ia32/SetJump.nasm > > +++ b/MdePkg/Library/BaseLib/Ia32/SetJump.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006 - 2019, Intel Corporation. All rights > > reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -46,8 +46,8 @@ ASM_PFX(SetJump): > > jnc CetDone > > > > > > > > mov eax, 1 > > > > - INCSSP_EAX ; to read original SSP > > > > - READSSP_EAX > > > > + incsspd eax ; to read original SSP > > > > + rdsspd eax > > > > mov [edx + 0x24], eax ; save SSP > > > > > > > > CetDone: > > > > diff --git a/MdePkg/Library/BaseLib/Ia32/WriteDr4.nasm > > b/MdePkg/Library/BaseLib/Ia32/WriteDr4.nasm > > index 0d23fca111..e36678ff24 100644 > > --- a/MdePkg/Library/BaseLib/Ia32/WriteDr4.nasm > > +++ b/MdePkg/Library/BaseLib/Ia32/WriteDr4.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006, Intel Corporation. All rights reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -32,8 +32,8 @@ ASM_PFX(AsmWriteDr4): > > ; this register will cause a #UD exception. > > > > ; > > > > ; MS assembler doesn't support this instruction since no one > > would > use > > it > > > > - ; under normal circustances. Here opcode is used. > > > > + ; under normal circustances. > > > > ; > > > > - DB 0xf, 0x23, 0xe0 > > > > + mov dr4, eax > > > > ret > > > > > > > > diff --git a/MdePkg/Library/BaseLib/Ia32/WriteDr5.nasm > > b/MdePkg/Library/BaseLib/Ia32/WriteDr5.nasm > > index bc5f424b8d..2a43ef6b9c 100644 > > --- a/MdePkg/Library/BaseLib/Ia32/WriteDr5.nasm > > +++ b/MdePkg/Library/BaseLib/Ia32/WriteDr5.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006, Intel Corporation. All rights reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -32,8 +32,8 @@ ASM_PFX(AsmWriteDr5): > > ; this register will cause a #UD exception. > > > > ; > > > > ; MS assembler doesn't support this instruction since no one > > would > use > > it > > > > - ; under normal circustances. Here opcode is used. > > > > + ; under normal circustances. > > > > ; > > > > - DB 0xf, 0x23, 0xe8 > > > > + mov dr5, eax > > > > ret > > > > > > > > diff --git a/MdePkg/Library/BaseLib/X64/DisablePaging64.nasm > > b/MdePkg/Library/BaseLib/X64/DisablePaging64.nasm > > index c76ed1a76c..55fef56fc4 100644 > > --- a/MdePkg/Library/BaseLib/X64/DisablePaging64.nasm > > +++ b/MdePkg/Library/BaseLib/X64/DisablePaging64.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006 - 2008, Intel Corporation. All rights > > reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -51,8 +51,7 @@ ASM_PFX(InternalX86DisablePaging64): > > sub eax, 4 ; eax <- One slot below > > transition code on the stack > > > > push rcx ; push Cs to stack > > > > push r10 ; push address of > tansition > > code on stack > > > > - DB 0x48 ; prefix to composite > > "retq" with next "retf" > > > > - retf ; Use far return to load CS > > register from stack > > > > + retfq > > > > > > > > ; Start of transition code > > > > .0: > > > > diff --git a/MdePkg/Library/BaseLib/X64/LongJump.nasm > > b/MdePkg/Library/BaseLib/X64/LongJump.nasm > > index 59f7092169..0cbad70edc 100644 > > --- a/MdePkg/Library/BaseLib/X64/LongJump.nasm > > +++ b/MdePkg/Library/BaseLib/X64/LongJump.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006 - 2019, Intel Corporation. All rights > > reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -41,12 +41,12 @@ ASM_PFX(InternalLongJump): > > push rdx ; save rdx > > > > > > > > mov rdx, [rcx + 0xF8] ; rdx =3D target SSP > > > > - READSSP_RAX > > > > + rdsspq rax > > > > sub rdx, rax ; rdx =3D delta > > > > mov rax, rdx ; rax =3D delta > > > > > > > > shr rax, 3 ; rax =3D > delta/sizeof(UINT64) > > > > - INCSSP_RAX > > > > + incsspq rax > > > > > > > > pop rdx ; restore rdx > > > > CetDone: > > > > diff --git a/MdePkg/Library/BaseLib/X64/Monitor.nasm > > b/MdePkg/Library/BaseLib/X64/Monitor.nasm > > index e1ccb83a85..5855bc3522 100644 > > --- a/MdePkg/Library/BaseLib/X64/Monitor.nasm > > +++ b/MdePkg/Library/BaseLib/X64/Monitor.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006, Intel Corporation. All rights reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -32,6 +32,6 @@ ASM_PFX(AsmMonitor): > > mov eax, ecx > > > > mov ecx, edx > > > > mov edx, r8d > > > > - DB 0xf, 1, 0xc8 ; monitor > > > > + monitor > > > > ret > > > > > > > > diff --git a/MdePkg/Library/BaseLib/X64/Mwait.nasm > > b/MdePkg/Library/BaseLib/X64/Mwait.nasm > > index 83fc895491..fc34b6f6f4 100644 > > --- a/MdePkg/Library/BaseLib/X64/Mwait.nasm > > +++ b/MdePkg/Library/BaseLib/X64/Mwait.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006, Intel Corporation. All rights reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -30,6 +30,6 @@ global ASM_PFX(AsmMwait) > > ASM_PFX(AsmMwait): > > > > mov eax, ecx > > > > mov ecx, edx > > > > - DB 0xf, 1, 0xc9 ; mwait > > > > + mwait > > > > ret > > > > > > > > diff --git a/MdePkg/Library/BaseLib/X64/RdRand.nasm > > b/MdePkg/Library/BaseLib/X64/RdRand.nasm > > index 7e7fe99670..8417b4dfb4 100644 > > --- a/MdePkg/Library/BaseLib/X64/RdRand.nasm > > +++ b/MdePkg/Library/BaseLib/X64/RdRand.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2015 - 2016, Intel Corporation. All rights > > reserved.
> > > > +; Copyright (c) 2015 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -26,9 +26,8 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > global ASM_PFX(InternalX86RdRand16) > > > > ASM_PFX(InternalX86RdRand16): > > > > - ; rdrand ax ; generate a 16 bit RN into eax, > > > > + rdrand eax ; generate a 16 bit RN into eax, > > > > ; CF=3D1 if RN generated ok, > > otherwise CF=3D0 > > > > - db 0xf, 0xc7, 0xf0 ; rdrand r16: "0f c7 /6 > > ModRM:r/m(w)" > > > > jc rn16_ok ; jmp if CF=3D1 > > > > xor rax, rax ; reg=3D0 if CF=3D0 > > > > ret ; return with failure status > > > > @@ -45,9 +44,8 @@ rn16_ok: > > > ;------------------------------------------------------------------------= --- > --- > > > > global ASM_PFX(InternalX86RdRand32) > > > > ASM_PFX(InternalX86RdRand32): > > > > - ; rdrand eax ; generate a 32 bit RN into eax, > > > > + rdrand eax ; generate a 32 bit RN into eax, > > > > ; CF=3D1 if RN generated ok, > > otherwise CF=3D0 > > > > - db 0xf, 0xc7, 0xf0 ; rdrand r32: "0f c7 /6 > > ModRM:r/m(w)" > > > > jc rn32_ok ; jmp if CF=3D1 > > > > xor rax, rax ; reg=3D0 if CF=3D0 > > > > ret ; return with failure status > > > > @@ -64,9 +62,8 @@ rn32_ok: > > > ;------------------------------------------------------------------------= --- > --- > > > > global ASM_PFX(InternalX86RdRand64) > > > > ASM_PFX(InternalX86RdRand64): > > > > - ; rdrand rax ; generate a 64 bit RN into rax, > > > > + rdrand rax ; generate a 64 bit RN into rax, > > > > ; CF=3D1 if RN generated ok, > > otherwise CF=3D0 > > > > - db 0x48, 0xf, 0xc7, 0xf0 ; rdrand r64: "REX.W + 0f c7 /6 > > ModRM:r/m(w)" > > > > jc rn64_ok ; jmp if CF=3D1 > > > > xor rax, rax ; reg=3D0 if CF=3D0 > > > > ret ; return with failure status > > > > diff --git a/MdePkg/Library/BaseLib/X64/ReadDr4.nasm > > b/MdePkg/Library/BaseLib/X64/ReadDr4.nasm > > index 82c0a9a588..ea131c9fc3 100644 > > --- a/MdePkg/Library/BaseLib/X64/ReadDr4.nasm > > +++ b/MdePkg/Library/BaseLib/X64/ReadDr4.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006, Intel Corporation. All rights reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -31,6 +31,6 @@ ASM_PFX(AsmReadDr4): > > ; There's no obvious reason to access this register, since it's > aliased to > > > > ; DR7 when DE=3D0 or an exception generated when DE=3D1 > > > > ; > > > > - DB 0xf, 0x21, 0xe0 > > > > + mov rax, dr4 > > > > ret > > > > > > > > diff --git a/MdePkg/Library/BaseLib/X64/ReadDr5.nasm > > b/MdePkg/Library/BaseLib/X64/ReadDr5.nasm > > index c309c66dfe..10aefc8d28 100644 > > --- a/MdePkg/Library/BaseLib/X64/ReadDr5.nasm > > +++ b/MdePkg/Library/BaseLib/X64/ReadDr5.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006, Intel Corporation. All rights reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -31,6 +31,6 @@ ASM_PFX(AsmReadDr5): > > ; There's no obvious reason to access this register, since it's > aliased to > > > > ; DR7 when DE=3D0 or an exception generated when DE=3D1 > > > > ; > > > > - DB 0xf, 0x21, 0xe8 > > > > + mov rax, dr5 > > > > ret > > > > > > > > diff --git a/MdePkg/Library/BaseLib/X64/ReadMm0.nasm > > b/MdePkg/Library/BaseLib/X64/ReadMm0.nasm > > index 615721b6aa..29d284c3b1 100644 > > --- a/MdePkg/Library/BaseLib/X64/ReadMm0.nasm > > +++ b/MdePkg/Library/BaseLib/X64/ReadMm0.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006, Intel Corporation. All rights reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -27,9 +27,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > global ASM_PFX(AsmReadMm0) > > > > ASM_PFX(AsmReadMm0): > > > > - ; > > > > - ; 64-bit MASM doesn't support MMX instructions, so use opcode here > > > > - ; > > > > - DB 0x48, 0xf, 0x7e, 0xc0 > > > > + movq rax, mm0 > > > > ret > > > > > > > > diff --git a/MdePkg/Library/BaseLib/X64/ReadMm1.nasm > > b/MdePkg/Library/BaseLib/X64/ReadMm1.nasm > > index 7b27393490..6e0b9bba29 100644 > > --- a/MdePkg/Library/BaseLib/X64/ReadMm1.nasm > > +++ b/MdePkg/Library/BaseLib/X64/ReadMm1.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006, Intel Corporation. All rights reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -27,9 +27,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > global ASM_PFX(AsmReadMm1) > > > > ASM_PFX(AsmReadMm1): > > > > - ; > > > > - ; 64-bit MASM doesn't support MMX instructions, so use opcode here > > > > - ; > > > > - DB 0x48, 0xf, 0x7e, 0xc8 > > > > + movq rax, mm1 > > > > ret > > > > > > > > diff --git a/MdePkg/Library/BaseLib/X64/ReadMm2.nasm > > b/MdePkg/Library/BaseLib/X64/ReadMm2.nasm > > index c654b91a7a..7c7d086c4f 100644 > > --- a/MdePkg/Library/BaseLib/X64/ReadMm2.nasm > > +++ b/MdePkg/Library/BaseLib/X64/ReadMm2.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006, Intel Corporation. All rights reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -27,9 +27,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > global ASM_PFX(AsmReadMm2) > > > > ASM_PFX(AsmReadMm2): > > > > - ; > > > > - ; 64-bit MASM doesn't support MMX instructions, so use opcode here > > > > - ; > > > > - DB 0x48, 0xf, 0x7e, 0xd0 > > > > + movq rax, mm2 > > > > ret > > > > > > > > diff --git a/MdePkg/Library/BaseLib/X64/ReadMm3.nasm > > b/MdePkg/Library/BaseLib/X64/ReadMm3.nasm > > index 88d51c0781..ecaea83c8f 100644 > > --- a/MdePkg/Library/BaseLib/X64/ReadMm3.nasm > > +++ b/MdePkg/Library/BaseLib/X64/ReadMm3.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006, Intel Corporation. All rights reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -27,9 +27,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > global ASM_PFX(AsmReadMm3) > > > > ASM_PFX(AsmReadMm3): > > > > - ; > > > > - ; 64-bit MASM doesn't support MMX instructions, so use opcode here > > > > - ; > > > > - DB 0x48, 0xf, 0x7e, 0xd8 > > > > + movq rax, mm3 > > > > ret > > > > > > > > diff --git a/MdePkg/Library/BaseLib/X64/ReadMm4.nasm > > b/MdePkg/Library/BaseLib/X64/ReadMm4.nasm > > index 4252d20bb1..63aed0911b 100644 > > --- a/MdePkg/Library/BaseLib/X64/ReadMm4.nasm > > +++ b/MdePkg/Library/BaseLib/X64/ReadMm4.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006, Intel Corporation. All rights reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -27,9 +27,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > global ASM_PFX(AsmReadMm4) > > > > ASM_PFX(AsmReadMm4): > > > > - ; > > > > - ; 64-bit MASM doesn't support MMX instructions, so use opcode here > > > > - ; > > > > - DB 0x48, 0xf, 0x7e, 0xe0 > > > > + movq rax, mm4 > > > > ret > > > > > > > > diff --git a/MdePkg/Library/BaseLib/X64/ReadMm5.nasm > > b/MdePkg/Library/BaseLib/X64/ReadMm5.nasm > > index d8f530dec8..f6b7b48536 100644 > > --- a/MdePkg/Library/BaseLib/X64/ReadMm5.nasm > > +++ b/MdePkg/Library/BaseLib/X64/ReadMm5.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006, Intel Corporation. All rights reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -27,9 +27,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > global ASM_PFX(AsmReadMm5) > > > > ASM_PFX(AsmReadMm5): > > > > - ; > > > > - ; 64-bit MASM doesn't support MMX instructions, so use opcode here > > > > - ; > > > > - DB 0x48, 0xf, 0x7e, 0xe8 > > > > + movq rax, mm5 > > > > ret > > > > > > > > diff --git a/MdePkg/Library/BaseLib/X64/ReadMm6.nasm > > b/MdePkg/Library/BaseLib/X64/ReadMm6.nasm > > index 6f6883c2b6..ff8d1de80c 100644 > > --- a/MdePkg/Library/BaseLib/X64/ReadMm6.nasm > > +++ b/MdePkg/Library/BaseLib/X64/ReadMm6.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006, Intel Corporation. All rights reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -27,9 +27,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > global ASM_PFX(AsmReadMm6) > > > > ASM_PFX(AsmReadMm6): > > > > - ; > > > > - ; 64-bit MASM doesn't support MMX instructions, so use opcode here > > > > - ; > > > > - DB 0x48, 0xf, 0x7e, 0xf0 > > > > + movq rax, mm6 > > > > ret > > > > > > > > diff --git a/MdePkg/Library/BaseLib/X64/ReadMm7.nasm > > b/MdePkg/Library/BaseLib/X64/ReadMm7.nasm > > index 573f15dfc8..17b0e7d2fb 100644 > > --- a/MdePkg/Library/BaseLib/X64/ReadMm7.nasm > > +++ b/MdePkg/Library/BaseLib/X64/ReadMm7.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006, Intel Corporation. All rights reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -27,9 +27,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > global ASM_PFX(AsmReadMm7) > > > > ASM_PFX(AsmReadMm7): > > > > - ; > > > > - ; 64-bit MASM doesn't support MMX instructions, so use opcode here > > > > - ; > > > > - DB 0x48, 0xf, 0x7e, 0xf8 > > > > + movq rax, mm7 > > > > ret > > > > > > > > diff --git a/MdePkg/Library/BaseLib/X64/SetJump.nasm > > b/MdePkg/Library/BaseLib/X64/SetJump.nasm > > index 5a68396eec..b15a7c5a65 100644 > > --- a/MdePkg/Library/BaseLib/X64/SetJump.nasm > > +++ b/MdePkg/Library/BaseLib/X64/SetJump.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006 - 2019, Intel Corporation. All rights > > reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -48,8 +48,8 @@ ASM_PFX(SetJump): > > jnc CetDone > > > > > > > > mov rax, 1 > > > > - INCSSP_RAX ; to read original SSP > > > > - READSSP_RAX > > > > + incsspq rax ; to read original SSP > > > > + rdsspq rax > > > > mov [rcx + 0xF8], rax ; save SSP > > > > > > > > CetDone: > > > > diff --git a/MdePkg/Library/BaseLib/X64/WriteDr4.nasm > > b/MdePkg/Library/BaseLib/X64/WriteDr4.nasm > > index c4b12c9e92..16765a6c08 100644 > > --- a/MdePkg/Library/BaseLib/X64/WriteDr4.nasm > > +++ b/MdePkg/Library/BaseLib/X64/WriteDr4.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006, Intel Corporation. All rights reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -31,7 +31,7 @@ ASM_PFX(AsmWriteDr4): > > ; There's no obvious reason to access this register, since it's > aliased to > > > > ; DR6 when DE=3D0 or an exception generated when DE=3D1 > > > > ; > > > > - DB 0xf, 0x23, 0xe1 > > > > + mov dr4, rcx > > > > mov rax, rcx > > > > ret > > > > > > > > diff --git a/MdePkg/Library/BaseLib/X64/WriteDr5.nasm > > b/MdePkg/Library/BaseLib/X64/WriteDr5.nasm > > index 986a4a95d9..2161bed0be 100644 > > --- a/MdePkg/Library/BaseLib/X64/WriteDr5.nasm > > +++ b/MdePkg/Library/BaseLib/X64/WriteDr5.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006 - 2008, Intel Corporation. All rights > > reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -31,7 +31,7 @@ ASM_PFX(AsmWriteDr5): > > ; There's no obvious reason to access this register, since it's > aliased to > > > > ; DR7 when DE=3D0 or an exception generated when DE=3D1 > > > > ; > > > > - DB 0xf, 0x23, 0xe9 > > > > + mov dr5, rcx > > > > mov rax, rcx > > > > ret > > > > > > > > diff --git a/MdePkg/Library/BaseLib/X64/WriteMm0.nasm > > b/MdePkg/Library/BaseLib/X64/WriteMm0.nasm > > index 3f03529edf..028d42c2be 100644 > > --- a/MdePkg/Library/BaseLib/X64/WriteMm0.nasm > > +++ b/MdePkg/Library/BaseLib/X64/WriteMm0.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006, Intel Corporation. All rights reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -27,9 +27,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > global ASM_PFX(AsmWriteMm0) > > > > ASM_PFX(AsmWriteMm0): > > > > - ; > > > > - ; 64-bit MASM doesn't support MMX instructions, so use opcode here > > > > - ; > > > > - DB 0x48, 0xf, 0x6e, 0xc1 > > > > + movq mm0, rcx > > > > ret > > > > > > > > diff --git a/MdePkg/Library/BaseLib/X64/WriteMm1.nasm > > b/MdePkg/Library/BaseLib/X64/WriteMm1.nasm > > index f552d40716..cc98e6bd36 100644 > > --- a/MdePkg/Library/BaseLib/X64/WriteMm1.nasm > > +++ b/MdePkg/Library/BaseLib/X64/WriteMm1.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006, Intel Corporation. All rights reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -27,9 +27,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > global ASM_PFX(AsmWriteMm1) > > > > ASM_PFX(AsmWriteMm1): > > > > - ; > > > > - ; 64-bit MASM doesn't support MMX instructions, so use opcode here > > > > - ; > > > > - DB 0x48, 0xf, 0x6e, 0xc9 > > > > + movq mm1, rcx > > > > ret > > > > > > > > diff --git a/MdePkg/Library/BaseLib/X64/WriteMm2.nasm > > b/MdePkg/Library/BaseLib/X64/WriteMm2.nasm > > index 1bd176ced9..2450f955a4 100644 > > --- a/MdePkg/Library/BaseLib/X64/WriteMm2.nasm > > +++ b/MdePkg/Library/BaseLib/X64/WriteMm2.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006, Intel Corporation. All rights reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -27,9 +27,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > global ASM_PFX(AsmWriteMm2) > > > > ASM_PFX(AsmWriteMm2): > > > > - ; > > > > - ; 64-bit MASM doesn't support MMX instructions, so use opcode here > > > > - ; > > > > - DB 0x48, 0xf, 0x6e, 0xd1 > > > > + movq mm2, rcx > > > > ret > > > > > > > > diff --git a/MdePkg/Library/BaseLib/X64/WriteMm3.nasm > > b/MdePkg/Library/BaseLib/X64/WriteMm3.nasm > > index 403f140736..8ff3a24ea0 100644 > > --- a/MdePkg/Library/BaseLib/X64/WriteMm3.nasm > > +++ b/MdePkg/Library/BaseLib/X64/WriteMm3.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006, Intel Corporation. All rights reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -27,9 +27,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > global ASM_PFX(AsmWriteMm3) > > > > ASM_PFX(AsmWriteMm3): > > > > - ; > > > > - ; 64-bit MASM doesn't support MMX instructions, so use opcode here > > > > - ; > > > > - DB 0x48, 0xf, 0x6e, 0xd9 > > > > + movq mm3, rcx > > > > ret > > > > > > > > diff --git a/MdePkg/Library/BaseLib/X64/WriteMm4.nasm > > b/MdePkg/Library/BaseLib/X64/WriteMm4.nasm > > index d99709d495..d5dd4f8667 100644 > > --- a/MdePkg/Library/BaseLib/X64/WriteMm4.nasm > > +++ b/MdePkg/Library/BaseLib/X64/WriteMm4.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006, Intel Corporation. All rights reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -27,9 +27,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > global ASM_PFX(AsmWriteMm4) > > > > ASM_PFX(AsmWriteMm4): > > > > - ; > > > > - ; 64-bit MASM doesn't support MMX instructions, so use opcode here > > > > - ; > > > > - DB 0x48, 0xf, 0x6e, 0xe1 > > > > + movq mm4, rcx > > > > ret > > > > > > > > diff --git a/MdePkg/Library/BaseLib/X64/WriteMm5.nasm > > b/MdePkg/Library/BaseLib/X64/WriteMm5.nasm > > index 0467ac4220..d3ad74d7ae 100644 > > --- a/MdePkg/Library/BaseLib/X64/WriteMm5.nasm > > +++ b/MdePkg/Library/BaseLib/X64/WriteMm5.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006, Intel Corporation. All rights reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -27,9 +27,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > global ASM_PFX(AsmWriteMm5) > > > > ASM_PFX(AsmWriteMm5): > > > > - ; > > > > - ; 64-bit MASM doesn't support MMX instructions, so use opcode here > > > > - ; > > > > - DB 0x48, 0xf, 0x6e, 0xe9 > > > > + movq mm5, rcx > > > > ret > > > > > > > > diff --git a/MdePkg/Library/BaseLib/X64/WriteMm6.nasm > > b/MdePkg/Library/BaseLib/X64/WriteMm6.nasm > > index 6d2e5eb8fb..441c0f636e 100644 > > --- a/MdePkg/Library/BaseLib/X64/WriteMm6.nasm > > +++ b/MdePkg/Library/BaseLib/X64/WriteMm6.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006, Intel Corporation. All rights reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -27,9 +27,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > global ASM_PFX(AsmWriteMm6) > > > > ASM_PFX(AsmWriteMm6): > > > > - ; > > > > - ; 64-bit MASM doesn't support MMX instructions, so use opcode here > > > > - ; > > > > - DB 0x48, 0xf, 0x6e, 0xf1 > > > > + movq mm6, rcx > > > > ret > > > > > > > > diff --git a/MdePkg/Library/BaseLib/X64/WriteMm7.nasm > > b/MdePkg/Library/BaseLib/X64/WriteMm7.nasm > > index de72adf685..c98292e65f 100644 > > --- a/MdePkg/Library/BaseLib/X64/WriteMm7.nasm > > +++ b/MdePkg/Library/BaseLib/X64/WriteMm7.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006, Intel Corporation. All rights reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -27,9 +27,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > global ASM_PFX(AsmWriteMm7) > > > > ASM_PFX(AsmWriteMm7): > > > > - ; > > > > - ; 64-bit MASM doesn't support MMX instructions, so use opcode here > > > > - ; > > > > - DB 0x48, 0xf, 0x6e, 0xf9 > > > > + movq mm7, rcx > > > > ret > > > > > > > > diff --git a/MdePkg/Library/BaseMemoryLibMmx/X64/CopyMem.nasm > > b/MdePkg/Library/BaseMemoryLibMmx/X64/CopyMem.nasm > > index 5769c00bf9..139f3b6fa7 100644 > > --- a/MdePkg/Library/BaseMemoryLibMmx/X64/CopyMem.nasm > > +++ b/MdePkg/Library/BaseMemoryLibMmx/X64/CopyMem.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006, Intel Corporation. All rights reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -44,15 +44,15 @@ ASM_PFX(InternalMemCopyMem): > > and r8, 7 > > > > shr rcx, 3 ; rcx <- # of Qwords to > copy > > > > jz @CopyBytes > > > > - DB 0x49, 0xf, 0x7e, 0xc2 ; movd r10, mm0 (Save > mm0 > > in r10) > > > > + movq r10, mm0 > > > > .1: > > > > - DB 0xf, 0x6f, 0x6 ; movd mm0, [rsi] > > > > - DB 0xf, 0xe7, 0x7 ; movntq [rdi], mm0 > > > > + movq mm0, [rsi] > > > > + movntq [rdi], mm0 > > > > add rsi, 8 > > > > add rdi, 8 > > > > loop .1 > > > > mfence > > > > - DB 0x49, 0xf, 0x6e, 0xc2 ; movd mm0, r10 (Restore > > mm0) > > > > + movq mm0, r10 > > > > jmp @CopyBytes > > > > @CopyBackward: > > > > mov rsi, r9 ; rsi <- End of Source > > > > diff --git a/MdePkg/Library/BaseMemoryLibMmx/X64/SetMem.nasm > > b/MdePkg/Library/BaseMemoryLibMmx/X64/SetMem.nasm > > index 450113ba84..71df7c1121 100644 > > --- a/MdePkg/Library/BaseMemoryLibMmx/X64/SetMem.nasm > > +++ b/MdePkg/Library/BaseMemoryLibMmx/X64/SetMem.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006, Intel Corporation. All rights reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -32,16 +32,16 @@ ASM_PFX(InternalMemSetMem): > > push rdi > > > > mov rax, r8 > > > > mov ah, al > > > > - DB 0x48, 0xf, 0x6e, 0xc0 ; movd mm0, rax > > > > + movq mm0, rax > > > > mov r8, rcx > > > > mov rdi, r8 ; rdi <- Buffer > > > > mov rcx, rdx > > > > and edx, 7 > > > > shr rcx, 3 > > > > jz @SetBytes > > > > - DB 0xf, 0x70, 0xC0, 0x0 ; pshufw mm0, mm0, 0h > > > > + pshufw mm0, mm0, 0 > > > > .0: > > > > - DB 0xf, 0xe7, 0x7 ; movntq [rdi], mm0 > > > > + movntq [rdi], mm0 > > > > add rdi, 8 > > > > loop .0 > > > > mfence > > > > diff --git a/MdePkg/Library/BaseMemoryLibMmx/X64/SetMem16.nasm > > b/MdePkg/Library/BaseMemoryLibMmx/X64/SetMem16.nasm > > index 4e1f4be2b4..5092e4db15 100644 > > --- a/MdePkg/Library/BaseMemoryLibMmx/X64/SetMem16.nasm > > +++ b/MdePkg/Library/BaseMemoryLibMmx/X64/SetMem16.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006, Intel Corporation. All rights reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -31,16 +31,16 @@ global ASM_PFX(InternalMemSetMem16) > > ASM_PFX(InternalMemSetMem16): > > > > push rdi > > > > mov rax, r8 > > > > - DB 0x48, 0xf, 0x6e, 0xc0 ; movd mm0, rax > > > > + movq mm0, rax > > > > mov r8, rcx > > > > mov rdi, r8 > > > > mov rcx, rdx > > > > and edx, 3 > > > > shr rcx, 2 > > > > jz @SetWords > > > > - DB 0xf, 0x70, 0xC0, 0x0 ; pshufw mm0, mm0, 0h > > > > + pshufw mm0, mm0, 0 > > > > .0: > > > > - DB 0xf, 0xe7, 0x7 ; movntq [rdi], mm0 > > > > + movntq [rdi], mm0 > > > > add rdi, 8 > > > > loop .0 > > > > mfence > > > > diff --git a/MdePkg/Library/BaseMemoryLibMmx/X64/SetMem32.nasm > > b/MdePkg/Library/BaseMemoryLibMmx/X64/SetMem32.nasm > > index b3a7385897..ed2f80d30d 100644 > > --- a/MdePkg/Library/BaseMemoryLibMmx/X64/SetMem32.nasm > > +++ b/MdePkg/Library/BaseMemoryLibMmx/X64/SetMem32.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006, Intel Corporation. All rights reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -28,20 +28,20 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > global ASM_PFX(InternalMemSetMem32) > > > > ASM_PFX(InternalMemSetMem32): > > > > - DB 0x49, 0xf, 0x6e, 0xc0 ; movd mm0, r8 (Value) > > > > + movq mm0, r8 > > > > mov rax, rcx ; rax <- Buffer > > > > xchg rcx, rdx ; rcx <- Count rdx <- > Buffer > > > > shr rcx, 1 ; rcx <- # of qwords to set > > > > jz @SetDwords > > > > - DB 0xf, 0x70, 0xC0, 0x44 ; pshufw mm0, mm0, 44h > > > > + pshufw mm0, mm0, 44h > > > > .0: > > > > - DB 0xf, 0xe7, 0x2 ; movntq [rdx], mm0 > > > > + movntq [rdx], mm0 > > > > lea rdx, [rdx + 8] ; use "lea" to avoid flag > changes > > > > loop .0 > > > > mfence > > > > @SetDwords: > > > > jnc .1 > > > > - DB 0xf, 0x7e, 0x2 ; movd [rdx], mm0 > > > > + movd [rdx], mm0 > > > > .1: > > > > ret > > > > > > > > diff --git a/MdePkg/Library/BaseMemoryLibMmx/X64/SetMem64.nasm > > b/MdePkg/Library/BaseMemoryLibMmx/X64/SetMem64.nasm > > index f517e1d23a..b3f75b1636 100644 > > --- a/MdePkg/Library/BaseMemoryLibMmx/X64/SetMem64.nasm > > +++ b/MdePkg/Library/BaseMemoryLibMmx/X64/SetMem64.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006, Intel Corporation. All rights reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -28,11 +28,11 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > global ASM_PFX(InternalMemSetMem64) > > > > ASM_PFX(InternalMemSetMem64): > > > > - DB 0x49, 0xf, 0x6e, 0xc0 ; movd mm0, r8 (Value) > > > > + movq mm0, r8 > > > > mov rax, rcx ; rax <- Buffer > > > > xchg rcx, rdx ; rcx <- Count > > > > .0: > > > > - DB 0xf, 0xe7, 0x2 ; movntq [rdx], mm0 > > > > + movntq [rdx], mm0 > > > > add rdx, 8 > > > > loop .0 > > > > mfence > > > > diff --git a/MdePkg/Library/BaseMemoryLibMmx/X64/ZeroMem.nasm > > b/MdePkg/Library/BaseMemoryLibMmx/X64/ZeroMem.nasm > > index 2a85f15b55..2865d26b34 100644 > > --- a/MdePkg/Library/BaseMemoryLibMmx/X64/ZeroMem.nasm > > +++ b/MdePkg/Library/BaseMemoryLibMmx/X64/ZeroMem.nasm > > @@ -1,6 +1,6 @@ > > > ;------------------------------------------------------------------------= --- > --- > > > > ; > > > > -; Copyright (c) 2006, Intel Corporation. All rights reserved.
> > > > +; Copyright (c) 2006 - 2021, Intel Corporation. All rights > > +reserved.
> > > > ; SPDX-License-Identifier: BSD-2-Clause-Patent > > > > ; > > > > ; Module Name: > > > > @@ -34,12 +34,12 @@ ASM_PFX(InternalMemZeroMem): > > and edx, 7 > > > > shr rcx, 3 > > > > jz @ZeroBytes > > > > - DB 0xf, 0xef, 0xc0 ; pxor mm0, mm0 > > > > + pxor mm0, mm0 > > > > .0: > > > > - DB 0xf, 0xe7, 7 ; movntq [rdi], mm0 > > > > + movntq [rdi], mm0 > > > > add rdi, 8 > > > > loop .0 > > > > - DB 0xf, 0xae, 0xf0 ; mfence > > > > + mfence > > > > @ZeroBytes: > > > > xor eax, eax > > > > mov ecx, edx > > > > -- > > 2.28.0.windows.1 >=20 >=20 >=20 >=20 >=20 >=20 >=20