1 /* SPDX-License-Identifier: GPL-2.0-or-later WITH GCC-exception-2.0 */
2 #include <linux/linkage.h>
3 #include <asm/asmmacro.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 
14 ENTRY(__ashrdi3)
15 
16 	abi_entry_default
17 	ssr	a4
18 	bgei	a4, 32, .Lhigh_only
19 	src	ul, uh, ul
20 	sra	uh, uh
21 	abi_ret_default
22 
23 .Lhigh_only:
24 	sra	ul, uh
25 	srai	uh, uh, 31
26 	abi_ret_default
27 
28 ENDPROC(__ashrdi3)
29 EXPORT_SYMBOL(__ashrdi3)
30