1 /* SPDX-License-Identifier: GPL-2.0-or-later W !! 1 /* $Id: lshrdi3.S,v 1.1 1999/03/21 06:37:45 davem Exp $ */ 2 #include <linux/linkage.h> << 3 #include <asm/asmmacro.h> << 4 #include <asm/core.h> << 5 2 6 #ifdef __XTENSA_EB__ !! 3 #include <asm/cprefix.h> 7 #define uh a2 << 8 #define ul a3 << 9 #else << 10 #define uh a3 << 11 #define ul a2 << 12 #endif /* __XTENSA_EB__ */ << 13 4 14 ENTRY(__lshrdi3) !! 5 .globl C_LABEL(__lshrdi3) >> 6 C_LABEL(__lshrdi3): >> 7 cmp %o2, 0 >> 8 be 3f >> 9 mov 0x20, %g2 15 10 16 abi_entry_default !! 11 sub %g2, %o2, %g2 17 ssr a4 !! 12 cmp %g2, 0 18 bgei a4, 32, .Lhigh_only !! 13 bg 1f 19 src ul, uh, ul !! 14 srl %o0, %o2, %o4 20 srl uh, uh << 21 abi_ret_default << 22 15 23 .Lhigh_only: !! 16 clr %o4 24 srl ul, uh !! 17 neg %g2 25 movi uh, 0 !! 18 b 2f 26 abi_ret_default !! 19 srl %o0, %g2, %o5 27 !! 20 1: 28 ENDPROC(__lshrdi3) !! 21 sll %o0, %g2, %g3 29 EXPORT_SYMBOL(__lshrdi3) !! 22 srl %o1, %o2, %g2 >> 23 or %g2, %g3, %o5 >> 24 2: >> 25 mov %o4, %o0 >> 26 mov %o5, %o1 >> 27 3: >> 28 retl >> 29 nop
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.