Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Question for the Crafty/Compiler experts

Author: Dann Corbit

Date: 13:46:49 02/15/04

Go up one level in this thread


On February 15, 2004 at 16:45:41, Slater Wold wrote:

>On February 15, 2004 at 16:29:51, Dann Corbit wrote:
>
>>On February 15, 2004 at 16:25:36, Slater Wold wrote:
>>
>>>On February 15, 2004 at 16:21:56, Dann Corbit 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.
>>>>>
>>>>>
>>>>>vcinline.h(28): warning #1011: missing return statement at end of non-void funct
>>>>>ion "PopCnt"
>>>>>  }
>>>>>  ^
>>>>>
>>>>>vcinline.h(41): warning #1011: missing return statement at end of non-void funct
>>>>>ion "FirstOne"
>>>>>  }
>>>>>  ^
>>>>>
>>>>>vcinline.h(54): warning #1011: missing return statement at end of non-void funct
>>>>>ion "LastOne"
>>>>>  }
>>>>>  ^
>>>>
>>>>Compiler bug.  It does not recall that the return is stored in EAX.
>>>>
>>>>Print the rest of the routine that it is crying about.  I am guessing it is
>>>>pulling in the wrong assembly.
>>>
>>>That's the only thing.  I don't know enough about assembly to know what the hell
>>>is going on.  :)
>>
>>I don't know where Bob's AMD 64 assembly is.  Probably a .s file, since he uses
>>GCC (or maybe he is using Intel now -- not sure).
>
>tst.s?
>
>
>	.file	"tst.c"
>.globl ans
>	.data
>	.align 4
>	.type	ans,@object
>	.size	ans,4
>ans:
>	.long	-1
>	.section	.rodata.str1.1,"aMS",@progbits,1
>.LC0:
>	.string	"val? "
>.LC1:
>	.string	"%d"
>.LC2:
>	.string	"ans=%d\n"
>	.text
>.globl main
>	.type	main,@function
>main:
>	pushl	%ebp
>	movl	%esp, %ebp
>	pushl	%edi
>	pushl	%esi
>	pushl	%ebx
>	subl	$12, %esp
>	andl	$-16, %esp
>	subl	$12, %esp
>	pushl	$.LC0
>	call	printf
>	addl	$8, %esp
>	leal	-24(%ebp), %eax
>	pushl	%eax
>	pushl	$.LC1
>	call	scanf
>	addl	$8, %esp
>ZZ: Command not found.
>	movl	%ebx, %edx
>#APP
>	        xorl    %ebx, %ebx
>	        testl   %edx, %edx
>	        jz      2f
>	1:      leal    -1(%edx), %eax
>	        incl    %ebx
>	        andl    %eax, %edx
>	        jnz     1b
>	2:      testl   %ecx, %ecx
>	        jz      4f
>	3:      leal    -1(%ecx), %eax
>	        incl    %ebx
>	        andl    %eax, %ecx
>	        jnz     3b
>	4:      movl    %ebx,ans
>
>#NO_APP
>	pushl	%ebx
>	pushl	$.LC2
>	call	printf
>	addl	$8, %esp
>	pushl	ans
>	pushl	$.LC2
>	call	printf
>	leal	-12(%ebp), %esp
>	popl	%ebx
>	popl	%esi
>	popl	%edi
>	leave
>	ret
>.Lfe1:
>	.size	main,.Lfe1-main
>	.ident	"GCC: (GNU) 3.2.2 20030222 (Red Hat Linux 3.2.2-5)"

Nope.  That is 32 bit assembly.

Ask Robert and he can tell you want file to use.



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.