Author: David Rasmussen
Date: 11:25:48 02/05/03
Go up one level in this thread
The problem with the normal version of Chezzz is that it uses this:
INLINE int PopCount(BitBoard a)
{
static const __int64 C55 = 0x5555555555555555;
static const __int64 C33 = 0x3333333333333333;
static const __int64 C0F = 0x0F0F0F0F0F0F0F0F;
__asm {
movd mm0, word ptr a;
punpckldq mm0, word ptr a + 4;
movq mm1, mm0;
psrld mm0, 1;
pand mm0, [C55];
psubd mm1, mm0;
movq mm0, mm1;
psrld mm1, 2;
pand mm0, [C33];
pand mm1, [C33];
paddd mm0, mm1;
movq mm1, mm0;
psrld mm0, 4;
paddd mm0, mm1;
pand mm0, [C0F];
pxor mm1, mm1;
psadbw mm0, mm1;
movd eax, mm0;
emms;
}
}
I know it doesn't work on very old processors, but I don't understand why it
doesn't work on Celeron, even the old Celeron. It has MMX, I think?
Any ideas?
/David
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.