162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later WITH GCC-exception-2.0 */ 262306a36Sopenharmony_ci#include <linux/linkage.h> 362306a36Sopenharmony_ci#include <asm/asmmacro.h> 462306a36Sopenharmony_ci#include <asm/core.h> 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#ifdef __XTENSA_EB__ 762306a36Sopenharmony_ci#define uh a2 862306a36Sopenharmony_ci#define ul a3 962306a36Sopenharmony_ci#else 1062306a36Sopenharmony_ci#define uh a3 1162306a36Sopenharmony_ci#define ul a2 1262306a36Sopenharmony_ci#endif /* __XTENSA_EB__ */ 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ciENTRY(__ashrdi3) 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci abi_entry_default 1762306a36Sopenharmony_ci ssr a4 1862306a36Sopenharmony_ci bgei a4, 32, .Lhigh_only 1962306a36Sopenharmony_ci src ul, uh, ul 2062306a36Sopenharmony_ci sra uh, uh 2162306a36Sopenharmony_ci abi_ret_default 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci.Lhigh_only: 2462306a36Sopenharmony_ci sra ul, uh 2562306a36Sopenharmony_ci srai uh, uh, 31 2662306a36Sopenharmony_ci abi_ret_default 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ciENDPROC(__ashrdi3) 2962306a36Sopenharmony_ciEXPORT_SYMBOL(__ashrdi3) 30