[edk2-devel] [PATCH v2 0/4] ArmPkg/CompilerIntrinsicsLib: Update MSFT, GCC intrinsics

Pete Batard posted 4 patches 4 years, 11 months ago
Failed in applying to current master (apply log)
ArmPkg/Library/CompilerIntrinsicsLib/Arm/Llvm_int_lib.h        |  93 -------
ArmPkg/Library/CompilerIntrinsicsLib/Arm/ashldi3.c             |  77 ------
ArmPkg/Library/CompilerIntrinsicsLib/Arm/ashrdi3.c             |  78 ------
ArmPkg/Library/CompilerIntrinsicsLib/Arm/clzsi2.c              |  90 -------
ArmPkg/Library/CompilerIntrinsicsLib/Arm/ctzsi2.c              |  92 -------
ArmPkg/Library/CompilerIntrinsicsLib/Arm/divdi3.c              |  71 -----
ArmPkg/Library/CompilerIntrinsicsLib/Arm/divsi3.c              |  72 -----
ArmPkg/Library/CompilerIntrinsicsLib/Arm/lasr.S                |  30 +++
ArmPkg/Library/CompilerIntrinsicsLib/Arm/lshrdi3.c             |  77 ------
ArmPkg/Library/CompilerIntrinsicsLib/Arm/moddi3.c              |  71 -----
ArmPkg/Library/CompilerIntrinsicsLib/Arm/modsi3.c              |  64 -----
ArmPkg/Library/CompilerIntrinsicsLib/Arm/muldi3.c              |  92 -------
ArmPkg/Library/CompilerIntrinsicsLib/Arm/ucmpdi2.c             |  76 ------
ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivdi3.c             |  65 -----
ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivmoddi4.c          | 281 --------------------
ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivsi3.c             | 105 --------
ArmPkg/Library/CompilerIntrinsicsLib/Arm/uldivmod.c            |  37 ---
ArmPkg/Library/CompilerIntrinsicsLib/Arm/umoddi3.c             |  66 -----
ArmPkg/Library/CompilerIntrinsicsLib/Arm/umodsi3.c             |  62 -----
ArmPkg/Library/CompilerIntrinsicsLib/Arm/uread.S               |  54 ++++
ArmPkg/Library/CompilerIntrinsicsLib/Arm/uwrite.S              |  53 ++++
ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf | 108 +++-----
ArmPkg/Library/CompilerIntrinsicsLib/memcmp_ms.c               |  31 +++
ArmPkg/Library/CompilerIntrinsicsLib/memmove_ms.c              |  34 +++
24 files changed, 245 insertions(+), 1634 deletions(-)
delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/Llvm_int_lib.h
delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/ashldi3.c
delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/ashrdi3.c
delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/clzsi2.c
delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/ctzsi2.c
delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/divdi3.c
delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/divsi3.c
create mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/lasr.S
delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/lshrdi3.c
delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/moddi3.c
delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/modsi3.c
delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/muldi3.c
delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/ucmpdi2.c
delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivdi3.c
delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivmoddi4.c
delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivsi3.c
delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/uldivmod.c
delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/umoddi3.c
delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/umodsi3.c
create mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/uread.S
create mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/uwrite.S
create mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/memcmp_ms.c
create mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/memmove_ms.c
[edk2-devel] [PATCH v2 0/4] ArmPkg/CompilerIntrinsicsLib: Update MSFT, GCC intrinsics
Posted by Pete Batard 4 years, 11 months ago
This patch series cleans up and updates the CompilerIntrinsicsLib for ArmPkg.

The first patch removes sources that are no longer used and cleans up the .inf.
The second patch adds memcmp and memmove for MSFT, as I ran into missing symbols
for those while compiling a project with VS2017. Note that we are not reusing
the memmove.asm from ARM and instead adding a separate C source, as we need an
implemention that applies for both ARM and ARM64.
The third patch adds a lasr implementation, which I found was needed to fix
missing symbols when compiling with GCC/ARM on Debian 9.8.
The last patch premtpively adds references for uread/uwrite for completion.

Regards,

/Pete

