[edk2-devel] [PATCH v2 00/10] consolidate compiler intrinsics

Gerd Hoffmann posted 10 patches 2 years ago
Failed in applying to current master (apply log)
There is a newer version of this series
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
[edk2-devel] [PATCH v2 00/10] consolidate compiler intrinsics
Posted by Gerd Hoffmann 2 years ago
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 (#88773): https://edk2.groups.io/g/devel/message/88773
Mute This Topic: https://groups.io/mt/90418630/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
[edk2-devel] 回复: [PATCH v2 00/10] consolidate compiler intrinsics
Posted by gaoliming 2 years ago
Gerd:
  Do you plan to catch this change into edk2 202205 stable tag? 

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

Thanks
Liming
> -----邮件原件-----
> 发件人: Gerd Hoffmann <kraxel@redhat.com>
> 发送时间: 2022年4月12日 22:07
> 收件人: devel@edk2.groups.io
> 抄送: Maurice Ma <maurice.ma@intel.com>; Andrew Fish
> <afish@apple.com>; Pawel Polawski <ppolawsk@redhat.com>; Benjamin You
> <benjamin.you@intel.com>; Yuwei Chen <yuwei.chen@intel.com>; Zhiguang
> Liu <zhiguang.liu@intel.com>; Rebecca Cran <rebecca@bsdio.com>; Xiaoyu
> Lu <xiaoyu1.lu@intel.com>; Supreeth Venkatesh
> <supreeth.venkatesh@arm.com>; Zhichao Gao <zhichao.gao@intel.com>;
> Brijesh Singh <brijesh.singh@amd.com>; Julien Grall <julien@xen.org>; Erdem
> Aktas <erdemaktas@google.com>; Maciej Rabeda
> <maciej.rabeda@linux.intel.com>; Liming Gao <gaoliming@byosoft.com.cn>;
> Michael D Kinney <michael.d.kinney@intel.com>; kilian_kegel@hotmail.com;
> Siyuan Fu <siyuan.fu@intel.com>; Oliver Steffen <osteffen@redhat.com>; Ray
> Ni <ray.ni@intel.com>; Abner Chang <abner.chang@hpe.com>; James
> Bottomley <jejb@linux.ibm.com>; Sean Brogan
> <sean.brogan@microsoft.com>; Alexei Fedorov <Alexei.Fedorov@arm.com>;
> Tom Lendacky <thomas.lendacky@amd.com>; Guo Dong
> <guo.dong@intel.com>; Jiewen Yao <jiewen.yao@intel.com>; Sami Mujawar
> <Sami.Mujawar@arm.com>; Sebastien Boeuf <sebastien.boeuf@intel.com>;
> Peter Grehan <grehan@freebsd.org>; Min Xu <min.m.xu@intel.com>;
> Anthony Perard <anthony.perard@citrix.com>; Jordan Justen
> <jordan.l.justen@intel.com>; Jian J Wang <jian.j.wang@intel.com>; Gerd
> Hoffmann <kraxel@redhat.com>; Bob Feng <bob.c.feng@intel.com>; Bret
> Barkelew <Bret.Barkelew@microsoft.com>; Nickle Wang
> <nickle.wang@hpe.com>; Wei6 Xu <wei6.xu@intel.com>; Daniel Schaefer
> <daniel.schaefer@hpe.com>; Jiaxin Wu <jiaxin.wu@intel.com>; Leif Lindholm
> <quic_llindhol@quicinc.com>; Guomin Jiang <guomin.jiang@intel.com>; Sami
> Mujawar <sami.mujawar@arm.com>; Ard Biesheuvel
> <ardb+tianocore@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/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] 回复: [PATCH v2 00/10] consolidate compiler intrinsics
Posted by Gerd Hoffmann 2 years ago
On Fri, Apr 29, 2022 at 02:41:25PM +0800, gaoliming wrote:
> Gerd:
>   Do you plan to catch this change into edk2 202205 stable tag? 

That would be great, yes.

Working on v3 of the series right now (solving conflicts),
will the update post soon.

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

Thanks,
  Gerd



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#89391): https://edk2.groups.io/g/devel/message/89391
Mute This Topic: https://groups.io/mt/90771144/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-