From d039044be43d69f4f2775ed0b30e952aa0ee4c00 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Mon, 13 May 2019 09:54:15 +0100 Subject: [PATCH] ArmPkg/CompilerIntrinsicsLib: Add lasr ARM assembly source for GCC The new source is a port of the RVCT version. Cc: Ard Biesheuvel Cc: Leif Lindholm Signed-off-by: Pete Batard Reviewed-by: Leif Lindholm --- .../Library/CompilerIntrinsicsLib/Arm/lasr.S | 30 +++++++++++++++++++ .../CompilerIntrinsicsLib.inf | 1 + 2 files changed, 31 insertions(+) create mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/lasr.S diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/lasr.S b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/lasr.S new file mode 100644 index 0000000000..feeea9edd1 --- /dev/null +++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/lasr.S @@ -0,0 +1,30 @@ +#------------------------------------------------------------------------------ +# +# Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.
+# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +#------------------------------------------------------------------------------ + +#include + +# +#UINT64 +#EFIAPI +#__aeabi_lasr ( +# IN UINT64 Value +# IN UINT32 Shift +# ); +# +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 d6cc63db75..aaf3de02a9 100644 --- a/ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf +++ b/ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf @@ -68,6 +68,7 @@ Arm/sourcery.S | GCC Arm/uldiv.S | GCC Arm/ldivmod.S | GCC + Arm/lasr.S | GCC Arm/llsr.S | GCC Arm/llsl.S | GCC