On Thu, Feb 24, 2022 at 11:39:16PM +1100, Michael Ellerman wrote:
/* Calculate the parity of the value */
- asm ("popcntd %0,%1" : "=r" (parity) : "r" (val));
- asm (".machine "push"\n"
".machine \"power7\"\n"
"popcntd %0,%1\n"
".machine \"pop\"\n"
: "=r" (parity) : "r" (val));
This was actually present in an older CPU, but it doesn't really matter, this is fine.
popcntd was new on p7 (popcntb is the older one :-) ) And it does not matter indeed.
Segher