1 /* SPDX-License-Identifier: GPL-2.0-or-later W << 2 #include <linux/linkage.h> 1 #include <linux/linkage.h> 3 #include <asm/asmmacro.h> !! 2 #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 3 14 ENTRY(__lshrdi3) 4 ENTRY(__lshrdi3) >> 5 cmp %o2, 0 >> 6 be 3f >> 7 mov 0x20, %g2 15 8 16 abi_entry_default !! 9 sub %g2, %o2, %g2 17 ssr a4 !! 10 cmp %g2, 0 18 bgei a4, 32, .Lhigh_only !! 11 bg 1f 19 src ul, uh, ul !! 12 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 13 >> 14 clr %o4 >> 15 neg %g2 >> 16 b 2f >> 17 srl %o0, %g2, %o5 >> 18 1: >> 19 sll %o0, %g2, %g3 >> 20 srl %o1, %o2, %g2 >> 21 or %g2, %g3, %o5 >> 22 2: >> 23 mov %o4, %o0 >> 24 mov %o5, %o1 >> 25 3: >> 26 retl >> 27 nop 28 ENDPROC(__lshrdi3) 28 ENDPROC(__lshrdi3) 29 EXPORT_SYMBOL(__lshrdi3) 29 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.