1 /* Copyright 1995, 1996, 1998, 1999, 2000, 200 !! 1 /* SPDX-License-Identifier: GPL-2.0 */ 2 Free Software Foundation, Inc. !! 2 /* 3 !! 3 * ashrdi3.S: The filesystem code creates all kinds of references to 4 This file is free software; you can redistribu !! 4 * this little routine on the sparc with gcc. 5 under the terms of the GNU General Public Lice !! 5 * 6 Free Software Foundation; either version 2, or !! 6 * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) 7 later version. !! 7 */ 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 8 29 #include <linux/linkage.h> 9 #include <linux/linkage.h> 30 #include <asm/assembler.h> !! 10 #include <asm/export.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 11 >> 12 .text 40 ENTRY(__ashrdi3) 13 ENTRY(__ashrdi3) 41 ENTRY(__aeabi_lasr) !! 14 tst %o2 42 !! 15 be 3f 43 subs r3, r2, #32 !! 16 or %g0, 32, %g2 44 rsb ip, r2, #32 !! 17 45 movmi al, al, lsr r2 !! 18 sub %g2, %o2, %g2 46 movpl al, ah, asr r3 !! 19 47 ARM( orrmi al, al, ah, lsl ip ) !! 20 tst %g2 48 THUMB( lslmi r3, ah, ip ) !! 21 bg 1f 49 THUMB( orrmi al, al, r3 ) !! 22 sra %o0, %o2, %o4 50 mov ah, ah, asr r2 !! 23 51 ret lr !! 24 sra %o0, 31, %o4 52 !! 25 sub %g0, %g2, %g2 >> 26 ba 2f >> 27 sra %o0, %g2, %o5 >> 28 >> 29 1: >> 30 sll %o0, %g2, %g3 >> 31 srl %o1, %o2, %g2 >> 32 or %g2, %g3, %o5 >> 33 2: >> 34 or %g0, %o4, %o0 >> 35 or %g0, %o5, %o1 >> 36 3: >> 37 jmpl %o7 + 8, %g0 >> 38 nop 53 ENDPROC(__ashrdi3) 39 ENDPROC(__ashrdi3) 54 ENDPROC(__aeabi_lasr) !! 40 EXPORT_SYMBOL(__ashrdi3)
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.