1 /* Copyright 1995, 1996, 1998, 1999, 2000, 200 !! 1 /* SPDX-License-Identifier: GPL-2.0 */ 2 Free Software Foundation, Inc. !! 2 #include <linux/export.h> 3 << 4 This file is free software; you can redistribu << 5 under the terms of the GNU General Public Lice << 6 Free Software Foundation; either version 2, or << 7 later version. << 8 << 9 In addition to the permissions in the GNU Gene << 10 Free Software Foundation gives you unlimited p << 11 compiled version of this file into combination << 12 and to distribute those combinations without a << 13 from the use of this file. (The General Publi << 14 do apply in other respects; for example, they << 15 the file, and distribution when not linked int << 16 executable.) << 17 << 18 This file is distributed in the hope that it w << 19 WITHOUT ANY WARRANTY; without even the implied << 20 MERCHANTABILITY or FITNESS FOR A PARTICULAR PU << 21 General Public License for more details. << 22 << 23 You should have received a copy of the GNU Gen << 24 along with this program; see the file COPYING. << 25 the Free Software Foundation, 51 Franklin Stre << 26 Boston, MA 02110-1301, USA. */ << 27 << 28 << 29 #include <linux/linkage.h> 3 #include <linux/linkage.h> 30 #include <asm/assembler.h> << 31 << 32 #ifdef __ARMEB__ << 33 #define al r1 << 34 #define ah r0 << 35 #else << 36 #define al r0 << 37 #define ah r1 << 38 #endif << 39 4 40 ENTRY(__lshrdi3) 5 ENTRY(__lshrdi3) 41 ENTRY(__aeabi_llsr) !! 6 cmp %o2, 0 42 !! 7 be 3f 43 subs r3, r2, #32 !! 8 mov 0x20, %g2 44 rsb ip, r2, #32 !! 9 45 movmi al, al, lsr r2 !! 10 sub %g2, %o2, %g2 46 movpl al, ah, lsr r3 !! 11 cmp %g2, 0 47 ARM( orrmi al, al, ah, lsl ip ) !! 12 bg 1f 48 THUMB( lslmi r3, ah, ip ) !! 13 srl %o0, %o2, %o4 49 THUMB( orrmi al, al, r3 ) !! 14 50 mov ah, ah, lsr r2 !! 15 clr %o4 51 ret lr !! 16 neg %g2 52 !! 17 b 2f >> 18 srl %o0, %g2, %o5 >> 19 1: >> 20 sll %o0, %g2, %g3 >> 21 srl %o1, %o2, %g2 >> 22 or %g2, %g3, %o5 >> 23 2: >> 24 mov %o4, %o0 >> 25 mov %o5, %o1 >> 26 3: >> 27 retl >> 28 nop 53 ENDPROC(__lshrdi3) 29 ENDPROC(__lshrdi3) 54 ENDPROC(__aeabi_llsr) !! 30 EXPORT_SYMBOL(__lshrdi3)
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.