[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 2/5] xen/arm: introduce __lshrdi3 and __aeabi_llsr



On Thu, 9 Aug 2012, Ian Campbell wrote:
> On Mon, 2012-08-06 at 15:12 +0100, Stefano Stabellini wrote:
> > Taken from Linux.
> > 
> > Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
> 
> Any idea what lshrdi means?

I am not sure TBH, but it is one of the needed libgcc functions.


> Anyway, given that this is presumably required by code which gcc
> generates and that it comes direct from Linux:
> 
> Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
> 
> and pushed to my arm-for-4.3 branch.
> 
> > ---
> >  xen/arch/arm/lib/Makefile  |    2 +-
> >  xen/arch/arm/lib/lshrdi3.S |   54 
> > ++++++++++++++++++++++++++++++++++++++++++++
> >  2 files changed, 55 insertions(+), 1 deletions(-)
> >  create mode 100644 xen/arch/arm/lib/lshrdi3.S
> > 
> > diff --git a/xen/arch/arm/lib/Makefile b/xen/arch/arm/lib/Makefile
> > index cbbed68..4cf41f4 100644
> > --- a/xen/arch/arm/lib/Makefile
> > +++ b/xen/arch/arm/lib/Makefile
> > @@ -2,4 +2,4 @@ obj-y += memcpy.o memmove.o memset.o memzero.o
> >  obj-y += findbit.o setbit.o
> >  obj-y += setbit.o clearbit.o changebit.o
> >  obj-y += testsetbit.o testclearbit.o testchangebit.o
> > -obj-y += lib1funcs.o div64.o
> > +obj-y += lib1funcs.o lshrdi3.o div64.o
> > diff --git a/xen/arch/arm/lib/lshrdi3.S b/xen/arch/arm/lib/lshrdi3.S
> > new file mode 100644
> > index 0000000..3e8887e
> > --- /dev/null
> > +++ b/xen/arch/arm/lib/lshrdi3.S
> > @@ -0,0 +1,54 @@
> > +/* Copyright 1995, 1996, 1998, 1999, 2000, 2003, 2004, 2005
> > +   Free Software Foundation, Inc.
> > +
> > +This file is free software; you can redistribute it and/or modify it
> > +under the terms of the GNU General Public License as published by the
> > +Free Software Foundation; either version 2, or (at your option) any
> > +later version.
> > +
> > +In addition to the permissions in the GNU General Public License, the
> > +Free Software Foundation gives you unlimited permission to link the
> > +compiled version of this file into combinations with other programs,
> > +and to distribute those combinations without any restriction coming
> > +from the use of this file.  (The General Public License restrictions
> > +do apply in other respects; for example, they cover modification of
> > +the file, and distribution when not linked into a combine
> > +executable.)
> > +
> > +This file is distributed in the hope that it will be useful, but
> > +WITHOUT ANY WARRANTY; without even the implied warranty of
> > +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> > +General Public License for more details.
> > +
> > +You should have received a copy of the GNU General Public License
> > +along with this program; see the file COPYING.  If not, write to
> > +the Free Software Foundation, 51 Franklin Street, Fifth Floor,
> > +Boston, MA 02110-1301, USA.  */
> > +
> > +
> > +#include <xen/config.h>
> > +#include "assembler.h"
> > +
> > +#ifdef __ARMEB__
> > +#define al r1
> > +#define ah r0
> > +#else
> > +#define al r0
> > +#define ah r1
> > +#endif
> > +
> > +ENTRY(__lshrdi3)
> > +ENTRY(__aeabi_llsr)
> > +
> > +   subs    r3, r2, #32
> > +   rsb     ip, r2, #32
> > +   movmi   al, al, lsr r2
> > +   movpl   al, ah, lsr r3
> > + ARM(      orrmi   al, al, ah, lsl ip      )
> > + THUMB(    lslmi   r3, ah, ip              )
> > + THUMB(    orrmi   al, al, r3              )
> > +   mov     ah, ah, lsr r2
> > +   mov     pc, lr
> > +
> > +ENDPROC(__lshrdi3)
> > +ENDPROC(__aeabi_llsr)
> 
> 
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.