Author: h.g.muller
Date: 09:47:37 02/23/06
Go up one level in this thread
Well, at the moment you still are, because this is only at the stage of an idea,
and it will take some development to get in the pawn double move, e.p. capture
and castling...
Unfortunately the compiler I am using (gcc under cygwin) does not seem to know
CMOV. Even if I write something simple as
if(a==50)b=c;
it generates branches over a single ordinary MOV instruction:
cmpl $50, %eax
jne L1
movl %ecx, %ebx
L1:
Very inconvenient, but it is not that difficult to replace such jumps by hand in
the generated assembler file, to make
cmpl $50, %eax
cmovel %ecx, %ebx
Perhaps a newer version of gcc can do this, I will have a look. If not, I can
write an extra compiler 'pass' that does this automatically: process the
assembler source to look for any conditional branch jxx over a single movl
instruction, and then delete the line with the branch and replace the movl by
cmovxxl. The assembler seems to understand this all right.
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.