[PATCH 4/5] powerpc/lib/sstep: Add prty instruction emulation
Matt Brown
matthew.brown.dev at gmail.com
Fri Jul 14 10:46:20 AEST 2017
On Thu, Jul 13, 2017 at 5:37 PM, Segher Boessenkool
<segher at 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
More information about the Linuxppc-dev
mailing list