Gerd:
  Do you plan to catch this change into edk2 202205 stable tag? 

  For this patch set,  Acked-by: Liming Gao <gaolim...@byosoft.com.cn>

Thanks
Liming
> -----邮件原件-----
> 发件人: Gerd Hoffmann <kra...@redhat.com>
> 发送时间: 2022年4月12日 22:07
> 收件人: devel@edk2.groups.io
> 抄送: Maurice Ma <maurice...@intel.com>; Andrew Fish
> <af...@apple.com>; Pawel Polawski <ppola...@redhat.com>; Benjamin You
> <benjamin....@intel.com>; Yuwei Chen <yuwei.c...@intel.com>; Zhiguang
> Liu <zhiguang....@intel.com>; Rebecca Cran <rebe...@bsdio.com>; Xiaoyu
> Lu <xiaoyu1...@intel.com>; Supreeth Venkatesh
> <supreeth.venkat...@arm.com>; Zhichao Gao <zhichao....@intel.com>;
> Brijesh Singh <brijesh.si...@amd.com>; Julien Grall <jul...@xen.org>; Erdem
> Aktas <erdemak...@google.com>; Maciej Rabeda
> <maciej.rab...@linux.intel.com>; Liming Gao <gaolim...@byosoft.com.cn>;
> Michael D Kinney <michael.d.kin...@intel.com>; kilian_ke...@hotmail.com;
> Siyuan Fu <siyuan...@intel.com>; Oliver Steffen <ostef...@redhat.com>; Ray
> Ni <ray...@intel.com>; Abner Chang <abner.ch...@hpe.com>; James
> Bottomley <j...@linux.ibm.com>; Sean Brogan
> <sean.bro...@microsoft.com>; Alexei Fedorov <alexei.fedo...@arm.com>;
> Tom Lendacky <thomas.lenda...@amd.com>; Guo Dong
> <guo.d...@intel.com>; Jiewen Yao <jiewen....@intel.com>; Sami Mujawar
> <sami.muja...@arm.com>; Sebastien Boeuf <sebastien.bo...@intel.com>;
> Peter Grehan <gre...@freebsd.org>; Min Xu <min.m...@intel.com>;
> Anthony Perard <anthony.per...@citrix.com>; Jordan Justen
> <jordan.l.jus...@intel.com>; Jian J Wang <jian.j.w...@intel.com>; Gerd
> Hoffmann <kra...@redhat.com>; Bob Feng <bob.c.f...@intel.com>; Bret
> Barkelew <bret.barke...@microsoft.com>; Nickle Wang
> <nickle.w...@hpe.com>; Wei6 Xu <wei6...@intel.com>; Daniel Schaefer
> <daniel.schae...@hpe.com>; Jiaxin Wu <jiaxin...@intel.com>; Leif Lindholm
> <quic_llind...@quicinc.com>; Guomin Jiang <guomin.ji...@intel.com>; Sami
> Mujawar <sami.muja...@arm.com>; Ard Biesheuvel
> <ardb+tianoc...@kernel.org>
> 主题: [PATCH v2 00/10] 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.
> 
> v2 changes:
>  - rebase to latest master.
>  - add review tags
>  - add patch moving size_t to header file (patch #3).
>  - add patches copying over more intrinsics from
>    edk2-libc repo (patches #5 -> #10).
> 
> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3649
> 
> take care,
>   Gerd
> 
> Gerd Hoffmann (10):
>   MdePkg: promote CompilerIntrinsicsLib from ArmPkg to MdePkg
>   MdePkg/CompilerIntrinsicsLib: fix msft sources for x64
>   MdePkg/CompilerIntrinsicsLib: move size_t typedef to header file
>   MdePkg/CompilerIntrinsicsLib: move ia32 intrinsics and strcmp
>   MdePkg/CompilerIntrinsicsLib: copy over intrinsics from edk2-libc repo
>   MdePkg/CompilerIntrinsicsLib: add SPDX License tags
>   MdePkg/CompilerIntrinsicsLib: drop include from Gcc.c
>   MdePkg/CompilerIntrinsicsLib: drop debug logging from Gcc.c
>   MdePkg/CompilerIntrinsicsLib: remove duplicate functions from Gcc.c
>   MdePkg/CompilerIntrinsicsLib: add new sources to
>     CompilerIntrinsicsLib.inf
> 
>  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/IntelTdx/IntelTdxX64.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                 |  35 ++-
>  {ArmPkg => MdePkg}/Include/AsmMacroIoLib.h    |   0
>  .../Library/CompilerIntrinsicsLib/types_ms.h  |  14 ++
>  CryptoPkg/Library/IntrinsicLib/CopyMem.c      |  47 ----
>  .../Library/IntrinsicLib/MemoryIntrinsics.c   |  74 ------
>  .../Library/CompilerIntrinsicsLib/Ia32/Gcc.c  | 215 ++++++++++++++++++
>  .../CompilerIntrinsicsLib}/Ia32/MathFtol.c    |   0
>  .../Ia32/MathLShiftS64.c                      |   0
>  .../Ia32/MathRShiftU64.c                      |   0
>  .../CompilerIntrinsicsLib/Ia32/lldiv.c        | 100 ++++++++
>  .../CompilerIntrinsicsLib/Ia32/lldvrm.c       | 104 +++++++++
>  .../CompilerIntrinsicsLib/Ia32/llmul.c        |  84 +++++++
>  .../CompilerIntrinsicsLib/Ia32/llrem.c        |  97 ++++++++
>  .../CompilerIntrinsicsLib/Ia32/llshl.c        |  10 +-
>  .../CompilerIntrinsicsLib/Ia32/llshr.c        |  63 +++++
>  .../CompilerIntrinsicsLib/Ia32/ulldiv.c       |  91 ++++++++
>  .../CompilerIntrinsicsLib/Ia32/ulldvrm.c      | 104 +++++++++
>  .../CompilerIntrinsicsLib/Ia32/ullrem.c       |  97 ++++++++
>  .../CompilerIntrinsicsLib/Ia32/ullshr.c       |  10 +-
>  .../Library/CompilerIntrinsicsLib/memcmp_ms.c |   2 +-
>  .../Library/CompilerIntrinsicsLib/memcpy.c    |   0
>  .../Library/CompilerIntrinsicsLib/memcpy_ms.c |   6 +-
>  .../CompilerIntrinsicsLib/memmove_ms.c        |   6 +-
>  .../Library/CompilerIntrinsicsLib/memset.c    |   0
>  .../Library/CompilerIntrinsicsLib/memset_ms.c |   6 +-
>  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
>  .../CompilerIntrinsicsLib/Ia32/ashrdi3.S      |  68 ++++++
>  .../CompilerIntrinsicsLib/Ia32/mulll.S        |  79 +++++++
>  .../CompilerIntrinsicsLib/Ia32/shldi3.S       |  64 ++++++
>  .../CompilerIntrinsicsLib/Ia32/udivdi3.S      |  85 +++++++
>  .../CompilerIntrinsicsLib/Ia32/umoddi3.S      |  91 ++++++++
>  MdePkg/MdePkg.ci.yaml                         |   1 +
>  111 files changed, 1490 insertions(+), 269 deletions(-)
>  delete mode 100644 CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf
>  rename {ArmPkg =>
> MdePkg}/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf (66%)
>  rename {ArmPkg => MdePkg}/Include/AsmMacroIoLib.h (100%)
>  create mode 100644 MdePkg/Library/CompilerIntrinsicsLib/types_ms.h
>  delete mode 100644 CryptoPkg/Library/IntrinsicLib/CopyMem.c
>  delete mode 100644 CryptoPkg/Library/IntrinsicLib/MemoryIntrinsics.c
>  create mode 100644 MdePkg/Library/CompilerIntrinsicsLib/Ia32/Gcc.c
>  rename {CryptoPkg/Library/IntrinsicLib =>
> MdePkg/Library/CompilerIntrinsicsLib}/Ia32/MathFtol.c (100%)
>  copy {CryptoPkg/Library/IntrinsicLib =>
> MdePkg/Library/CompilerIntrinsicsLib}/Ia32/MathLShiftS64.c (100%)
>  copy {CryptoPkg/Library/IntrinsicLib =>
> MdePkg/Library/CompilerIntrinsicsLib}/Ia32/MathRShiftU64.c (100%)
>  create mode 100644 MdePkg/Library/CompilerIntrinsicsLib/Ia32/lldiv.c
>  create mode 100644 MdePkg/Library/CompilerIntrinsicsLib/Ia32/lldvrm.c
>  create mode 100644 MdePkg/Library/CompilerIntrinsicsLib/Ia32/llmul.c
>  create mode 100644 MdePkg/Library/CompilerIntrinsicsLib/Ia32/llrem.c
>  rename CryptoPkg/Library/IntrinsicLib/Ia32/MathLShiftS64.c =>
> MdePkg/Library/CompilerIntrinsicsLib/Ia32/llshl.c (61%)
>  create mode 100644 MdePkg/Library/CompilerIntrinsicsLib/Ia32/llshr.c
>  create mode 100644 MdePkg/Library/CompilerIntrinsicsLib/Ia32/ulldiv.c
>  create mode 100644 MdePkg/Library/CompilerIntrinsicsLib/Ia32/ulldvrm.c
>  create mode 100644 MdePkg/Library/CompilerIntrinsicsLib/Ia32/ullrem.c
>  rename CryptoPkg/Library/IntrinsicLib/Ia32/MathRShiftU64.c =>
> MdePkg/Library/CompilerIntrinsicsLib/Ia32/ullshr.c (62%)
>  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
> (82%)
>  rename {ArmPkg =>
> MdePkg}/Library/CompilerIntrinsicsLib/memmove_ms.c (83%)
>  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/memset.c
> (100%)
>  rename {ArmPkg => MdePkg}/Library/CompilerIntrinsicsLib/memset_ms.c
> (80%)
>  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%)
>  create mode 100644 MdePkg/Library/CompilerIntrinsicsLib/Ia32/ashrdi3.S
>  create mode 100644 MdePkg/Library/CompilerIntrinsicsLib/Ia32/mulll.S
>  create mode 100644 MdePkg/Library/CompilerIntrinsicsLib/Ia32/shldi3.S
>  create mode 100644 MdePkg/Library/CompilerIntrinsicsLib/Ia32/udivdi3.S
>  create mode 100644 MdePkg/Library/CompilerIntrinsicsLib/Ia32/umoddi3.S
> 
> --
> 2.35.1





-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#89386): https://edk2.groups.io/g/devel/message/89386
Mute This Topic: https://groups.io/mt/90771144/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to