1/* SPDX-License-Identifier: GPL-2.0-or-later */ 2 3#if defined __GNUC__ 4 5#include <arch/asm.h> 6 7#ifdef __ARMEB__ 8#define al r1 9#define ah r0 10#else 11#define al r0 12#define ah r1 13#endif 14 15ENTRY(__lshrdi3) 16.global __aeabi_llsr 17__aeabi_llsr: 18 19 subs r3, r2, #32 20 rsb ip, r2, #32 21 movmi al, al, lsr r2 22 movpl al, ah, lsr r3 23 ARM( orrmi al, al, ah, lsl ip ) 24 THUMB( lslmi r3, ah, ip ) 25 THUMB( orrmi al, al, r3 ) 26 mov ah, ah, lsr r2 27 mov pc, lr 28 29.type __aeabi_llsr, %function 30.size __aeabi_llsr, .-__aeabi_llsr 31ENDPROC(__lshrdi3) 32 33#endif 34