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