xref: /rk3399_rockchip-uboot/arch/arm/lib/ashldi3.S (revision dc557e9a1fe00ca9d884bd88feef5bebf23fede4)
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>
806b36cb7SMarek 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*b2f18584SStephen Warren.pushsection .text.__ashldi3, "ax"
1906b36cb7SMarek VasutENTRY(__ashldi3)
2011b1a9b2SMarek VasutENTRY(__aeabi_llsl)
2111b1a9b2SMarek Vasut
2211b1a9b2SMarek Vasut	subs	r3, r2, #32
2311b1a9b2SMarek Vasut	rsb	ip, r2, #32
2411b1a9b2SMarek Vasut	movmi	ah, ah, lsl r2
2511b1a9b2SMarek Vasut	movpl	ah, al, lsl r3
2606b36cb7SMarek Vasut ARM(	orrmi	ah, ah, al, lsr ip	)
2706b36cb7SMarek Vasut THUMB(	lsrmi	r3, al, ip		)
2806b36cb7SMarek Vasut THUMB(	orrmi	ah, ah, r3		)
2911b1a9b2SMarek Vasut	mov	al, al, lsl r2
3006b36cb7SMarek Vasut	ret	lr
3106b36cb7SMarek Vasut
3206b36cb7SMarek VasutENDPROC(__ashldi3)
3311b1a9b2SMarek VasutENDPROC(__aeabi_llsl)
34*b2f18584SStephen Warren.popsection
35