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.