xref: /openbmc/u-boot/arch/arm/lib/lshrdi3.S (revision 57efeb04)
1/* SPDX-License-Identifier: GPL-2.0+ */
2/* Copyright 1995, 1996, 1998, 1999, 2000, 2003, 2004, 2005
3   Free Software Foundation, Inc.
4 */
5
6#include <linux/linkage.h>
7#include <asm/assembler.h>
8
9#ifdef __ARMEB__
10#define al r1
11#define ah r0
12#else
13#define al r0
14#define ah r1
15#endif
16
17.pushsection .text.__lshldi3, "ax"
18ENTRY(__lshrdi3)
19ENTRY(__aeabi_llsr)
20
21	subs	r3, r2, #32
22	rsb	ip, r2, #32
23	movmi	al, al, lsr r2
24	movpl	al, ah, lsr r3
25 ARM(	orrmi	al, al, ah, lsl ip	)
26 THUMB(	lslmi	r3, ah, ip		)
27 THUMB(	orrmi	al, al, r3		)
28	mov	ah, ah, lsr r2
29	ret	lr
30
31ENDPROC(__lshrdi3)
32ENDPROC(__aeabi_llsr)
33.popsection
34