/* Copyright 1995, 1996, 1998, 1999, 2000, 2003, 2004, 2005 | |
Free Software Foundation, Inc. | |
* SPDX-License-Identifier: GPL-2.0+ | |
*/ | |
#include <linux/linkage.h> | |
#include <asm/assembler.h> | |
#ifdef __ARMEB__ | |
#define al r1 | |
#define ah r0 | |
#else | |
#define al r0 | |
#define ah r1 | |
#endif | |
.pushsection .text.__ashldi3, "ax" | |
ENTRY(__ashldi3) | |
ENTRY(__aeabi_llsl) | |
subs r3, r2, #32 | |
rsb ip, r2, #32 | |
movmi ah, ah, lsl r2 | |
movpl ah, al, lsl r3 | |
ARM( orrmi ah, ah, al, lsr ip ) | |
THUMB( lsrmi r3, al, ip ) | |
THUMB( orrmi ah, ah, r3 ) | |
mov al, al, lsl r2 | |
ret lr | |
ENDPROC(__ashldi3) | |
ENDPROC(__aeabi_llsl) | |
.popsection |