Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Question for the Crafty/Compiler experts

Author: Robert Hyatt

Date: 14:13:26 02/15/04

Go up one level in this thread


On February 15, 2004 at 16:31:04, Dann Corbit wrote:

>On February 15, 2004 at 16:29:42, Robert Hyatt wrote:
>
>>On February 15, 2004 at 16:20:48, Slater Wold wrote:
>>
>>>On February 15, 2004 at 16:10:55, Dann Corbit wrote:
>>>
>>>>On February 15, 2004 at 15:45:02, Slater Wold wrote:
>>>>
>>>>>My setup:
>>>>>
>>>>>AMD FX 51
>>>>>Windows 2003 Enterprise (64 bit)
>>>>>Intel 8.0 Compiler
>>>>>
>>>>>
>>>>>Why would compiling Crafty 19.10 be 15% slower when defining /DVC_INLINE_ASM &
>>>>>/DUSE_ASSEMBLY?
>>>>>
>>>>>Has anyone else ever seen that?
>>>>
>>>>It may mean that the compiler generated better assembly than you did.
>>>>
>>>>It may also mean that you pulled in the wrong assembly.  Old x86 assembly will
>>>>run on the AMD opteron type systems.  It is the new stuff that will really be
>>>>snappy.
>>>
>>>ICC doesn't seem to like Bob's assembly code to start off with.
>>>
>>
>>That is Eugene's code.  It is _specifically_ written for MSVC, not intel/gcc.
>>It will not have a prayer of compiling correctly.  Operands are backwards,
>>illegal instructions, etc...
>
>Since the AMD chips are backwards compatible, it will run.  Just slowly, since
>it does not use the 64 bit instructions.


Sorry, but you're on the wrong page, in the wrong book, in the wrong reference
library.  :)

msvc:

     mov    eax, x     ;  move x to eax

gcc/icc:

     mov    eax, x     ;  move eax to x.  Not exactly what you meant.

gcc/icc has no "dword ptr" nonsense either.  The syntax between MSVC/MASM and
gcc/gas is so different as to be like a comparison between C and FORTRAN.  They
have some similarities, but some significant differences...

No way to make it work as it is written for gcc, as the inlineamd.h was written
by me for the opteron where I had to use the gcc syntax.  To see what I mean,
compare my inlineamd.h to eugene's vcinline.h and you will think you are looking
at two completely different languages, although some of the opcodes have a
common "root".  (IE mov in masm vs movl for move long in gas).




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.