Author: Filip Tvrzsky
Date: 13:08:35 02/05/03
Go up one level in this thread
On February 05, 2003 at 14:25:48, David Rasmussen wrote: >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 The PSADBW instruction isn't component of the original MMX instruction set! It is available only in the SSE set (Intel Pentium III and better) or 3DNow! and MMX extensions set (AMD Athlon & Duron). Filip
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.