]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPkg/Library/CompilerIntrinsicsLib/Arm/lasr.S
ArmPkg/CompilerIntrinsicsLib: Add lasr ARM assembly source for GCC
[mirror_edk2.git] / 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 (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