a4f5ebbff13203bbe2622ffc7cfa43fcc5fec7a6
[oweals/u-boot.git] / arch / arm / lib / ashldi3.S
1 /* Copyright 1995, 1996, 1998, 1999, 2000, 2003, 2004, 2005
2    Free Software Foundation, Inc.
3
4  * SPDX-License-Identifier:     GPL-2.0+
5  */
6
7 #include <linux/linkage.h>
8 #include <asm/assembler.h>
9
10 #ifdef __ARMEB__
11 #define al r1
12 #define ah r0
13 #else
14 #define al r0
15 #define ah r1
16 #endif
17
18 ENTRY(__ashldi3)
19 ENTRY(__aeabi_llsl)
20
21         subs    r3, r2, #32
22         rsb     ip, r2, #32
23         movmi   ah, ah, lsl r2
24         movpl   ah, al, lsl r3
25  ARM(   orrmi   ah, ah, al, lsr ip      )
26  THUMB( lsrmi   r3, al, ip              )
27  THUMB( orrmi   ah, ah, r3              )
28         mov     al, al, lsl r2
29         ret     lr
30
31 ENDPROC(__ashldi3)
32 ENDPROC(__aeabi_llsl)