xref: /openbmc/u-boot/arch/arm/lib/ashrdi3.S (revision 06b36cb7)
111b1a9b2SMarek Vasut/* Copyright 1995, 1996, 1998, 1999, 2000, 2003, 2004, 2005
211b1a9b2SMarek Vasut   Free Software Foundation, Inc.
311b1a9b2SMarek Vasut
411b1a9b2SMarek Vasut * SPDX-License-Identifier:	GPL-2.0+
511b1a9b2SMarek Vasut */
611b1a9b2SMarek Vasut
711b1a9b2SMarek Vasut#include <linux/linkage.h>
8*06b36cb7SMarek Vasut#include <asm/assembler.h>
911b1a9b2SMarek Vasut
1011b1a9b2SMarek Vasut#ifdef __ARMEB__
1111b1a9b2SMarek Vasut#define al r1
1211b1a9b2SMarek Vasut#define ah r0
1311b1a9b2SMarek Vasut#else
1411b1a9b2SMarek Vasut#define al r0
1511b1a9b2SMarek Vasut#define ah r1
1611b1a9b2SMarek Vasut#endif
1711b1a9b2SMarek Vasut
18*06b36cb7SMarek VasutENTRY(__ashrdi3)
1911b1a9b2SMarek VasutENTRY(__aeabi_lasr)
2011b1a9b2SMarek Vasut
2111b1a9b2SMarek Vasut	subs	r3, r2, #32
2211b1a9b2SMarek Vasut	rsb	ip, r2, #32
2311b1a9b2SMarek Vasut	movmi	al, al, lsr r2
2411b1a9b2SMarek Vasut	movpl	al, ah, asr r3
25*06b36cb7SMarek Vasut ARM(	orrmi	al, al, ah, lsl ip	)
26*06b36cb7SMarek Vasut THUMB(	lslmi	r3, ah, ip		)
27*06b36cb7SMarek Vasut THUMB(	orrmi	al, al, r3		)
2811b1a9b2SMarek Vasut	mov	ah, ah, asr r2
29*06b36cb7SMarek Vasut	ret	lr
30*06b36cb7SMarek Vasut
31*06b36cb7SMarek VasutENDPROC(__ashrdi3)
3211b1a9b2SMarek VasutENDPROC(__aeabi_lasr)
33