Pete Batard (4):
  ArmPkg/CompilerIntrinsicsLib: Remove unused sources and clean up .inf
  ArmPkg/CompilerIntrinsicsLib: Add memcmp, memmove intrinsics for MSFT
  ArmPkg/CompilerIntrinsicsLib: Add lasr ARM assembly source for GCC
  ArmPkg/CompilerIntrinsicsLib: Add uread, uwrite GCC assembly sources

 ArmPkg/Library/CompilerIntrinsicsLib/Arm/Llvm_int_lib.h        |  93 -------
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/ashldi3.c             |  77 ------
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/ashrdi3.c             |  78 ------
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/clzsi2.c              |  90 -------
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/ctzsi2.c              |  92 -------
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/divdi3.c              |  71 -----
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/divsi3.c              |  72 -----
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/lasr.S                |  30 +++
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/lshrdi3.c             |  77 ------
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/moddi3.c              |  71 -----
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/modsi3.c              |  64 -----
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/muldi3.c              |  92 -------
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/ucmpdi2.c             |  76 ------
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivdi3.c             |  65 -----
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivmoddi4.c          | 281 --------------------
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivsi3.c             | 105 --------
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/uldivmod.c            |  37 ---
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/umoddi3.c             |  66 -----
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/umodsi3.c             |  62 -----
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/uread.S               |  54 ++++
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/uwrite.S              |  53 ++++
 ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf | 108 +++-----
 ArmPkg/Library/CompilerIntrinsicsLib/memcmp_ms.c               |  31 +++
 ArmPkg/Library/CompilerIntrinsicsLib/memmove_ms.c              |  34 +++
 24 files changed, 245 insertions(+), 1634 deletions(-)
 delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/Llvm_int_lib.h
 delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/ashldi3.c
 delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/ashrdi3.c
 delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/clzsi2.c
 delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/ctzsi2.c
 delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/divdi3.c
 delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/divsi3.c
 create mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/lasr.S
 delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/lshrdi3.c
 delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/moddi3.c
 delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/modsi3.c
 delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/muldi3.c
 delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/ucmpdi2.c
 delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivdi3.c
 delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivmoddi4.c
 delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivsi3.c
 delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/uldivmod.c
 delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/umoddi3.c
 delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/umodsi3.c
 create mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/uread.S
 create mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/uwrite.S
 create mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/memcmp_ms.c
 create mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/memmove_ms.c

-- 
2.21.0.windows.1


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#40488): https://edk2.groups.io/g/devel/message/40488
Mute This Topic: https://groups.io/mt/31605109/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [PATCH v2 0/4] ArmPkg/CompilerIntrinsicsLib: Update MSFT, GCC intrinsics
Posted by Leif Lindholm 4 years, 11 months ago
Hi Pete,

On Mon, May 13, 2019 at 09:54:12AM +0100, Pete Batard wrote:
> This patch series cleans up and updates the CompilerIntrinsicsLib for ArmPkg.
> 
> The first patch removes sources that are no longer used and cleans up the .inf.
> The second patch adds memcmp and memmove for MSFT, as I ran into missing symbols
> for those while compiling a project with VS2017. Note that we are not reusing
> the memmove.asm from ARM and instead adding a separate C source, as we need an
> implemention that applies for both ARM and ARM64.
> The third patch adds a lasr implementation, which I found was needed to fix
> missing symbols when compiling with GCC/ARM on Debian 9.8.
> The last patch premtpively adds references for uread/uwrite for completion.

Many thanks for this cleanup.
For the series - Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
Pushed as 4ff689d982..96ef5a8e30.

But. One question:

When building with Visual Studio 2017, I get the following warning:
"cl : Command line warning D9025 : overriding '/GL' with '/GL-'"
(This is not caused by anything in this set.)

Should we also /wd9025 in the .inf (I think so, since we're explicitly
mucking with the toolchain here), and if so could you send an
additional patch to do that since Ard is still away and I can't sign
off my own patches? :)

Best Regards,

Leif

> Regards,
> 
> /Pete
> 
> Pete Batard (4):
>   ArmPkg/CompilerIntrinsicsLib: Remove unused sources and clean up .inf
>   ArmPkg/CompilerIntrinsicsLib: Add memcmp, memmove intrinsics for MSFT
>   ArmPkg/CompilerIntrinsicsLib: Add lasr ARM assembly source for GCC
>   ArmPkg/CompilerIntrinsicsLib: Add uread, uwrite GCC assembly sources
> 
>  ArmPkg/Library/CompilerIntrinsicsLib/Arm/Llvm_int_lib.h        |  93 -------
>  ArmPkg/Library/CompilerIntrinsicsLib/Arm/ashldi3.c             |  77 ------
>  ArmPkg/Library/CompilerIntrinsicsLib/Arm/ashrdi3.c             |  78 ------
>  ArmPkg/Library/CompilerIntrinsicsLib/Arm/clzsi2.c              |  90 -------
>  ArmPkg/Library/CompilerIntrinsicsLib/Arm/ctzsi2.c              |  92 -------
>  ArmPkg/Library/CompilerIntrinsicsLib/Arm/divdi3.c              |  71 -----
>  ArmPkg/Library/CompilerIntrinsicsLib/Arm/divsi3.c              |  72 -----
>  ArmPkg/Library/CompilerIntrinsicsLib/Arm/lasr.S                |  30 +++
>  ArmPkg/Library/CompilerIntrinsicsLib/Arm/lshrdi3.c             |  77 ------
>  ArmPkg/Library/CompilerIntrinsicsLib/Arm/moddi3.c              |  71 -----
>  ArmPkg/Library/CompilerIntrinsicsLib/Arm/modsi3.c              |  64 -----
>  ArmPkg/Library/CompilerIntrinsicsLib/Arm/muldi3.c              |  92 -------
>  ArmPkg/Library/CompilerIntrinsicsLib/Arm/ucmpdi2.c             |  76 ------
>  ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivdi3.c             |  65 -----
>  ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivmoddi4.c          | 281 --------------------
>  ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivsi3.c             | 105 --------
>  ArmPkg/Library/CompilerIntrinsicsLib/Arm/uldivmod.c            |  37 ---
>  ArmPkg/Library/CompilerIntrinsicsLib/Arm/umoddi3.c             |  66 -----
>  ArmPkg/Library/CompilerIntrinsicsLib/Arm/umodsi3.c             |  62 -----
>  ArmPkg/Library/CompilerIntrinsicsLib/Arm/uread.S               |  54 ++++
>  ArmPkg/Library/CompilerIntrinsicsLib/Arm/uwrite.S              |  53 ++++
>  ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf | 108 +++-----
>  ArmPkg/Library/CompilerIntrinsicsLib/memcmp_ms.c               |  31 +++
>  ArmPkg/Library/CompilerIntrinsicsLib/memmove_ms.c              |  34 +++
>  24 files changed, 245 insertions(+), 1634 deletions(-)
>  delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/Llvm_int_lib.h
>  delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/ashldi3.c
>  delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/ashrdi3.c
>  delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/clzsi2.c
>  delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/ctzsi2.c
>  delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/divdi3.c
>  delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/divsi3.c
>  create mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/lasr.S
>  delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/lshrdi3.c
>  delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/moddi3.c
>  delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/modsi3.c
>  delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/muldi3.c
>  delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/ucmpdi2.c
>  delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivdi3.c
>  delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivmoddi4.c
>  delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivsi3.c
>  delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/uldivmod.c
>  delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/umoddi3.c
>  delete mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/umodsi3.c
>  create mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/uread.S
>  create mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/uwrite.S
>  create mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/memcmp_ms.c
>  create mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/memmove_ms.c
> 
> -- 
> 2.21.0.windows.1
> 

-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#40522): https://edk2.groups.io/g/devel/message/40522
Mute This Topic: https://groups.io/mt/31605109/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [PATCH v2 0/4] ArmPkg/CompilerIntrinsicsLib: Update MSFT, GCC intrinsics
Posted by Pete Batard 4 years, 11 months ago
Hi Leif,

On 2019.05.13 16:56, Leif Lindholm wrote:
> Hi Pete,
> 
> On Mon, May 13, 2019 at 09:54:12AM +0100, Pete Batard wrote:
>> This patch series cleans up and updates the CompilerIntrinsicsLib for ArmPkg.
>>
>> The first patch removes sources that are no longer used and cleans up the .inf.
>> The second patch adds memcmp and memmove for MSFT, as I ran into missing symbols
>> for those while compiling a project with VS2017. Note that we are not reusing
>> the memmove.asm from ARM and instead adding a separate C source, as we need an
>> implemention that applies for both ARM and ARM64.
>> The third patch adds a lasr implementation, which I found was needed to fix
>> missing symbols when compiling with GCC/ARM on Debian 9.8.
>> The last patch premtpively adds references for uread/uwrite for completion.
> 
> Many thanks for this cleanup.
> For the series - Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
> Pushed as 4ff689d982..96ef5a8e30.

Thanks.

> But. One question:
> 
> When building with Visual Studio 2017, I get the following warning:
> "cl : Command line warning D9025 : overriding '/GL' with '/GL-'"
> (This is not caused by anything in this set.)
> 
> Should we also /wd9025 in the .inf (I think so, since we're explicitly
> mucking with the toolchain here), and if so could you send an
> additional patch to do that since Ard is still away and I can't sign
> off my own patches? :)

Unfortunately, this is a "command line" warnings (D####) and not a 
compiler warning (C####) and MSVC doesn't seem to let you silence 
command line warnings.

Or at least, if they can be silenced, it's not through any option I have 
been able to figure out, as I can definitely report that /wd does not 
accept any of the D#### numbers.

Still, if anybody on this list knows how to silence MSVC command line 
warnings, I'd be very happy to hear from them and produce the patch you 
request, as I too have been wanting to squash these little annoyances 
for a while...

Regards,

/Pete

-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#40524): https://edk2.groups.io/g/devel/message/40524
Mute This Topic: https://groups.io/mt/31605109/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-