111b1a9b2SMarek Vasut/* Copyright 1995, 1996, 1998, 1999, 2000, 2003, 2004, 2005 211b1a9b2SMarek Vasut Free Software Foundation, Inc. 311b1a9b2SMarek Vasut 411b1a9b2SMarek Vasut * SPDX-License-Identifier: GPL-2.0+ 511b1a9b2SMarek Vasut */ 611b1a9b2SMarek Vasut 711b1a9b2SMarek Vasut#include <linux/linkage.h> 8*06b36cb7SMarek Vasut#include <asm/assembler.h> 911b1a9b2SMarek Vasut 1011b1a9b2SMarek Vasut#ifdef __ARMEB__ 1111b1a9b2SMarek Vasut#define al r1 1211b1a9b2SMarek Vasut#define ah r0 1311b1a9b2SMarek Vasut#else 1411b1a9b2SMarek Vasut#define al r0 1511b1a9b2SMarek Vasut#define ah r1 1611b1a9b2SMarek Vasut#endif 1711b1a9b2SMarek Vasut 18*06b36cb7SMarek VasutENTRY(__ashrdi3) 1911b1a9b2SMarek VasutENTRY(__aeabi_lasr) 2011b1a9b2SMarek Vasut 2111b1a9b2SMarek Vasut subs r3, r2, #32 2211b1a9b2SMarek Vasut rsb ip, r2, #32 2311b1a9b2SMarek Vasut movmi al, al, lsr r2 2411b1a9b2SMarek Vasut movpl al, ah, asr r3 25*06b36cb7SMarek Vasut ARM( orrmi al, al, ah, lsl ip ) 26*06b36cb7SMarek Vasut THUMB( lslmi r3, ah, ip ) 27*06b36cb7SMarek Vasut THUMB( orrmi al, al, r3 ) 2811b1a9b2SMarek Vasut mov ah, ah, asr r2 29*06b36cb7SMarek Vasut ret lr 30*06b36cb7SMarek Vasut 31*06b36cb7SMarek VasutENDPROC(__ashrdi3) 3211b1a9b2SMarek VasutENDPROC(__aeabi_lasr) 33