Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Chezzz 1.0.1 - problem solved - for David Rasmussen

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.