ArmPkg/CompilerIntrinsicsLib: Add lasr ARM assembly source for GCC

The new source is a port of the RVCT version.

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Leif Lindholm <leif.lindholm@linaro.org>
Signed-off-by: Pete Batard <pete@akeo.ie>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
This commit is contained in:
Pete Batard 2019-05-13 09:54:15 +01:00 committed by Leif Lindholm
parent 482704df27
commit d039044be4
2 changed files with 31 additions and 0 deletions

View File

@ -0,0 +1,30 @@
#------------------------------------------------------------------------------
#
# Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
#------------------------------------------------------------------------------
#include <AsmMacroIoLib.h>
#
#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

View File

@ -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