[edk2-devel] [PATCH 0/3] [RFC] consolidate compiler intrinsics

Yao, Jiewen jiewen.yao at intel.com
Wed Mar 2 02:16:16 UTC 2022


Acked, for CryptoPkg/OvmfPkg/SecurityPkg/StandaloneMmPkg update.

Thank you
Yao, Jiewen


> -----Original Message-----
> From: devel at edk2.groups.io <devel at edk2.groups.io> On Behalf Of gaoliming
> Sent: Wednesday, March 2, 2022 10:06 AM
> To: devel at edk2.groups.io; kraxel at redhat.com
> Cc: Lu, Xiaoyu1 <xiaoyu1.lu at intel.com>; Feng, Bob C <bob.c.feng at intel.com>;
> 'Rebecca Cran' <rebecca at bsdio.com>; 'James Bottomley'
> <jejb at linux.ibm.com>; 'Sami Mujawar' <Sami.Mujawar at arm.com>; Justen,
> Jordan L <jordan.l.justen at intel.com>; Aktas, Erdem
> <erdemaktas at google.com>; Yao, Jiewen <jiewen.yao at intel.com>; 'Supreeth
> Venkatesh' <supreeth.venkatesh at arm.com>; Boeuf, Sebastien
> <sebastien.boeuf at intel.com>; Gao, Zhichao <zhichao.gao at intel.com>; Liu,
> Zhiguang <zhiguang.liu at intel.com>; 'Maciej Rabeda'
> <maciej.rabeda at linux.intel.com>; Ma, Maurice <maurice.ma at intel.com>;
> 'Andrew Fish' <afish at apple.com>; 'Ard Biesheuvel'
> <ardb+tianocore at kernel.org>; 'Tom Lendacky' <thomas.lendacky at amd.com>;
> 'Peter Grehan' <grehan at freebsd.org>; 'Sean Brogan'
> <sean.brogan at microsoft.com>; Jiang, Guomin <guomin.jiang at intel.com>;
> 'Bret Barkelew' <Bret.Barkelew at microsoft.com>; Chen, Christine
> <yuwei.chen at intel.com>; You, Benjamin <benjamin.you at intel.com>; Schaefer,
> Daniel <daniel.schaefer at hpe.com>; Kinney, Michael D
> <michael.d.kinney at intel.com>; Xu, Wei6 <wei6.xu at intel.com>; Wang, Jian J
> <jian.j.wang at intel.com>; Wu, Jiaxin <jiaxin.wu at intel.com>; Fu, Siyuan
> <siyuan.fu at intel.com>; Dong, Guo <guo.dong at intel.com>;
> kilian_kegel at hotmail.com; Chang, Abner <abner.chang at hpe.com>; 'Oliver
> Steffen' <osteffen at redhat.com>; 'Leif Lindholm' <quic_llindhol at quicinc.com>;
> 'Brijesh Singh' <brijesh.singh at amd.com>; Xu, Min M <min.m.xu at intel.com>; Ni,
> Ray <ray.ni at intel.com>; 'Alexei Fedorov' <Alexei.Fedorov at arm.com>; 'Julien
> Grall' <julien at xen.org>; Wang, Nickle <nickle.wang at hpe.com>; 'Pawel
> Polawski' <ppolawsk at redhat.com>; 'Anthony Perard'
> <anthony.perard at citrix.com>
> Subject: 回复: [edk2-devel] [PATCH 0/3] [RFC] consolidate compiler intrinsics
> 
> Gerd:
>   Thanks for your great work. This is a really good progress. I agree to add
> CompilerIntrinsicsLib in MdePkg.
> 
>   I think we can add this CompilerIntrinsicsLib first to meet with current usage. It
> can be extended in future.
> 
> Thanks
> Liming
> > -----邮件原件-----
> > 发件人: devel at edk2.groups.io <devel at edk2.groups.io> 代表 Gerd
> > Hoffmann
> > 发送时间: 2022年3月1日 15:18
> > 收件人: devel at edk2.groups.io
> > 抄送: Xiaoyu Lu <xiaoyu1.lu at intel.com>; Bob Feng <bob.c.feng at intel.com>;
> > Rebecca Cran <rebecca at bsdio.com>; James Bottomley
> > <jejb at linux.ibm.com>; Sami Mujawar <Sami.Mujawar at arm.com>; Jordan
> > Justen <jordan.l.justen at intel.com>; Erdem Aktas <erdemaktas at google.com>;
> > Jiewen Yao <jiewen.yao at intel.com>; Supreeth Venkatesh
> > <supreeth.venkatesh at arm.com>; Sebastien Boeuf
> > <sebastien.boeuf at intel.com>; Zhichao Gao <zhichao.gao at intel.com>;
> > Zhiguang Liu <zhiguang.liu at intel.com>; Maciej Rabeda
> > <maciej.rabeda at linux.intel.com>; Maurice Ma <maurice.ma at intel.com>;
> > Andrew Fish <afish at apple.com>; Ard Biesheuvel
> > <ardb+tianocore at kernel.org>; Tom Lendacky <thomas.lendacky at amd.com>;
> > Peter Grehan <grehan at freebsd.org>; Sean Brogan
> > <sean.brogan at microsoft.com>; Guomin Jiang <guomin.jiang at intel.com>;
> > Bret Barkelew <Bret.Barkelew at microsoft.com>; Yuwei Chen
> > <yuwei.chen at intel.com>; Benjamin You <benjamin.you at intel.com>; Daniel
> > Schaefer <daniel.schaefer at hpe.com>; Liming Gao
> > <gaoliming at byosoft.com.cn>; Michael D Kinney
> > <michael.d.kinney at intel.com>; Wei6 Xu <wei6.xu at intel.com>; Jian J Wang
> > <jian.j.wang at intel.com>; Jiaxin Wu <jiaxin.wu at intel.com>; Siyuan Fu
> > <siyuan.fu at intel.com>; Gerd Hoffmann <kraxel at redhat.com>; Sami Mujawar
> > <sami.mujawar at arm.com>; Guo Dong <guo.dong at intel.com>;
> > kilian_kegel at hotmail.com; Abner Chang <abner.chang at hpe.com>; Oliver
> > Steffen <osteffen at redhat.com>; Leif Lindholm <quic_llindhol at quicinc.com>;
> > Brijesh Singh <brijesh.singh at amd.com>; Min Xu <min.m.xu at intel.com>; Ray
> > Ni <ray.ni at intel.com>; Alexei Fedorov <Alexei.Fedorov at arm.com>; Julien
> > Grall <julien at xen.org>; Nickle Wang <nickle.wang at hpe.com>; Pawel
> > Polawski <ppolawsk at redhat.com>; Anthony Perard
> > <anthony.perard at citrix.com>
> > 主题: [edk2-devel] [PATCH 0/3] [RFC] consolidate compiler intrinsics
> >
> > This is an attept to start cleaning up the messy compiler intrinsics
> > situation.  Today we don't have a core intrinsics library, resulting
> > in everybody creating their own.  ArmPkg has one, CryptoPkg has one.
> > I'm sure there are many more.
> >
> > This doesn't make sense.  Given we can't avoid compiler intrinsics (as
> > proven by the existence of those libraries) we should better have them
> > as core library so we have to maintain a single version only.
> >
> > Given we already have BaseIoLibIntrinsic in MdePkg we can place the
> > compiler intrinsics there too.  This little patch series does just that:
> > It moves over the existing ArmPkg intrinsics, fixes them to build on
> > non-arm too, and adds additional bits from the CryptoPkg intrinsics.
> >
> > take care,
> >   Gerd
> >
> > Gerd Hoffmann (3):
> >   MdePkg: promote CompilerIntrinsicsLib from ArmPkg to MdePkg
> >   MdePkg/CompilerIntrinsicsLib: fix msft sources for x64
> >   MdePkg/CompilerIntrinsicsLib: move ia32 intrinsics and strcmp
> >
> >  ArmVirtPkg/ArmVirt.dsc.inc                    |   4 +-
> >  .../UnitTestFrameworkPkgTarget.dsc.inc        |   2 +-
> >  ArmPkg/ArmPkg.dsc                             |   3 +-
> >  .../ArmCrashDumpDxe/ArmCrashDumpDxe.dsc       |   2 +-
> >  ArmPlatformPkg/ArmPlatformPkg.dsc             |   2 +-
> >  CryptoPkg/CryptoPkg.dsc                       |   5 +-
> >  DynamicTablesPkg/DynamicTablesPkg.dsc         |   2 +-
> >  EmbeddedPkg/EmbeddedPkg.dsc                   |   2 +-
> >  EmulatorPkg/EmulatorPkg.dsc                   |   2 +-
> >  FatPkg/FatPkg.dsc                             |   2 +-
> >  FmpDevicePkg/FmpDevicePkg.dsc                 |   4 +-
> >  MdeModulePkg/MdeModulePkg.dsc                 |   2 +-
> >  MdePkg/MdePkg.dsc                             |   1 +
> >  NetworkPkg/NetworkPkg.dsc                     |   4 +-
> >  OvmfPkg/AmdSev/AmdSevX64.dsc                  |   2 +-
> >  OvmfPkg/Bhyve/BhyveX64.dsc                    |   2 +-
> >  OvmfPkg/CloudHv/CloudHvX64.dsc                |   2 +-
> >  OvmfPkg/Microvm/MicrovmX64.dsc                |   2 +-
> >  OvmfPkg/OvmfPkgIa32.dsc                       |   2 +-
> >  OvmfPkg/OvmfPkgIa32X64.dsc                    |   2 +-
> >  OvmfPkg/OvmfPkgX64.dsc                        |   2 +-
> >  OvmfPkg/OvmfXen.dsc                           |   2 +-
> >  RedfishPkg/RedfishPkg.dsc                     |   2 +-
> >  SecurityPkg/SecurityPkg.dsc                   |  12 +--
> >  ShellPkg/ShellPkg.dsc                         |   2 +-
> >  SignedCapsulePkg/SignedCapsulePkg.dsc         |  14 ++--
> >  StandaloneMmPkg/StandaloneMmPkg.dsc           |   2 +-
> >  UefiPayloadPkg/UefiPayloadPkg.dsc             |   2 +-
> >  .../Library/IntrinsicLib/IntrinsicLib.inf     |  67 ----------------
> >  .../CompilerIntrinsicsLib.inf                 |  15 +++-
> >  {ArmPkg => MdePkg}/Include/AsmMacroIoLib.h    |   0
> >  CryptoPkg/Library/IntrinsicLib/CopyMem.c      |  47 -----------
> >  .../Library/IntrinsicLib/MemoryIntrinsics.c   |  74 ------------------
> >  .../CompilerIntrinsicsLib}/Ia32/MathFtol.c    |   0
> >  .../Ia32/MathLShiftS64.c                      |   0
> >  .../Ia32/MathRShiftU64.c                      |   0
> >  .../Library/CompilerIntrinsicsLib/memcmp_ms.c |   2 +-
> >  .../Library/CompilerIntrinsicsLib/memcpy.c    |   0
> >  .../Library/CompilerIntrinsicsLib/memcpy_ms.c |   2 +-
> >  .../CompilerIntrinsicsLib/memmove_ms.c        |   2 +-
> >  .../Library/CompilerIntrinsicsLib/memset.c    |   0
> >  .../Library/CompilerIntrinsicsLib/memset_ms.c |   2 +-
> >  MdePkg/Library/CompilerIntrinsicsLib/strcmp.c |  33 ++++++++
> >  ArmPkg/ArmPkg.ci.yaml                         |   1 -
> >  .../DEBUG_XCODE31/CompilerIntrinsicsLib.lib   | Bin 36072 -> 36072
> > bytes
> >  .../DEBUG_XCODE32/CompilerIntrinsicsLib.lib   | Bin 36072 -> 36072
> > bytes
> >  .../Library/IntrinsicLib/BaseIntrinsicLib.uni |  16 ----
> >  .../CompilerIntrinsicsLib/AArch64/Atomics.S   |   0
> >  .../CompilerIntrinsicsLib/Arm/ashldi3.S       |   0
> >  .../CompilerIntrinsicsLib/Arm/ashrdi3.S       |   0
> >  .../CompilerIntrinsicsLib/Arm/clzsi2.S        |   0
> >  .../CompilerIntrinsicsLib/Arm/ctzsi2.S        |   0
> >  .../Library/CompilerIntrinsicsLib/Arm/div.S   |   0
> >  .../Library/CompilerIntrinsicsLib/Arm/div.asm |   0
> >  .../CompilerIntrinsicsLib/Arm/divdi3.S        |   0
> >  .../CompilerIntrinsicsLib/Arm/divsi3.S        |   0
> >  .../Library/CompilerIntrinsicsLib/Arm/lasr.S  |   0
> >  .../CompilerIntrinsicsLib/Arm/lasr.asm        |   0
> >  .../CompilerIntrinsicsLib/Arm/ldivmod.S       |   0
> >  .../CompilerIntrinsicsLib/Arm/ldivmod.asm     |   0
> >  .../Library/CompilerIntrinsicsLib/Arm/llsl.S  |   0
> >  .../CompilerIntrinsicsLib/Arm/llsl.asm        |   0
> >  .../Library/CompilerIntrinsicsLib/Arm/llsr.S  |   0
> >  .../CompilerIntrinsicsLib/Arm/llsr.asm        |   0
> >  .../CompilerIntrinsicsLib/Arm/lshrdi3.S       |   0
> >  .../CompilerIntrinsicsLib/Arm/memmove.S       |   0
> >  .../CompilerIntrinsicsLib/Arm/memmove.asm     |   0
> >  .../CompilerIntrinsicsLib/Arm/moddi3.S        |   0
> >  .../CompilerIntrinsicsLib/Arm/modsi3.S        |   0
> >  .../CompilerIntrinsicsLib/Arm/muldi3.S        |   0
> >  .../Library/CompilerIntrinsicsLib/Arm/mullu.S |   0
> >  .../CompilerIntrinsicsLib/Arm/mullu.asm       |   0
> >  .../CompilerIntrinsicsLib/Arm/sourcery.S      |   0
> >  .../CompilerIntrinsicsLib/Arm/switch.asm      |   0
> >  .../CompilerIntrinsicsLib/Arm/switch16.S      |   0
> >  .../CompilerIntrinsicsLib/Arm/switch32.S      |   0
> >  .../CompilerIntrinsicsLib/Arm/switch8.S       |   0
> >  .../CompilerIntrinsicsLib/Arm/switchu8.S      |   0
> >  .../CompilerIntrinsicsLib/Arm/ucmpdi2.S       |   0
> >  .../CompilerIntrinsicsLib/Arm/udivdi3.S       |   0
> >  .../CompilerIntrinsicsLib/Arm/udivmoddi4.S    |   0
> >  .../CompilerIntrinsicsLib/Arm/udivsi3.S       |   0
> >  .../Library/CompilerIntrinsicsLib/Arm/uldiv.S |   0
> >  .../CompilerIntrinsicsLib/Arm/uldiv.asm       |   0
> >  .../CompilerIntrinsicsLib/Arm/umoddi3.S       |   0
> >  .../CompilerIntrinsicsLib/Arm/umodsi3.S       |   0
> >  .../Library/CompilerIntrinsicsLib/Arm/uread.S |   0
> >  .../CompilerIntrinsicsLib/Arm/uread.asm       |   0
> >  .../CompilerIntrinsicsLib/Arm/uwrite.S        |   0
> >  .../CompilerIntrinsicsLib/Arm/uwrite.asm      |   0
> >  .../Ia32/MathLShiftS64.nasm                   |   0
> >  .../Ia32/MathRShiftU64.nasm                   |   0
> >  MdePkg/MdePkg.ci.yaml                         |   1 +
> >  93 files changed, 95 insertions(+), 254 deletions(-)
> >  delete mode 100644 CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf
> >  rename {ArmPkg =>
> > MdePkg}/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf (84%)
> >  rename {ArmPkg => MdePkg}/Include/AsmMacroIoLib.h (100%)
> >  delete mode 100644 CryptoPkg/Library/IntrinsicLib/CopyMem.c
> >  delete mode 100644 CryptoPkg/Library/IntrinsicLib/MemoryIntrinsics.c
> >  rename {CryptoPkg/Library/IntrinsicLib =>
> > MdePkg/Library/CompilerIntrinsicsLib}/Ia32/MathFtol.c (100%)
> >  rename {CryptoPkg/Library/IntrinsicLib =>
> > MdePkg/Library/CompilerIntrinsicsLib}/Ia32/MathLShiftS64.c (100%)
> >  rename {CryptoPkg/Library/IntrinsicLib =>
> > MdePkg/Library/CompilerIntrinsicsLib}/Ia32/MathRShiftU64.c (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/memcmp_ms.c
> > (89%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/memcpy.c
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/memcpy_ms.c
> > (89%)
> >  rename {ArmPkg =>
> > MdePkg}/Library/CompilerIntrinsicsLib/memmove_ms.c (90%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/memset.c
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/memset_ms.c
> > (89%)
> >  create mode 100644 MdePkg/Library/CompilerIntrinsicsLib/strcmp.c
> >  delete mode 100644 CryptoPkg/Library/IntrinsicLib/BaseIntrinsicLib.uni
> >  rename {ArmPkg =>
> > MdePkg}/Library/CompilerIntrinsicsLib/AArch64/Atomics.S (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/ashldi3.S
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/ashrdi3.S
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/clzsi2.S
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/ctzsi2.S
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/div.S
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/div.asm
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/divdi3.S
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/divsi3.S
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/lasr.S
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/lasr.asm
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/ldivmod.S
> > (100%)
> >  rename {ArmPkg =>
> > MdePkg}/Library/CompilerIntrinsicsLib/Arm/ldivmod.asm (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/llsl.S
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/llsl.asm
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/llsr.S
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/llsr.asm
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/lshrdi3.S
> > (100%)
> >  rename {ArmPkg =>
> > MdePkg}/Library/CompilerIntrinsicsLib/Arm/memmove.S (100%)
> >  rename {ArmPkg =>
> > MdePkg}/Library/CompilerIntrinsicsLib/Arm/memmove.asm (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/moddi3.S
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/modsi3.S
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/muldi3.S
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/mullu.S
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/mullu.asm
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/sourcery.S
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/switch.asm
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/switch16.S
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/switch32.S
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/switch8.S
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/switchu8.S
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/ucmpdi2.S
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/udivdi3.S
> > (100%)
> >  rename {ArmPkg =>
> > MdePkg}/Library/CompilerIntrinsicsLib/Arm/udivmoddi4.S (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/udivsi3.S
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/uldiv.S
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/uldiv.asm
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/umoddi3.S
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/umodsi3.S
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/uread.S
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/uread.asm
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/uwrite.S
> > (100%)
> >  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/Arm/uwrite.asm
> > (100%)
> >  rename {CryptoPkg/Library/IntrinsicLib =>
> > MdePkg/Library/CompilerIntrinsicsLib}/Ia32/MathLShiftS64.nasm (100%)
> >  rename {CryptoPkg/Library/IntrinsicLib =>
> > MdePkg/Library/CompilerIntrinsicsLib}/Ia32/MathRShiftU64.nasm (100%)
> >
> > --
> > 2.35.1
> >
> >
> >
> >
> >
> 
> 
> 
> 
> 
> 
> 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#87187): https://edk2.groups.io/g/devel/message/87187
Mute This Topic: https://groups.io/mt/89493375/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-






More information about the edk2-devel-archive mailing list