Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: crafty and cygnus Code Fusion

Author: Michel Langeveld

Date: 13:05:03 10/24/99

Go up one level in this thread


On October 24, 1999 at 12:34:09, Hristo wrote:

>On October 24, 1999 at 12:02:17, Michel Langeveld wrote:
>
>>>You are absolutely correct.
>>>hash.c 12438  -> 297 lines in C
>>>The errors seem to come from the assembler ...
>>>then the line numbers are different, bizare.
>>>
>>>I want to get the assemebly code going now ...
>>>so we can check it out ...
>>
>>Ok let me know if you are ready (rudolf@stad.dsl.nl)
>>
>>I also noticed in Deja in some linux newsgroups that the warnings can be
>>ingnored. But I want to check it out for sure...
>>
>>Do you only get warnings like this or do you also got other warnings/errors?
>
>no errors. Only those warnings.
>
>hristo

After you email the assembly Cygnus of hash.c I came to the folowing conclusing:
-all the line numbers which are warned are 2 kind of instructiongs:
 1) xchgw %eax,lock_hasha
 2) xchgw %eax,lock_hashb

-xchgw is an instructing which expect an 16bit var.
 eax and lock_hashb are both 32-bit (lock_hasha for example is of type lock_t
and lock_t is of type int, which is 4 byte on intel 32bit)

so the instruction to be used has to be xchgl instead of xchgw.

The compiler warns about this and said it will use ax instead of eax. This is
not entirely correct since ax can only contain the least signigicant part of
eax. So works only as long lock_hasha doesn't exceed the 65536.

I don't have cygnus home here. So I can't try for myself. Maybe you can fix this
kind of error with some kind of compiler patch and or compiler option.

Kind regards,

Michel Langeveld



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.