Back to home page

OSCL-LXR

 
 

    


0001 /* Copyright 1995, 1996, 1998, 1999, 2000, 2003, 2004, 2005
0002    Free Software Foundation, Inc.
0003 
0004 This file is free software; you can redistribute it and/or modify it
0005 under the terms of the GNU General Public License as published by the
0006 Free Software Foundation; either version 2, or (at your option) any
0007 later version.
0008 
0009 In addition to the permissions in the GNU General Public License, the
0010 Free Software Foundation gives you unlimited permission to link the
0011 compiled version of this file into combinations with other programs,
0012 and to distribute those combinations without any restriction coming
0013 from the use of this file.  (The General Public License restrictions
0014 do apply in other respects; for example, they cover modification of
0015 the file, and distribution when not linked into a combine
0016 executable.)
0017 
0018 This file is distributed in the hope that it will be useful, but
0019 WITHOUT ANY WARRANTY; without even the implied warranty of
0020 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0021 General Public License for more details.
0022 
0023 You should have received a copy of the GNU General Public License
0024 along with this program; see the file COPYING.  If not, write to
0025 the Free Software Foundation, 51 Franklin Street, Fifth Floor,
0026 Boston, MA 02110-1301, USA.  */
0027 
0028 
0029 #include <linux/linkage.h>
0030 #include <asm/assembler.h>
0031 
0032 #ifdef __ARMEB__
0033 #define al r1
0034 #define ah r0
0035 #else
0036 #define al r0
0037 #define ah r1
0038 #endif
0039 
0040 ENTRY(__lshrdi3)
0041 ENTRY(__aeabi_llsr)
0042 
0043     subs    r3, r2, #32
0044     rsb ip, r2, #32
0045     movmi   al, al, lsr r2
0046     movpl   al, ah, lsr r3
0047  ARM(   orrmi   al, al, ah, lsl ip  )
0048  THUMB( lslmi   r3, ah, ip      )
0049  THUMB( orrmi   al, al, r3      )
0050     mov ah, ah, lsr r2
0051     ret lr
0052 
0053 ENDPROC(__lshrdi3)
0054 ENDPROC(__aeabi_llsr)