Re: [PATCH v3 19/24] C6X: headers

From: Mark Salter
Date: Thu Sep 29 2011 - 10:24:49 EST


On Wed, 2011-09-28 at 16:07 +0200, Arnd Bergmann wrote:
> On Tuesday 27 September 2011, Mark Salter wrote:
> > diff --git a/arch/c6x/include/asm/unaligned.h b/arch/c6x/include/asm/unaligned.h
> > new file mode 100644
> > index 0000000..1dcb006
> > --- /dev/null
> > +++ b/arch/c6x/include/asm/unaligned.h
> > @@ -0,0 +1,288 @@
> > +/*
> > + * Port on Texas Instruments TMS320C6x architecture
>
> This file basically just optimizes unaligned endianess conversion, but
> you don't provide an optimized swab.h, which is the regular endianess
> conversion.
>
> I think it would less code and more useful to provide your own swab.h
> and use the generic unaligned.h.
>

Ah, I missed swab.h which is a trivial optimization. We can do 1 cycle
swab16, 2 cycle swab32, and 3 cycle swab64.

I think we still want the c6x unaligned.h because the hardware can do
unaligned 32 and 64 memory accesses with no performance penalty. There
are some addressing mode limitations which is why the compiler doesn't
use them generally.

--Mark


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/