naked popcnt function
safety0ff via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sat Nov 22 13:12:51 PST 2014
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.
More information about the Digitalmars-d-learn
mailing list