[RFC PATCH 2/3] ARM: iwmmxt: Port problematic iwmmxt support code to v7/Thumb-2
Dave Martin
dave.martin at linaro.org
Thu Sep 8 04:58:00 EDT 2011
On Wed, Sep 07, 2011 at 10:35:46PM +0200, Arnd Bergmann wrote:
> On Wednesday 07 September 2011 09:13:38 Eric Miao wrote:
> > >
> > > +/*
> > > + * When enough people have binutils which support -march=...+iwmmxt, this
> > > + * should change to #if __LINUX_ARM_ARCH__ < 7.
> > > + */
> > > +#ifndef CONFIG_THUMB2_KERNEL
> > > mrc p15, 0, r1, c2, c0, 0
> > > sub pc, lr, r1, lsr #32 @ cpwait and return
> > > +#else
> > > + isb @ ISB needed instead on ARMv7
> > > + mov pc, lr
> > > +#endif
> >
> > Or maybe using ARM() and THUMB() will be a better fit here?
>
> I think it would be logical to use XSC() and PJ4() instead, as those are used
> elsehere in this file. However, that doesn't work with the only binutils.
I take pj4 and older platforms can never be built in the same kernel?
Otherwise, this approach is totally broken anyway-- we'll generate code
which won't run on some of the kernel's supported platforms.
> If the !THUMB code above is actually correct for v7 in ARM mode (i.e. it performs
> the equivalent of an ISB), then I think we should leave it.
With the proposed change to use cc-option in the Makefile,
we have the option of using the v7 code whenever binutils supports
it, and printing a warning otherwise.
> It does look like it's whitespace broken though.
I'll double-check that.
Cheers
---Dave
More information about the linux-arm-kernel
mailing list