xref: /openbmc/u-boot/arch/arm/lib/ashrdi3.S (revision e8f80a5a)
1*83d290c5STom Rini/* SPDX-License-Identifier: GPL-2.0+ */
211b1a9b2SMarek Vasut/* Copyright 1995, 1996, 1998, 1999, 2000, 2003, 2004, 2005
311b1a9b2SMarek Vasut   Free Software Foundation, Inc.
411b1a9b2SMarek Vasut */
511b1a9b2SMarek Vasut
611b1a9b2SMarek Vasut#include <linux/linkage.h>
706b36cb7SMarek Vasut#include <asm/assembler.h>
811b1a9b2SMarek Vasut
911b1a9b2SMarek Vasut#ifdef __ARMEB__
1011b1a9b2SMarek Vasut#define al r1
1111b1a9b2SMarek Vasut#define ah r0
1211b1a9b2SMarek Vasut#else
1311b1a9b2SMarek Vasut#define al r0
1411b1a9b2SMarek Vasut#define ah r1
1511b1a9b2SMarek Vasut#endif
1611b1a9b2SMarek Vasut
17b2f18584SStephen Warren.pushsection .text.__ashrdi3, "ax"
1806b36cb7SMarek 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
2506b36cb7SMarek Vasut ARM(	orrmi	al, al, ah, lsl ip	)
2606b36cb7SMarek Vasut THUMB(	lslmi	r3, ah, ip		)
2706b36cb7SMarek Vasut THUMB(	orrmi	al, al, r3		)
2811b1a9b2SMarek Vasut	mov	ah, ah, asr r2
2906b36cb7SMarek Vasut	ret	lr
3006b36cb7SMarek Vasut
3106b36cb7SMarek VasutENDPROC(__ashrdi3)
3211b1a9b2SMarek VasutENDPROC(__aeabi_lasr)
33b2f18584SStephen Warren.popsection
34