Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Question for the Crafty/Compiler experts

Author: Slater Wold

Date: 13:45:41 02/15/04

Go up one level in this thread


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)"




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.