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