On Thu, Jul 13, 2017 at 01:25:47PM +1000, Matt Brown wrote:
> +static nokprobe_inline void do_prtyw(struct pt_regs *regs, unsigned long v,
> +                             int ra)
> +{
> +     unsigned long low, high, out;
> +     unsigned int i;
> +
> +     high = 0;
> +     low = 0;
> +     out = 0;
> +
> +     for (i = 0; i < 8; i++) {
> +             if (v & (1 << (i * 8)))

1UL

> +                     (i < 4) ? (low++) : (high++);
> +     }
> +
> +     if (low % 2)
> +             out |= low;
> +     if (high % 2)
> +             out |= (high << 32);

Only the low bit of each word of the output can be set.  Something
like

  out = ((high & 1) << 32) | (low & 1);


Segher

Reply via email to