llsl.S revision 1.1 1 1.1 jmcneill /* $NetBSD: llsl.S,v 1.1 2018/08/16 18:17:47 jmcneill Exp $ */
2 1.1 jmcneill
3 1.1 jmcneill #------------------------------------------------------------------------------
4 1.1 jmcneill #
5 1.1 jmcneill # Copyright (c) 2013, ARM. All rights reserved.<BR>
6 1.1 jmcneill #
7 1.1 jmcneill # This program and the accompanying materials
8 1.1 jmcneill # are licensed and made available under the terms and conditions of the BSD License
9 1.1 jmcneill # which accompanies this distribution. The full text of the license may be found at
10 1.1 jmcneill # http://opensource.org/licenses/bsd-license.php
11 1.1 jmcneill #
12 1.1 jmcneill # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
13 1.1 jmcneill # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
14 1.1 jmcneill #
15 1.1 jmcneill #------------------------------------------------------------------------------
16 1.1 jmcneill
17 1.1 jmcneill #include "edk2asm.h"
18 1.1 jmcneill
19 1.1 jmcneill .text
20 1.1 jmcneill .align 2
21 1.1 jmcneill GCC_ASM_EXPORT(__aeabi_llsl)
22 1.1 jmcneill
23 1.1 jmcneill #
24 1.1 jmcneill #VOID
25 1.1 jmcneill #EFIAPI
26 1.1 jmcneill #__aeabi_llsl (
27 1.1 jmcneill # IN VOID *Destination,
28 1.1 jmcneill # IN VOID *Source,
29 1.1 jmcneill # IN UINT32 Size
30 1.1 jmcneill # );
31 1.1 jmcneill #
32 1.1 jmcneill ASM_PFX(__aeabi_llsl):
33 1.1 jmcneill subs r3,r2,#0x20
34 1.1 jmcneill bpl 1f
35 1.1 jmcneill rsb r3,r2,#0x20
36 1.1 jmcneill lsl r1,r1,r2
37 1.1 jmcneill orr r1,r1,r0,lsr r3
38 1.1 jmcneill lsl r0,r0,r2
39 1.1 jmcneill bx lr
40 1.1 jmcneill 1:
41 1.1 jmcneill lsl r1,r0,r3
42 1.1 jmcneill mov r0,#0
43 1.1 jmcneill bx lr
44