Author: Gerd Isenberg
Date: 13:58:32 07/05/03
Go up one level in this thread
Hi Russell,
nice test, but in a chessprogram codesize matters more than inside a single
loop.
My output on AMD xp2.8+:
nothing 3951541892 4.396
abs() 1713113360 5.838
cmovs_abs() 1713113360 7.300
cmovl_abs() 1713113360 7.301
cdq_abs() 1713113360 7.340
omid_abs() 1713113360 7.902
sar_abs() 1713113360 8.282
sbb_abs() 1713113360 8.402
fish_abs() 1713113360 12.568
simple_abs() 1713113360 16.063
with inlined abs functions:
nothing 3951541892 4.346
omid_abs() 1713113360 5.779!
abs() 1713113360 5.798
cmovl_abs() 1713113360 6.359
sbb_abs() 1713113360 6.389
cmovs_abs() 1713113360 6.419
sar_abs() 1713113360 6.549
cdq_abs() 1713113360 6.770
simple_abs() 1713113360 9.323
fish_abs() 1713113360 10.996
if you put
__asm int 3
before abs() you may inspect the assembler output:
00401026 99 cdq
00401027 33 C2 xor eax,edx
00401029 2B C2 sub eax,edx
but the inlined __asm cdq_abs sucks because of parameter passing:
004011F5 89 44 24 0C mov dword ptr [esp+0Ch],eax
004011F9 8B 44 24 0C mov eax,dword ptr [esp+0Ch]
004011FD 99 cdq
004011FE 33 C2 xor eax,edx
00401200 2B C2 sub eax,edx
Regards,
Gerd
This page took 0.01 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.