[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