On Thu, Jul 13, 2017 at 5:37 PM, Segher Boessenkool <seg...@kernel.crashing.org> wrote: > 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); > Ah, I wasn't aware. That way is much more concise too :)
Thanks, Matt > > Segher