Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: C++ question (OT)

Author: Larry Griffiths

Date: 09:30:21 01/21/01

Go up one level in this thread


On January 20, 2001 at 14:13:47, Paul wrote:

>On January 19, 2001 at 21:52:10, Larry Griffiths wrote:
>
>>I also like the VCL, Paul.  I have resorted to using #defines a lot and writing
>>inline assembler whenever possible.  I have been using a lot of MMX instructions
>>lately and my program may only run on Pentium II or higher machines in the near
>>future.
>
>Hi Larry ...
>
>Yes, I remember having seen you post some asm #defines last year, right?
>So, basically, you're the missing optimizing part of the BCB compiler :)

The optimizing capability of the BCB compiler sucks!  My inline asm has extra
NOP instructions that do not serve any purpose other than to slow my code down.
BCB 5 has severe alignment problems when using __int64.  It does not align them
to quadwords so I have to do it by hand.  MMX takes bad performance hits when
the variables are not aligned on quadwords.  This also applys to creating
instances of classes.  I created a seperate assembler module at one time that
contained "Align" statements, but the ILINK32 seems to ignore these and aligns
everything to doubleword boundrys.


>Maybe you should offer your services to Borland ;) Also you are one of very
>few using MMX instructions, I believe, haven't seen much of that here!
>

I seem to get a lot better performance using the MMX instructions.  MMX
registers cannot be tested for values since they don't set conditions codes.  I
could increase performance if this was available.  They also force the
destinations to be a MMX register, so you have to load a register, perform an
operation, then store it.  This is also a performance hit.

>I have to admit that I've not yet used any asm within BCB, for a couple
>of reasons. For one, I use old GNU style move generation, and the 64bit
>bitboards that you use lend themselves better for asm.
>
>Secondly, I don't like programming assembler on the Pentium, mainly because
>the number of different instructions is so huge, and the number of registers
>is so low! I did program in assembler ~10 years ago on the ARM processor,
>now that was an architecture I liked! No more than 10 instructions and 16
>32bit registers. Maybe Ed (of Rebel fame) would agree with me :) I wish
>they would scale up the current StrongARM to >1GHz and make it 64 bits; I
>would start with bitboards immediately :) WinCE already runs on it,
>I believe.

I really liked the IBM 370 instruction set.  It has 16 registers and was very
logically designed.

>
>What does your program look like: did you build a GUI with BCB5 around
>your engine or is the engine integrated in the GUI .exe like mine? I do
>have a separate engine class, but it's all in one program.
>

I used to have a GUI in the previous version, but I re-wrote it to use
full-blown bitboards so my old GUI is broken right now.  I have created several
classes in my program and interfaced to Winboard so I could play against other
programs without having to use the mouse.

>I still have to make mine WinBoard compatible, but am not sure how to do
>that. Mainly use it for analysis, not for playing games ...
>
>Groetjes,
>Paul



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.