On Thu, May 15, 2014 at 03:09:03PM +0800, chenj wrote: > wsbh & movn are available on loongson3 CPU. > --- > arch/mips/lib/csum_partial.S | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/arch/mips/lib/csum_partial.S b/arch/mips/lib/csum_partial.S > index 6cea101..ed88647 100644 > --- a/arch/mips/lib/csum_partial.S > +++ b/arch/mips/lib/csum_partial.S > @@ -277,9 +277,12 @@ LEAF(csum_partial) > #endif > > /* odd buffer alignment? */ > -#ifdef CONFIG_CPU_MIPSR2 > +#if defined(CONFIG_CPU_MIPSR2) || defined(CONFIG_CPU_LOONGSON3) Is there some reason CPU_LOONGSON3 can't select CPU_MIPSR2? Thanks, Paul > + .set push > + .set arch=mips32r2 > wsbh v1, sum > movn sum, v1, t7 > + .set pop > #else > beqz t7, 1f /* odd buffer alignment? */ > lui v1, 0x00ff > @@ -726,9 +729,12 @@ LEAF(csum_partial) > addu sum, v1 > #endif > > -#ifdef CONFIG_CPU_MIPSR2 > +#if defined(CONFIG_CPU_MIPSR2) || defined(CONFIG_CPU_LOONGSON3) > + .set push > + .set arch=mips32r2 > wsbh v1, sum > movn sum, v1, odd > + .set pop > #else > beqz odd, 1f /* odd buffer alignment? */ > lui v1, 0x00ff > -- > 1.9.0 > >
Attachment:
signature.asc
Description: Digital signature