From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web10.46291.1640743854551463864 for ; Tue, 28 Dec 2021 18:10:55 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=ijFeLBUT; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: yun.lou@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1640743854; x=1672279854; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=RXL/+NrzqXNuyfNi0gRjvsjPea33yibvSCOk285Pv4w=; b=ijFeLBUTaZ9BAmJ3aKFX7f5naBKm2GwBhmKmxNF5oA2ZA2M3j5/L5GHe recTotyeXNARpDgBYK++RvfJfHU6pAytDiNPA5BlEg+Iq6/DyjvHtgolI kR3PpqsQnCeDttsqdNcR9LuuP7WRbrgyLE1XP+ek5itTQM0tT8xF/+yqM e7B8YhxtfrrEA+01+8NzwZSAuLMpwJCHg0+ivtgNwxXel8MItWjd2oc+H Ej9joIDw4acd607rgA/TT1zxKzhEfxstjKJQrbbv2jTNnMZgyPJvEjvkS kQ27cVkcqdal8o+4OMMlBS3bvyjddgyta8hoRBEx7B7EBcyWJ7bwP7wLx w==; X-IronPort-AV: E=McAfee;i="6200,9189,10211"; a="241251900" X-IronPort-AV: E=Sophos;i="5.88,244,1635231600"; d="scan'208";a="241251900" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Dec 2021 18:10:34 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,244,1635231600"; d="scan'208";a="761247321" Received: from shwdeopenlab102.ccr.corp.intel.com ([10.239.56.73]) by fmsmga005.fm.intel.com with ESMTP; 28 Dec 2021 18:10:32 -0800 From: "Jason Lou" To: devel@edk2.groups.io Cc: Jason Lou , Michael D Kinney , Liming Gao , Zhiguang Liu Subject: [PATCH v1 2/4] MdePkg: Replace Opcode with the corresponding instructions. Date: Wed, 29 Dec 2021 10:10:24 +0800 Message-Id: <20211229021026.3107-2-yun.lou@intel.com> X-Mailer: git-send-email 2.31.1.windows.1 In-Reply-To: <20211229021026.3107-1-yun.lou@intel.com> References: <20211229021026.3107-1-yun.lou@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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/Libra= ry/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -44,16 +44,12 @@ ASM_PFX(InternalX86EnablePaging64): mov cr0, eax ; enable paging=0D retf ; topmost 2 dwords hold the addres= s=0D .0:=0D - DB 0x67, 0x48 ; 32-bit address size, 64-bit op= erand size=0D - mov ebx, [esp] ; mov rbx, [esp]=0D - DB 0x67, 0x48=0D - mov ecx, [esp + 8] ; mov rcx, [esp + 8]=0D - DB 0x67, 0x48=0D - mov edx, [esp + 0x10] ; mov rdx, [esp + 10h]=0D - DB 0x67, 0x48=0D - mov esp, [esp + 0x18] ; mov rsp, [esp + 18h]=0D - DB 0x48=0D - add esp, -0x20 ; add rsp, -20h=0D - call ebx ; call rbx=0D +BITS 64=0D + mov rbx, [esp]=0D + mov rcx, [esp + 8]=0D + mov rdx, [esp + 0x10]=0D + mov rsp, [esp + 0x18]=0D + add rsp, -0x20=0D + call rbx=0D hlt ; no one should get here=0D =0D diff --git a/MdePkg/Library/BaseLib/Ia32/LongJump.nasm b/MdePkg/Library/Bas= eLib/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -39,12 +39,12 @@ ASM_PFX(InternalLongJump): =0D mov edx, [esp + 4] ; edx =3D JumpBuffer=0D mov edx, [edx + 24] ; edx =3D target SSP=0D - READSSP_EAX=0D + rdsspd eax=0D sub edx, eax ; edx =3D delta=0D mov eax, edx ; eax =3D delta=0D =0D shr eax, 2 ; eax =3D delta/sizeof(UINT32)=0D - INCSSP_EAX=0D + incsspd eax=0D =0D CetDone:=0D =0D diff --git a/MdePkg/Library/BaseLib/Ia32/Monitor.nasm b/MdePkg/Library/Base= Lib/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -31,6 +31,6 @@ ASM_PFX(AsmMonitor): mov eax, [esp + 4]=0D mov ecx, [esp + 8]=0D mov edx, [esp + 12]=0D - DB 0xf, 1, 0xc8 ; monitor=0D + monitor=0D ret=0D =0D diff --git a/MdePkg/Library/BaseLib/Ia32/Mwait.nasm b/MdePkg/Library/BaseLi= b/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -29,6 +29,6 @@ global ASM_PFX(AsmMwait) ASM_PFX(AsmMwait):=0D mov eax, [esp + 4]=0D mov ecx, [esp + 8]=0D - DB 0xf, 1, 0xc9 ; mwait=0D + mwait=0D ret=0D =0D diff --git a/MdePkg/Library/BaseLib/Ia32/RdRand.nasm b/MdePkg/Library/BaseL= ib/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2015 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -25,9 +25,8 @@ SECTION .text ;-------------------------------------------------------------------------= -----=0D global ASM_PFX(InternalX86RdRand16)=0D ASM_PFX(InternalX86RdRand16):=0D - ; rdrand ax ; generate a 16 bit RN into ax=0D + rdrand eax ; generate a 16 bit RN into ax=0D ; CF=3D1 if RN generated ok, otherwise = CF=3D0=0D - db 0xf, 0xc7, 0xf0 ; rdrand r16: "0f c7 /6 ModRM:r/m(w)"= =0D jc rn16_ok ; jmp if CF=3D1=0D xor eax, eax ; reg=3D0 if CF=3D0=0D ret ; return with failure status=0D @@ -45,9 +44,8 @@ rn16_ok: ;-------------------------------------------------------------------------= -----=0D global ASM_PFX(InternalX86RdRand32)=0D ASM_PFX(InternalX86RdRand32):=0D - ; rdrand eax ; generate a 32 bit RN into eax=0D + rdrand eax ; generate a 32 bit RN into eax=0D ; CF=3D1 if RN generated ok, otherwise = CF=3D0=0D - db 0xf, 0xc7, 0xf0 ; rdrand r32: "0f c7 /6 ModRM:r/m(w)"= =0D jc rn32_ok ; jmp if CF=3D1=0D xor eax, eax ; reg=3D0 if CF=3D0=0D ret ; return with failure status=0D @@ -65,14 +63,13 @@ rn32_ok: ;-------------------------------------------------------------------------= -----=0D global ASM_PFX(InternalX86RdRand64)=0D ASM_PFX(InternalX86RdRand64):=0D - ; rdrand eax ; generate a 32 bit RN into eax=0D + rdrand eax ; generate a 32 bit RN into eax=0D ; CF=3D1 if RN generated ok, otherwise = CF=3D0=0D - db 0xf, 0xc7, 0xf0 ; rdrand r32: "0f c7 /6 ModRM:r/m(w)"= =0D jnc rn64_ret ; jmp if CF=3D0=0D mov edx, dword [esp + 4]=0D mov [edx], eax=0D =0D - db 0xf, 0xc7, 0xf0 ; generate another 32 bit RN=0D + rdrand eax ; generate another 32 bit RN=0D jnc rn64_ret ; jmp if CF=3D0=0D mov [edx + 4], eax=0D =0D diff --git a/MdePkg/Library/BaseLib/Ia32/ReadDr4.nasm b/MdePkg/Library/Base= Lib/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -31,8 +31,8 @@ ASM_PFX(AsmReadDr4): ; this register will cause a #UD exception.=0D ;=0D ; MS assembler doesn't support this instruction since no one would use= it=0D - ; under normal circustances. Here opcode is used.=0D + ; under normal circustances.=0D ;=0D - DB 0xf, 0x21, 0xe0=0D + mov eax, dr4=0D ret=0D =0D diff --git a/MdePkg/Library/BaseLib/Ia32/ReadDr5.nasm b/MdePkg/Library/Base= Lib/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -31,8 +31,8 @@ ASM_PFX(AsmReadDr5): ; this register will cause a #UD exception.=0D ;=0D ; MS assembler doesn't support this instruction since no one would use= it=0D - ; under normal circustances. Here opcode is used.=0D + ; under normal circustances.=0D ;=0D - DB 0xf, 0x21, 0xe8=0D + mov eax, dr5=0D ret=0D =0D diff --git a/MdePkg/Library/BaseLib/Ia32/SetJump.nasm b/MdePkg/Library/Base= Lib/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -46,8 +46,8 @@ ASM_PFX(SetJump): jnc CetDone=0D =0D mov eax, 1=0D - INCSSP_EAX ; to read original SSP=0D - READSSP_EAX=0D + incsspd eax ; to read original SSP=0D + rdsspd eax=0D mov [edx + 0x24], eax ; save SSP=0D =0D CetDone:=0D diff --git a/MdePkg/Library/BaseLib/Ia32/WriteDr4.nasm b/MdePkg/Library/Bas= eLib/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -32,8 +32,8 @@ ASM_PFX(AsmWriteDr4): ; this register will cause a #UD exception.=0D ;=0D ; MS assembler doesn't support this instruction since no one would use= it=0D - ; under normal circustances. Here opcode is used.=0D + ; under normal circustances.=0D ;=0D - DB 0xf, 0x23, 0xe0=0D + mov dr4, eax=0D ret=0D =0D diff --git a/MdePkg/Library/BaseLib/Ia32/WriteDr5.nasm b/MdePkg/Library/Bas= eLib/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -32,8 +32,8 @@ ASM_PFX(AsmWriteDr5): ; this register will cause a #UD exception.=0D ;=0D ; MS assembler doesn't support this instruction since no one would use= it=0D - ; under normal circustances. Here opcode is used.=0D + ; under normal circustances.=0D ;=0D - DB 0xf, 0x23, 0xe8=0D + mov dr5, eax=0D ret=0D =0D diff --git a/MdePkg/Library/BaseLib/X64/DisablePaging64.nasm b/MdePkg/Libra= ry/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -51,8 +51,7 @@ ASM_PFX(InternalX86DisablePaging64): sub eax, 4 ; eax <- One slot below transition= code on the stack=0D push rcx ; push Cs to stack=0D push r10 ; push address of tansition code o= n stack=0D - DB 0x48 ; prefix to composite "retq" with= next "retf"=0D - retf ; Use far return to load CS regist= er from stack=0D + retfq=0D =0D ; Start of transition code=0D .0:=0D diff --git a/MdePkg/Library/BaseLib/X64/LongJump.nasm b/MdePkg/Library/Base= Lib/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -41,12 +41,12 @@ ASM_PFX(InternalLongJump): push rdx ; save rdx=0D =0D mov rdx, [rcx + 0xF8] ; rdx =3D target SSP=0D - READSSP_RAX=0D + rdsspq rax=0D sub rdx, rax ; rdx =3D delta=0D mov rax, rdx ; rax =3D delta=0D =0D shr rax, 3 ; rax =3D delta/sizeof(UINT64)=0D - INCSSP_RAX=0D + incsspq rax=0D =0D pop rdx ; restore rdx=0D CetDone:=0D diff --git a/MdePkg/Library/BaseLib/X64/Monitor.nasm b/MdePkg/Library/BaseL= ib/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -32,6 +32,6 @@ ASM_PFX(AsmMonitor): mov eax, ecx=0D mov ecx, edx=0D mov edx, r8d=0D - DB 0xf, 1, 0xc8 ; monitor=0D + monitor=0D ret=0D =0D 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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -30,6 +30,6 @@ global ASM_PFX(AsmMwait) ASM_PFX(AsmMwait):=0D mov eax, ecx=0D mov ecx, edx=0D - DB 0xf, 1, 0xc9 ; mwait=0D + mwait=0D ret=0D =0D diff --git a/MdePkg/Library/BaseLib/X64/RdRand.nasm b/MdePkg/Library/BaseLi= b/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2015 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -26,9 +26,8 @@ ;-------------------------------------------------------------------------= -----=0D global ASM_PFX(InternalX86RdRand16)=0D ASM_PFX(InternalX86RdRand16):=0D - ; rdrand ax ; generate a 16 bit RN into eax,=0D + rdrand eax ; generate a 16 bit RN into eax,=0D ; CF=3D1 if RN generated ok, otherwise = CF=3D0=0D - db 0xf, 0xc7, 0xf0 ; rdrand r16: "0f c7 /6 ModRM:r/m(w)"= =0D jc rn16_ok ; jmp if CF=3D1=0D xor rax, rax ; reg=3D0 if CF=3D0=0D ret ; return with failure status=0D @@ -45,9 +44,8 @@ rn16_ok: ;-------------------------------------------------------------------------= -----=0D global ASM_PFX(InternalX86RdRand32)=0D ASM_PFX(InternalX86RdRand32):=0D - ; rdrand eax ; generate a 32 bit RN into eax,=0D + rdrand eax ; generate a 32 bit RN into eax,=0D ; CF=3D1 if RN generated ok, otherwise = CF=3D0=0D - db 0xf, 0xc7, 0xf0 ; rdrand r32: "0f c7 /6 ModRM:r/m(w)"= =0D jc rn32_ok ; jmp if CF=3D1=0D xor rax, rax ; reg=3D0 if CF=3D0=0D ret ; return with failure status=0D @@ -64,9 +62,8 @@ rn32_ok: ;-------------------------------------------------------------------------= -----=0D global ASM_PFX(InternalX86RdRand64)=0D ASM_PFX(InternalX86RdRand64):=0D - ; rdrand rax ; generate a 64 bit RN into rax,=0D + rdrand rax ; generate a 64 bit RN into rax,=0D ; CF=3D1 if RN generated ok, otherwise = CF=3D0=0D - db 0x48, 0xf, 0xc7, 0xf0 ; rdrand r64: "REX.W + 0f c7 /6 ModRM:r= /m(w)"=0D jc rn64_ok ; jmp if CF=3D1=0D xor rax, rax ; reg=3D0 if CF=3D0=0D ret ; return with failure status=0D diff --git a/MdePkg/Library/BaseLib/X64/ReadDr4.nasm b/MdePkg/Library/BaseL= ib/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -31,6 +31,6 @@ ASM_PFX(AsmReadDr4): ; There's no obvious reason to access this register, since it's aliase= d to=0D ; DR7 when DE=3D0 or an exception generated when DE=3D1=0D ;=0D - DB 0xf, 0x21, 0xe0=0D + mov rax, dr4=0D ret=0D =0D diff --git a/MdePkg/Library/BaseLib/X64/ReadDr5.nasm b/MdePkg/Library/BaseL= ib/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -31,6 +31,6 @@ ASM_PFX(AsmReadDr5): ; There's no obvious reason to access this register, since it's aliase= d to=0D ; DR7 when DE=3D0 or an exception generated when DE=3D1=0D ;=0D - DB 0xf, 0x21, 0xe8=0D + mov rax, dr5=0D ret=0D =0D diff --git a/MdePkg/Library/BaseLib/X64/ReadMm0.nasm b/MdePkg/Library/BaseL= ib/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -27,9 +27,6 @@ ;-------------------------------------------------------------------------= -----=0D global ASM_PFX(AsmReadMm0)=0D ASM_PFX(AsmReadMm0):=0D - ;=0D - ; 64-bit MASM doesn't support MMX instructions, so use opcode here=0D - ;=0D - DB 0x48, 0xf, 0x7e, 0xc0=0D + movq rax, mm0=0D ret=0D =0D diff --git a/MdePkg/Library/BaseLib/X64/ReadMm1.nasm b/MdePkg/Library/BaseL= ib/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -27,9 +27,6 @@ ;-------------------------------------------------------------------------= -----=0D global ASM_PFX(AsmReadMm1)=0D ASM_PFX(AsmReadMm1):=0D - ;=0D - ; 64-bit MASM doesn't support MMX instructions, so use opcode here=0D - ;=0D - DB 0x48, 0xf, 0x7e, 0xc8=0D + movq rax, mm1=0D ret=0D =0D diff --git a/MdePkg/Library/BaseLib/X64/ReadMm2.nasm b/MdePkg/Library/BaseL= ib/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -27,9 +27,6 @@ ;-------------------------------------------------------------------------= -----=0D global ASM_PFX(AsmReadMm2)=0D ASM_PFX(AsmReadMm2):=0D - ;=0D - ; 64-bit MASM doesn't support MMX instructions, so use opcode here=0D - ;=0D - DB 0x48, 0xf, 0x7e, 0xd0=0D + movq rax, mm2=0D ret=0D =0D diff --git a/MdePkg/Library/BaseLib/X64/ReadMm3.nasm b/MdePkg/Library/BaseL= ib/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -27,9 +27,6 @@ ;-------------------------------------------------------------------------= -----=0D global ASM_PFX(AsmReadMm3)=0D ASM_PFX(AsmReadMm3):=0D - ;=0D - ; 64-bit MASM doesn't support MMX instructions, so use opcode here=0D - ;=0D - DB 0x48, 0xf, 0x7e, 0xd8=0D + movq rax, mm3=0D ret=0D =0D diff --git a/MdePkg/Library/BaseLib/X64/ReadMm4.nasm b/MdePkg/Library/BaseL= ib/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -27,9 +27,6 @@ ;-------------------------------------------------------------------------= -----=0D global ASM_PFX(AsmReadMm4)=0D ASM_PFX(AsmReadMm4):=0D - ;=0D - ; 64-bit MASM doesn't support MMX instructions, so use opcode here=0D - ;=0D - DB 0x48, 0xf, 0x7e, 0xe0=0D + movq rax, mm4=0D ret=0D =0D diff --git a/MdePkg/Library/BaseLib/X64/ReadMm5.nasm b/MdePkg/Library/BaseL= ib/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -27,9 +27,6 @@ ;-------------------------------------------------------------------------= -----=0D global ASM_PFX(AsmReadMm5)=0D ASM_PFX(AsmReadMm5):=0D - ;=0D - ; 64-bit MASM doesn't support MMX instructions, so use opcode here=0D - ;=0D - DB 0x48, 0xf, 0x7e, 0xe8=0D + movq rax, mm5=0D ret=0D =0D diff --git a/MdePkg/Library/BaseLib/X64/ReadMm6.nasm b/MdePkg/Library/BaseL= ib/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -27,9 +27,6 @@ ;-------------------------------------------------------------------------= -----=0D global ASM_PFX(AsmReadMm6)=0D ASM_PFX(AsmReadMm6):=0D - ;=0D - ; 64-bit MASM doesn't support MMX instructions, so use opcode here=0D - ;=0D - DB 0x48, 0xf, 0x7e, 0xf0=0D + movq rax, mm6=0D ret=0D =0D diff --git a/MdePkg/Library/BaseLib/X64/ReadMm7.nasm b/MdePkg/Library/BaseL= ib/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -27,9 +27,6 @@ ;-------------------------------------------------------------------------= -----=0D global ASM_PFX(AsmReadMm7)=0D ASM_PFX(AsmReadMm7):=0D - ;=0D - ; 64-bit MASM doesn't support MMX instructions, so use opcode here=0D - ;=0D - DB 0x48, 0xf, 0x7e, 0xf8=0D + movq rax, mm7=0D ret=0D =0D diff --git a/MdePkg/Library/BaseLib/X64/SetJump.nasm b/MdePkg/Library/BaseL= ib/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -48,8 +48,8 @@ ASM_PFX(SetJump): jnc CetDone=0D =0D mov rax, 1=0D - INCSSP_RAX ; to read original SSP=0D - READSSP_RAX=0D + incsspq rax ; to read original SSP=0D + rdsspq rax=0D mov [rcx + 0xF8], rax ; save SSP=0D =0D CetDone:=0D diff --git a/MdePkg/Library/BaseLib/X64/WriteDr4.nasm b/MdePkg/Library/Base= Lib/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -31,7 +31,7 @@ ASM_PFX(AsmWriteDr4): ; There's no obvious reason to access this register, since it's aliase= d to=0D ; DR6 when DE=3D0 or an exception generated when DE=3D1=0D ;=0D - DB 0xf, 0x23, 0xe1=0D + mov dr4, rcx=0D mov rax, rcx=0D ret=0D =0D diff --git a/MdePkg/Library/BaseLib/X64/WriteDr5.nasm b/MdePkg/Library/Base= Lib/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -31,7 +31,7 @@ ASM_PFX(AsmWriteDr5): ; There's no obvious reason to access this register, since it's aliase= d to=0D ; DR7 when DE=3D0 or an exception generated when DE=3D1=0D ;=0D - DB 0xf, 0x23, 0xe9=0D + mov dr5, rcx=0D mov rax, rcx=0D ret=0D =0D diff --git a/MdePkg/Library/BaseLib/X64/WriteMm0.nasm b/MdePkg/Library/Base= Lib/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -27,9 +27,6 @@ ;-------------------------------------------------------------------------= -----=0D global ASM_PFX(AsmWriteMm0)=0D ASM_PFX(AsmWriteMm0):=0D - ;=0D - ; 64-bit MASM doesn't support MMX instructions, so use opcode here=0D - ;=0D - DB 0x48, 0xf, 0x6e, 0xc1=0D + movq mm0, rcx=0D ret=0D =0D diff --git a/MdePkg/Library/BaseLib/X64/WriteMm1.nasm b/MdePkg/Library/Base= Lib/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -27,9 +27,6 @@ ;-------------------------------------------------------------------------= -----=0D global ASM_PFX(AsmWriteMm1)=0D ASM_PFX(AsmWriteMm1):=0D - ;=0D - ; 64-bit MASM doesn't support MMX instructions, so use opcode here=0D - ;=0D - DB 0x48, 0xf, 0x6e, 0xc9=0D + movq mm1, rcx=0D ret=0D =0D diff --git a/MdePkg/Library/BaseLib/X64/WriteMm2.nasm b/MdePkg/Library/Base= Lib/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -27,9 +27,6 @@ ;-------------------------------------------------------------------------= -----=0D global ASM_PFX(AsmWriteMm2)=0D ASM_PFX(AsmWriteMm2):=0D - ;=0D - ; 64-bit MASM doesn't support MMX instructions, so use opcode here=0D - ;=0D - DB 0x48, 0xf, 0x6e, 0xd1=0D + movq mm2, rcx=0D ret=0D =0D diff --git a/MdePkg/Library/BaseLib/X64/WriteMm3.nasm b/MdePkg/Library/Base= Lib/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -27,9 +27,6 @@ ;-------------------------------------------------------------------------= -----=0D global ASM_PFX(AsmWriteMm3)=0D ASM_PFX(AsmWriteMm3):=0D - ;=0D - ; 64-bit MASM doesn't support MMX instructions, so use opcode here=0D - ;=0D - DB 0x48, 0xf, 0x6e, 0xd9=0D + movq mm3, rcx=0D ret=0D =0D diff --git a/MdePkg/Library/BaseLib/X64/WriteMm4.nasm b/MdePkg/Library/Base= Lib/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -27,9 +27,6 @@ ;-------------------------------------------------------------------------= -----=0D global ASM_PFX(AsmWriteMm4)=0D ASM_PFX(AsmWriteMm4):=0D - ;=0D - ; 64-bit MASM doesn't support MMX instructions, so use opcode here=0D - ;=0D - DB 0x48, 0xf, 0x6e, 0xe1=0D + movq mm4, rcx=0D ret=0D =0D diff --git a/MdePkg/Library/BaseLib/X64/WriteMm5.nasm b/MdePkg/Library/Base= Lib/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -27,9 +27,6 @@ ;-------------------------------------------------------------------------= -----=0D global ASM_PFX(AsmWriteMm5)=0D ASM_PFX(AsmWriteMm5):=0D - ;=0D - ; 64-bit MASM doesn't support MMX instructions, so use opcode here=0D - ;=0D - DB 0x48, 0xf, 0x6e, 0xe9=0D + movq mm5, rcx=0D ret=0D =0D diff --git a/MdePkg/Library/BaseLib/X64/WriteMm6.nasm b/MdePkg/Library/Base= Lib/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -27,9 +27,6 @@ ;-------------------------------------------------------------------------= -----=0D global ASM_PFX(AsmWriteMm6)=0D ASM_PFX(AsmWriteMm6):=0D - ;=0D - ; 64-bit MASM doesn't support MMX instructions, so use opcode here=0D - ;=0D - DB 0x48, 0xf, 0x6e, 0xf1=0D + movq mm6, rcx=0D ret=0D =0D diff --git a/MdePkg/Library/BaseLib/X64/WriteMm7.nasm b/MdePkg/Library/Base= Lib/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -27,9 +27,6 @@ ;-------------------------------------------------------------------------= -----=0D global ASM_PFX(AsmWriteMm7)=0D ASM_PFX(AsmWriteMm7):=0D - ;=0D - ; 64-bit MASM doesn't support MMX instructions, so use opcode here=0D - ;=0D - DB 0x48, 0xf, 0x6e, 0xf9=0D + movq mm7, rcx=0D ret=0D =0D diff --git a/MdePkg/Library/BaseMemoryLibMmx/X64/CopyMem.nasm b/MdePkg/Libr= ary/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -44,15 +44,15 @@ ASM_PFX(InternalMemCopyMem): and r8, 7=0D shr rcx, 3 ; rcx <- # of Qwords to copy=0D jz @CopyBytes=0D - DB 0x49, 0xf, 0x7e, 0xc2 ; movd r10, mm0 (Save mm0 in r10= )=0D + movq r10, mm0=0D .1:=0D - DB 0xf, 0x6f, 0x6 ; movd mm0, [rsi]=0D - DB 0xf, 0xe7, 0x7 ; movntq [rdi], mm0=0D + movq mm0, [rsi]=0D + movntq [rdi], mm0=0D add rsi, 8=0D add rdi, 8=0D loop .1=0D mfence=0D - DB 0x49, 0xf, 0x6e, 0xc2 ; movd mm0, r10 (Restore mm0)=0D + movq mm0, r10=0D jmp @CopyBytes=0D @CopyBackward:=0D mov rsi, r9 ; rsi <- End of Source=0D diff --git a/MdePkg/Library/BaseMemoryLibMmx/X64/SetMem.nasm b/MdePkg/Libra= ry/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -32,16 +32,16 @@ ASM_PFX(InternalMemSetMem): push rdi=0D mov rax, r8=0D mov ah, al=0D - DB 0x48, 0xf, 0x6e, 0xc0 ; movd mm0, rax=0D + movq mm0, rax=0D mov r8, rcx=0D mov rdi, r8 ; rdi <- Buffer=0D mov rcx, rdx=0D and edx, 7=0D shr rcx, 3=0D jz @SetBytes=0D - DB 0xf, 0x70, 0xC0, 0x0 ; pshufw mm0, mm0, 0h=0D + pshufw mm0, mm0, 0=0D .0:=0D - DB 0xf, 0xe7, 0x7 ; movntq [rdi], mm0=0D + movntq [rdi], mm0=0D add rdi, 8=0D loop .0=0D mfence=0D diff --git a/MdePkg/Library/BaseMemoryLibMmx/X64/SetMem16.nasm b/MdePkg/Lib= rary/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -31,16 +31,16 @@ global ASM_PFX(InternalMemSetMem16) ASM_PFX(InternalMemSetMem16):=0D push rdi=0D mov rax, r8=0D - DB 0x48, 0xf, 0x6e, 0xc0 ; movd mm0, rax=0D + movq mm0, rax=0D mov r8, rcx=0D mov rdi, r8=0D mov rcx, rdx=0D and edx, 3=0D shr rcx, 2=0D jz @SetWords=0D - DB 0xf, 0x70, 0xC0, 0x0 ; pshufw mm0, mm0, 0h=0D + pshufw mm0, mm0, 0=0D .0:=0D - DB 0xf, 0xe7, 0x7 ; movntq [rdi], mm0=0D + movntq [rdi], mm0=0D add rdi, 8=0D loop .0=0D mfence=0D diff --git a/MdePkg/Library/BaseMemoryLibMmx/X64/SetMem32.nasm b/MdePkg/Lib= rary/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -28,20 +28,20 @@ ;-------------------------------------------------------------------------= -----=0D global ASM_PFX(InternalMemSetMem32)=0D ASM_PFX(InternalMemSetMem32):=0D - DB 0x49, 0xf, 0x6e, 0xc0 ; movd mm0, r8 (Value)=0D + movq mm0, r8=0D mov rax, rcx ; rax <- Buffer=0D xchg rcx, rdx ; rcx <- Count rdx <- Buffer=0D shr rcx, 1 ; rcx <- # of qwords to set=0D jz @SetDwords=0D - DB 0xf, 0x70, 0xC0, 0x44 ; pshufw mm0, mm0, 44h=0D + pshufw mm0, mm0, 44h=0D .0:=0D - DB 0xf, 0xe7, 0x2 ; movntq [rdx], mm0=0D + movntq [rdx], mm0=0D lea rdx, [rdx + 8] ; use "lea" to avoid flag changes= =0D loop .0=0D mfence=0D @SetDwords:=0D jnc .1=0D - DB 0xf, 0x7e, 0x2 ; movd [rdx], mm0=0D + movd [rdx], mm0=0D .1:=0D ret=0D =0D diff --git a/MdePkg/Library/BaseMemoryLibMmx/X64/SetMem64.nasm b/MdePkg/Lib= rary/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -28,11 +28,11 @@ ;-------------------------------------------------------------------------= -----=0D global ASM_PFX(InternalMemSetMem64)=0D ASM_PFX(InternalMemSetMem64):=0D - DB 0x49, 0xf, 0x6e, 0xc0 ; movd mm0, r8 (Value)=0D + movq mm0, r8=0D mov rax, rcx ; rax <- Buffer=0D xchg rcx, rdx ; rcx <- Count=0D .0:=0D - DB 0xf, 0xe7, 0x2 ; movntq [rdx], mm0=0D + movntq [rdx], mm0=0D add rdx, 8=0D loop .0=0D mfence=0D diff --git a/MdePkg/Library/BaseMemoryLibMmx/X64/ZeroMem.nasm b/MdePkg/Libr= ary/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 @@ ;-------------------------------------------------------------------------= -----=0D ;=0D -; Copyright (c) 2006, Intel Corporation. All rights reserved.
=0D +; Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
=0D ; SPDX-License-Identifier: BSD-2-Clause-Patent=0D ;=0D ; Module Name:=0D @@ -34,12 +34,12 @@ ASM_PFX(InternalMemZeroMem): and edx, 7=0D shr rcx, 3=0D jz @ZeroBytes=0D - DB 0xf, 0xef, 0xc0 ; pxor mm0, mm0=0D + pxor mm0, mm0=0D .0:=0D - DB 0xf, 0xe7, 7 ; movntq [rdi], mm0=0D + movntq [rdi], mm0=0D add rdi, 8=0D loop .0=0D - DB 0xf, 0xae, 0xf0 ; mfence=0D + mfence=0D @ZeroBytes:=0D xor eax, eax=0D mov ecx, edx=0D --=20 2.28.0.windows.1