1 /* SPDX-License-Identifier: GPL-2.0+ */ 2 /* Copyright 1995, 1996, 1998, 1999, 2000, 2003, 2004, 2005 3 Free Software Foundation, Inc. 4 */ 5 6 #include <linux/linkage.h> 7 #include <asm/assembler.h> 8 9 #ifdef __ARMEB__ 10 #define al r1 11 #define ah r0 12 #else 13 #define al r0 14 #define ah r1 15 #endif 16 17 .pushsection .text.__lshldi3, "ax" 18 ENTRY(__lshrdi3) 19 ENTRY(__aeabi_llsr) 20 21 subs r3, r2, #32 22 rsb ip, r2, #32 23 movmi al, al, lsr r2 24 movpl al, ah, lsr r3 25 ARM( orrmi al, al, ah, lsl ip ) 26 THUMB( lslmi r3, ah, ip ) 27 THUMB( orrmi al, al, r3 ) 28 mov ah, ah, lsr r2 29 ret lr 30 31 ENDPROC(__lshrdi3) 32 ENDPROC(__aeabi_llsr) 33 .popsection 34