Author: Arshad F. Syed
Date: 18:04:54 12/01/02
Go up one level in this thread
I am not much of an expert on this, since I am just starting to get into
assembly programming. But I was curious about the dword used here, which implies
to me you are doing 32-bit stuff. Wouldn't it make life simpler to just get an
Itanium processor and switch to 64-bit code, which would cut down the cycles
used.
Regards,
Arshad
On December 01, 2002 at 17:05:06, Gerd Isenberg wrote:
>oups, something shorter and faster:
>
>int getBitIndex(BitBoard singleBit)
>{
> __asm
> {
> pxor mm2, mm2 ; 0
> movd mm0, [singleBit]
> punpckldq mm0, [singleBit+4]
> pcmpeqd mm6, mm6 ; -1
> pxor mm7, mm7 ; 0
> pcmpeqd mm2, mm0 ; ~mask of the none zero dword
> PI2FD mm1, mm0 ; 3f8..,400..
> pxor mm2, mm6 ; mask of the none zero dword
> psrlq mm6, 63 ; 01
> psrld mm1, 23 ; 3f8 to 7f
> psrld mm2, 25 ; 7f mask
> psllq mm6, 32+5 ; 20:00
> psubd mm1, mm2 ; - 7f mask
> por mm1, mm6 ; + 32 in high dword
> pand mm1, mm2 ; & 7f mask
> psadbw mm1, mm7 ; add all bytes
> movd eax, mm1
> }
>}
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.