1*4882a593Smuzhiyun/* Copyright 1995, 1996, 1998, 1999, 2000, 2003, 2004, 2005 2*4882a593Smuzhiyun Free Software Foundation, Inc. 3*4882a593Smuzhiyun 4*4882a593Smuzhiyun * SPDX-License-Identifier: GPL-2.0+ 5*4882a593Smuzhiyun */ 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun#include <linux/linkage.h> 8*4882a593Smuzhiyun#include <asm/assembler.h> 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun#ifdef __ARMEB__ 11*4882a593Smuzhiyun#define al r1 12*4882a593Smuzhiyun#define ah r0 13*4882a593Smuzhiyun#else 14*4882a593Smuzhiyun#define al r0 15*4882a593Smuzhiyun#define ah r1 16*4882a593Smuzhiyun#endif 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun.pushsection .text.__lshldi3, "ax" 19*4882a593SmuzhiyunENTRY(__lshrdi3) 20*4882a593SmuzhiyunENTRY(__aeabi_llsr) 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun subs r3, r2, #32 23*4882a593Smuzhiyun rsb ip, r2, #32 24*4882a593Smuzhiyun movmi al, al, lsr r2 25*4882a593Smuzhiyun movpl al, ah, lsr r3 26*4882a593Smuzhiyun ARM( orrmi al, al, ah, lsl ip ) 27*4882a593Smuzhiyun THUMB( lslmi r3, ah, ip ) 28*4882a593Smuzhiyun THUMB( orrmi al, al, r3 ) 29*4882a593Smuzhiyun mov ah, ah, lsr r2 30*4882a593Smuzhiyun ret lr 31*4882a593Smuzhiyun 32*4882a593SmuzhiyunENDPROC(__lshrdi3) 33*4882a593SmuzhiyunENDPROC(__aeabi_llsr) 34*4882a593Smuzhiyun.popsection 35