| /* SPDX-License-Identifier: GPL-2.0-or-later WITH GCC-exception-2.0 */ | |
| #include <linux/linkage.h> | |
| #include <asm/asmmacro.h> | |
| #include <asm/core.h> | |
| #ifdef __XTENSA_EB__ | |
| #define uh a2 | |
| #define ul a3 | |
| #else | |
| #define uh a3 | |
| #define ul a2 | |
| #endif /* __XTENSA_EB__ */ | |
| ENTRY(__ashldi3) | |
| abi_entry_default | |
| ssl a4 | |
| bgei a4, 32, .Llow_only | |
| src uh, uh, ul | |
| sll ul, ul | |
| abi_ret_default | |
| .Llow_only: | |
| sll uh, ul | |
| movi ul, 0 | |
| abi_ret_default | |
| ENDPROC(__ashldi3) | |
| EXPORT_SYMBOL(__ashldi3) |