On Thu, Jul 13, 2017 at 01:25:46PM +1000, Matt Brown wrote:
> +static nokprobe_inline void do_bpermd(struct pt_regs *regs, unsigned long v1,
> +                             unsigned long v2, int ra)
> +{
> +     unsigned int idx, i;
> +     unsigned char perm;
> +
> +     perm = 0x0;
> +     for (i = 0; i < 8; i++) {
> +             idx = (v1 >> (i * 8)) & 0xff;
> +             if (idx < 64)
> +                     perm |= (v2 & (1 << idx)) >> (idx - i);

That doesn't work I think, the bit numbers ("idx") are big-endian?

> +     }
> +     regs->gpr[ra] = 0 | perm;

And that is just silly :-)

> +}


Segher

Reply via email to