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