I am agreement that ZW should have explained the "Rybka code" better
in the document (he had done so in forum posts, I think). If nothing else, it is an "Occam's Razor" explanation of the Rybka PST values, which can either be accepted or rejected by the reader. My own preference for presentation of this was the "templates" given in the RYBKA_FRUIT document.
My general attitude toward evidence presented by others was to let them speak in their own words, and not be overly critical about their phrasing, at least to the extent that I could understand what they meant. [I do the same with math papers: I had one incident where colleague X was annoyed that I had let co-author Y be rather cavalier in his statement for a press release -- if the press had quoted me, I would have been more careful].
On another note, I much prefer the 64-bit version, where
cvtsi2sd/
comisd do the loading/comparison in the
xmm registers:
Code: Select all
0x0000000000406c8a: movdqa %xmm6,-0x38(%rax) # save the xmm6 value
0x0000000000406c8f: xorpd %xmm6,%xmm6 # and set it to 0.0
[...]
0x0000000000406fb9: cvtsi2sd %ebx,%xmm0 # load "movetime" in xmm0
0x0000000000406fbd: test %eax,%eax # other instructions, from previous code block
0x0000000000406fbf: cmovne %edi,%r14d # ...
0x0000000000406fc3: test %eax,%eax # ...
0x0000000000406fc5: cmovne %esi,%r12d # ...
0x0000000000406fc9: mov 0x80(%rsp),%rsi # ...
0x0000000000406fd1: comisd %xmm6,%xmm0 # compare to 0.0
0x0000000000406fd5: movdqa 0x30(%rsp),%xmm6 # restore the xmm6 value
0x0000000000406fdb: jbe 0x406ff4 # jump if below-or-equal [as Wylie said]
0x0000000000406fdd: lea (%rbx,%rbx,4),%eax # multiply by 5
0x0000000000406fe0: imul $0x3e8,%ebx,%ebx # multiply by 1000
[...]
One can also note that the enusing
(time > 0) comparison is strict in the comparison, so most likely Rick Fadden was just wrong about
(movetime >= 0.0), when it should have been
(movetime > 0.0) (given the technical details of tracking this down, I don't necessarily blame him).
Gerd made a comment about the floating-point comparison back in 2008:
http://talkchess.com/forum/viewtopic.ph ... s&p=213809
I think the whole "0.0" question is a bit over-blown in any event (at least at this stage -- earlier, it was useful in giving investigators some sense that further investigation might not be a waste of time, somewhat like the
setjmp usage, I guess).