Author: Dezhi Zhao
Date: 14:24:00 02/21/03
Go up one level in this thread
On February 21, 2003 at 16:54:05, Dann Corbit wrote: >On February 21, 2003 at 10:56:50, Dezhi Zhao wrote: > >>On February 21, 2003 at 00:33:33, Eugene Nalimov wrote: >> >>>I believe you can slightly speedup the loop without unrolling the loop or >>>changing the algorithm -- actually code size would be exactly the same: >>> >>> mov BL,1 // work variable >>> mov EDX,... // pointer to move list table >>> mov ESI,-1 // pointer to highest value >>> jmp loop >>> >>>better: >>> mov BL,CL // value=move_value[x] >>> mov ESI,EDX // y=x >>> >>>loop: mov CL,move_value[EDX] // CL = move_value[x] >>> inc EDX // x++ >>> >>> cmp CL,BL // if (move_value[x] <= value) >>> jbe loop >>> >>> cmp CL,0FFh // if (move_value[x]==255) >>> jne better >>> >>>Thanks, >>>Eugene >>> >> >>inc edx should be replaced by add edx, 1 >>inc is slow on P4. > > <snip> >We find the Table C-7 IA-32 General Purpose Instructions > >which contains the following timings: > >Instruction Latency1 Throughput Execution Unit2 >ADC/SBB reg, imm 6 2 ALU >DEC/INC 1 0.5 ALU I think you put a wrong comparision here. From the same document, you will find: Instruction Latency1 Throughput Execution Unit2 DEC/INC 1 0.5 ALU ADD/SUB 0.5 0.5 ALU dzhao
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.