On Saturday, 22 November 2014 at 18:30:06 UTC, Ad wrote:
Hello, I would like to write a "popcnt" function. This works fine

ulong popcnt(ulong x)
{
asm { mov RAX, x ; popcnt RAX, RAX ; }
}

However, if I add the "naked" keyword ( which should improve performance? ) it doesn't work anymore and I can't figure out what change I am supposed to make ( aside from x[RBP] instead of x )
This function is going to be *heavily* used.

Thanks for any help.

Last time I used naked asm simply used the calling convention to figure out the location of the parameter (e.g. RCX win64, RDI linux 64, iirc.)
N.B. on LDC & GDC there is an intrinsic for popcnt.

Reply via email to