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