1 /* Copyright 1995, 1996, 1998, 1999, 2000, 200 !! 1 /* SPDX-License-Identifier: GPL-2.0 */ 2 Free Software Foundation, Inc. !! 2 /* 3 !! 3 * ashldi3.S: GCC emits these for certain drivers playing 4 This file is free software; you can redistribu !! 4 * with long longs. 5 under the terms of the GNU General Public Lice !! 5 * 6 Free Software Foundation; either version 2, or !! 6 * Copyright (C) 1999 David S. Miller (davem@redhat.com) 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 >> 9 #include <linux/export.h> 29 #include <linux/linkage.h> 10 #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 11 >> 12 .text 40 ENTRY(__ashldi3) 13 ENTRY(__ashldi3) 41 ENTRY(__aeabi_llsl) !! 14 cmp %o2, 0 42 !! 15 be 9f 43 subs r3, r2, #32 !! 16 mov 0x20, %g2 44 rsb ip, r2, #32 !! 17 45 movmi ah, ah, lsl r2 !! 18 sub %g2, %o2, %g2 46 movpl ah, al, lsl r3 !! 19 cmp %g2, 0 47 ARM( orrmi ah, ah, al, lsr ip ) !! 20 bg 7f 48 THUMB( lsrmi r3, al, ip ) !! 21 sll %o0, %o2, %g3 49 THUMB( orrmi ah, ah, r3 ) !! 22 50 mov al, al, lsl r2 !! 23 neg %g2 51 ret lr !! 24 clr %o5 52 !! 25 b 8f >> 26 sll %o1, %g2, %o4 >> 27 7: >> 28 srl %o1, %g2, %g2 >> 29 sll %o1, %o2, %o5 >> 30 or %g3, %g2, %o4 >> 31 8: >> 32 mov %o4, %o0 >> 33 mov %o5, %o1 >> 34 9: >> 35 retl >> 36 nop 53 ENDPROC(__ashldi3) 37 ENDPROC(__ashldi3) 54 ENDPROC(__aeabi_llsl) !! 38 EXPORT_SYMBOL(__ashldi3)
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.