From: "Ard Biesheuvel" <ardb@kernel.org>
To: Gerd Hoffmann <kraxel@redhat.com>
Cc: edk2-devel-groups-io <devel@edk2.groups.io>,
Xiaoyu Lu <xiaoyu1.lu@intel.com>,
Bob Feng <bob.c.feng@intel.com>,
Rebecca Cran <rebecca@bsdio.com>,
James Bottomley <jejb@linux.ibm.com>,
Sami Mujawar <Sami.Mujawar@arm.com>,
Jordan Justen <jordan.l.justen@intel.com>,
Erdem Aktas <erdemaktas@google.com>,
Jiewen Yao <jiewen.yao@intel.com>,
Supreeth Venkatesh <supreeth.venkatesh@arm.com>,
Sebastien Boeuf <sebastien.boeuf@intel.com>,
Zhichao Gao <zhichao.gao@intel.com>,
Zhiguang Liu <zhiguang.liu@intel.com>,
Maciej Rabeda <maciej.rabeda@linux.intel.com>,
Maurice Ma <maurice.ma@intel.com>, Andrew Fish <afish@apple.com>,
Ard Biesheuvel <ardb+tianocore@kernel.org>,
Tom Lendacky <thomas.lendacky@amd.com>,
Peter Grehan <grehan@freebsd.org>,
Sean Brogan <sean.brogan@microsoft.com>,
Guomin Jiang <guomin.jiang@intel.com>,
Bret Barkelew <Bret.Barkelew@microsoft.com>,
Yuwei Chen <yuwei.chen@intel.com>,
Benjamin You <benjamin.you@intel.com>,
Daniel Schaefer <daniel.schaefer@hpe.com>,
Liming Gao <gaoliming@byosoft.com.cn>,
Michael D Kinney <michael.d.kinney@intel.com>,
Wei6 Xu <wei6.xu@intel.com>, Jian J Wang <jian.j.wang@intel.com>,
Jiaxin Wu <jiaxin.wu@intel.com>, Siyuan Fu <siyuan.fu@intel.com>,
Guo Dong <guo.dong@intel.com>,
kilian_kegel@hotmail.com, Abner Chang <abner.chang@hpe.com>,
Oliver Steffen <osteffen@redhat.com>,
Leif Lindholm <quic_llindhol@quicinc.com>,
Brijesh Singh <brijesh.singh@amd.com>,
Min Xu <min.m.xu@intel.com>, Ray Ni <ray.ni@intel.com>,
Alexei Fedorov <Alexei.Fedorov@arm.com>,
Julien Grall <julien@xen.org>, Nickle Wang <nickle.wang@hpe.com>,
Pawel Polawski <ppolawsk@redhat.com>,
Anthony Perard <anthony.perard@citrix.com>
Subject: Re: [PATCH 0/3] [RFC] consolidate compiler intrinsics
Date: Wed, 2 Mar 2022 07:12:59 +0100 [thread overview]
Message-ID: <CAMj1kXEzpJu1NbXiY_OQrGNbxYE0N2iWPjAyHE_Y_cSs_F-UcQ@mail.gmail.com> (raw)
In-Reply-To: <20220301071820.3135133-1-kraxel@redhat.com>
On Tue, 1 Mar 2022 at 08:18, Gerd Hoffmann <kraxel@redhat.com> wrote:
>
> 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
>
For the series,
Acked-by: Ard Biesheuvel <ardb@kernel.org>
> 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
>
next prev parent reply other threads:[~2022-03-02 6:13 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-01 7:18 [PATCH 0/3] [RFC] consolidate compiler intrinsics Gerd Hoffmann
2022-03-01 7:18 ` [PATCH 1/3] MdePkg: promote CompilerIntrinsicsLib from ArmPkg to MdePkg Gerd Hoffmann
2022-03-01 7:18 ` [PATCH 2/3] MdePkg/CompilerIntrinsicsLib: fix msft sources for x64 Gerd Hoffmann
2022-03-01 7:18 ` [PATCH 3/3] MdePkg/CompilerIntrinsicsLib: move ia32 intrinsics and strcmp Gerd Hoffmann
2022-03-02 2:06 ` 回复: [edk2-devel] [PATCH 0/3] [RFC] consolidate compiler intrinsics gaoliming
2022-03-02 2:16 ` Yao, Jiewen
2022-03-02 8:39 ` Kilian Kegel
2022-03-02 10:10 ` Gerd Hoffmann
2022-03-02 6:12 ` Ard Biesheuvel [this message]
2022-03-15 12:22 ` Gerd Hoffmann
2022-03-15 15:27 ` Michael D Kinney
2022-03-16 9:45 ` [edk2-devel] " Gerd Hoffmann
2022-03-18 1:26 ` 回复: " gaoliming
2022-03-18 1:54 ` Pedro Falcato
2022-03-15 17:08 ` Pedro Falcato
2022-03-16 10:02 ` Gerd Hoffmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAMj1kXEzpJu1NbXiY_OQrGNbxYE0N2iWPjAyHE_Y_cSs_F-UcQ@mail.gmail.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox