From: "Leif Lindholm" <leif.lindholm@linaro.org>
To: Pete Batard <pete@akeo.ie>
Cc: devel@edk2.groups.io, ard.biesheuvel@linaro.org
Subject: Re: [PATCH 1/1] ArmPkg/CompilerIntrinsicsLib: Add lasr assembly source for gcc/arm
Date: Tue, 7 May 2019 17:52:50 +0100 [thread overview]
Message-ID: <20190507165250.gj6tzqv25dl7wsfc@bivouac.eciton.net> (raw)
In-Reply-To: <20190507155726.1132-1-pete@akeo.ie>
On Tue, May 07, 2019 at 04:57:26PM +0100, Pete Batard wrote:
> While compiling drivers or applications on Debian 9.8, using the native
> gcc 6.3.0 ARM compiler, one may run into the following build failure:
>
> "undefined reference to `__aeabi_lasr'"
>
> This patch adds the missing definition, through a port of the existing
> RVCT lasr.asm source.
Ugh. Here's a module that could do with a bit of love.
ArmPkg/Library/CompilerIntrinsicsLib/Arm/switch.asm,
ArmPkg/Library/CompilerIntrinsicsLib/Arm/uread.asm and
ArmPkg/Library/CompilerIntrinsicsLib/Arm/uwrite.asm
also all miss .S versions.
And then there is an ominous comment in the .inf
"# Move .c to .s to work around LLVM issues"
and it appears all of the .c files are actually unused.
I'm not going to try to make you fix those too, but if you're feeling
charitable...
One comment below.
> CC: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> CC: Leif Lindholm <leif.lindholm@linaro.org>
> Signed-off-by: Pete Batard <pete@akeo.ie>
> ---
> ArmPkg/Library/CompilerIntrinsicsLib/Arm/lasr.S | 22 ++++++++++++++++++++
> ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf | 1 +
> 2 files changed, 23 insertions(+)
>
> diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/lasr.S b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/lasr.S
> new file mode 100644
> index 000000000000..9ded045b8bc4
> --- /dev/null
> +++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/lasr.S
> @@ -0,0 +1,22 @@
> +#------------------------------------------------------------------------------
> +#
> +# Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
> +#
> +# SPDX-License-Identifier: BSD-2-Clause-Patent
> +#
> +#------------------------------------------------------------------------------
> +
> +#include <AsmMacroIoLib.h>
> +
Could you add a "prototype" here?
The one in the original is nonsense, but
something like
#
#INT64
#EFIAPI
#__aeabi_lasr (
# IN INT64 Value,
# IN INT32 Shift
# );
#
?
/
Leif
> +ASM_FUNC(__aeabi_lasr)
> + subs r3,r2,#0x20
> + bpl L_Test
> + rsb r3,r2,#0x20
> + lsr r0,r0,r2
> + orr r0,r0,r1,LSL r3
> + asr r1,r1,r2
> + bx lr
> +L_Test:
> + asr r0,r1,r3
> + asr r1,r1,#31
> + bx lr
> diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf b/ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf
> index 0d5634959993..7cb8f194f210 100644
> --- a/ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf
> +++ b/ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf
> @@ -90,6 +90,7 @@ [Sources.ARM]
> Arm/uldiv.S | GCC
> Arm/ldivmod.S | GCC
>
> + Arm/lasr.S | GCC
> Arm/llsr.S | GCC
> Arm/llsl.S | GCC
>
> --
> 2.21.0.windows.1
>
next prev parent reply other threads:[~2019-05-07 16:52 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-07 15:57 [PATCH 1/1] ArmPkg/CompilerIntrinsicsLib: Add lasr assembly source for gcc/arm Pete Batard
2019-05-07 16:52 ` Leif Lindholm [this message]
2019-05-07 17:48 ` Pete Batard
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=20190507165250.gj6tzqv25dl7wsfc@bivouac.eciton.net \
--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