]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ArmPkg/CompilerIntrinsicsLib: Add lasr ARM assembly source for GCC
authorPete Batard <pete@akeo.ie>
Mon, 13 May 2019 08:54:15 +0000 (09:54 +0100)
committerLeif Lindholm <leif.lindholm@linaro.org>
Mon, 13 May 2019 15:54:29 +0000 (16:54 +0100)
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>
ArmPkg/Library/CompilerIntrinsicsLib/Arm/lasr.S [new file with mode: 0644]
ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf

diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/lasr.S b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/lasr.S
new file mode 100644 (file)
index 0000000..feeea9e
--- /dev/null
@@ -0,0 +1,30 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
+#\r
+# SPDX-License-Identifier: BSD-2-Clause-Patent\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+#include <AsmMacroIoLib.h>\r
+\r
+#\r
+#UINT64\r
+#EFIAPI\r
+#__aeabi_lasr (\r
+#  IN UINT64  Value\r
+#  IN UINT32  Shift\r
+#  );\r
+#\r
+ASM_FUNC(__aeabi_lasr)\r
+  subs     r3,r2,#0x20\r
+  bpl      L_Test\r
+  rsb      r3,r2,#0x20\r
+  lsr      r0,r0,r2\r
+  orr      r0,r0,r1,LSL r3\r
+  asr      r1,r1,r2\r
+  bx       lr\r
+L_Test:\r
+  asr      r0,r1,r3\r
+  asr      r1,r1,#31\r
+  bx       lr\r
index d6cc63db75c7d968aa2cf2875dfd9491f8715910..aaf3de02a9526360d6c59a09f38aa2e7dfda1afb 100644 (file)
@@ -68,6 +68,7 @@
   Arm/sourcery.S       | GCC\r
   Arm/uldiv.S          | GCC\r
   Arm/ldivmod.S        | GCC\r
+  Arm/lasr.S           | GCC\r
   Arm/llsr.S           | GCC\r
   Arm/llsl.S           | GCC\r
 \r