|  | /* SPDX-License-Identifier: GPL-2.0+ */ | 
|  | /* Copyright 1995, 1996, 1998, 1999, 2000, 2003, 2004, 2005 | 
|  | Free Software Foundation, Inc. | 
|  | */ | 
|  |  | 
|  | #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 |