1 /* SPDX-License-Identifier: GPL-2.0-or-later W !! 1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #include <linux/linkage.h> !! 2 /* 3 #include <asm/asmmacro.h> !! 3 * ashldi3.S: GCC emits these for certain drivers playing 4 #include <asm/core.h> !! 4 * with long longs. >> 5 * >> 6 * Copyright (C) 1999 David S. Miller (davem@redhat.com) >> 7 */ 5 8 6 #ifdef __XTENSA_EB__ !! 9 #include <linux/export.h> 7 #define uh a2 !! 10 #include <linux/linkage.h> 8 #define ul a3 << 9 #else << 10 #define uh a3 << 11 #define ul a2 << 12 #endif /* __XTENSA_EB__ */ << 13 11 >> 12 .text 14 ENTRY(__ashldi3) 13 ENTRY(__ashldi3) >> 14 cmp %o2, 0 >> 15 be 9f >> 16 mov 0x20, %g2 15 17 16 abi_entry_default !! 18 sub %g2, %o2, %g2 17 ssl a4 !! 19 cmp %g2, 0 18 bgei a4, 32, .Llow_only !! 20 bg 7f 19 src uh, uh, ul !! 21 sll %o0, %o2, %g3 20 sll ul, ul << 21 abi_ret_default << 22 << 23 .Llow_only: << 24 sll uh, ul << 25 movi ul, 0 << 26 abi_ret_default << 27 22 >> 23 neg %g2 >> 24 clr %o5 >> 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 28 ENDPROC(__ashldi3) 37 ENDPROC(__ashldi3) 29 EXPORT_SYMBOL(__ashldi3) 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.