Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: ASM/Optimization

Author: Lance Perkins

Date: 10:58:54 12/06/05

Go up one level in this thread


On December 06, 2005 at 13:08:59, Zappa wrote:

>On December 06, 2005 at 01:32:58, Lance Perkins wrote:
>
>>int PawnForwardRotate[] = {8,64-8};
>>unsigned __int64 PawnForwardMask[] = {0xffffffffffffff00, 0x00ffffffffffffff};
>>
>>_rotl64 (bbPawns, PawnForwardRotate[color]) & PawnForwardMask[color];
>>
>>// pre-cond:
>>//    Rax = pawn bb
>>//    Rdx = color
>>
>>mov ecx, DWORD PTR PawnForwardRotate[Rdx*4]
>>rol rax, cl
>>and rax, QWORD PTR PawnForwardMask[Rdx*8]
>
>
>Hmm.  That certainly helps a lot.  You could do up to a 16 point shift with no
>problems, although there is another instruction.
>
>Just out of curiosity, is this in Thinker?
>
>anthony

Only on the 64-bit version of Thinker. The 32-bit compiler emits too much code.



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.