]> git.proxmox.com Git - mirror_edk2.git/blob - ArmPkg/Library/CompilerIntrinsicsLib/Arm/llsl.S
f72aca97c137b887cb169d1536a1099e43dd654e
[mirror_edk2.git] / ArmPkg / Library / CompilerIntrinsicsLib / Arm / llsl.S
1 #------------------------------------------------------------------------------
2 #
3 # Copyright (c) 2013, ARM. All rights reserved.<BR>
4 #
5 # This program and the accompanying materials
6 # are licensed and made available under the terms and conditions of the BSD License
7 # which accompanies this distribution. The full text of the license may be found at
8 # http://opensource.org/licenses/bsd-license.php
9 #
10 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12 #
13 #------------------------------------------------------------------------------
14
15 #include <AsmMacroIoLib.h>
16
17 #
18 #VOID
19 #EFIAPI
20 #__aeabi_llsl (
21 # IN VOID *Destination,
22 # IN VOID *Source,
23 # IN UINT32 Size
24 # );
25 #
26 ASM_FUNC(__aeabi_llsl)
27 subs r3,r2,#0x20
28 bpl 1f
29 rsb r3,r2,#0x20
30 lsl r1,r1,r2
31 orr r1,r1,r0,lsr r3
32 lsl r0,r0,r2
33 bx lr
34 1:
35 lsl r1,r0,r3
36 mov r0,#0
37 bx lr