Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Move generation question for the big boys

Author: Sune Fischer

Date: 12:16:40 09/19/01

Go up one level in this thread


On September 19, 2001 at 14:40:37, Dominic C. Marcello wrote:

>accidently submitted before i was done anyway its just
>__forceinline And( long long b1, long long b2 ) {
>   long long ret;
>   __asm {
>      movq mm0, b1
>      pand b1, b2
>      movq ret, mm0
>   }
>   return ret;
>}
>
> only three instructions. More complicated things are obviously longer - for
>instance I have one inline function in assembly that sets a bit on all of the
>rotated bitboards. But most of my inline inline assembly functions are about 5
>or 6 unstructions long on average.

You can get that to compile in MSV C++?
I can't, I get errors on "__forceinline" and "long long".
I tried with:

__int64 And( __int64 b1, __int64 b2 ) {
   __int64 ret;
   __asm {
      movq mm0, b1
      pand b1, b2
      movq ret, mm0
   }
   return ret;
}

it does not compile either,
some "improper operand type" on the line "movq ret, mm0".

What version of MSVC++ are you using, do you link to specific libraries?

-S.



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.