Author: Andrew Dados
Date: 11:33:38 04/19/00
Go up one level in this thread
On April 19, 2000 at 14:28:33, Andrew Dados wrote: >On April 19, 2000 at 13:49:25, Dann Corbit wrote: > >>What is the fastest way to fill a linear array of bytes with zero, given the >>following conditions: >>1. Intel PII or higher CPU >>2. Guarantee that the number of bytes is an even number? >> >>I am porting a chess program, and memset() is the bottleneck. I don't need to >>memset an arbitrary character. It's always zero. > >for pure 32bit windoze (assuming es==ds): > >asm > mov edi, begin_address > mov ecx, count ; number of words to fill > xor eax,eax ; filling with 0x0000 > shr ecx,2 ; here carry gets set if count is not divisible by 4 > rep stosd > jnc @finito > stosw ; fill extra word if count mod 4 !=0 >@finito: >end; oeps.. count above is of course number of *bytes* to fill. if count was number of words, then shift ecx by 1 only.... -Andrew-
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.