Author: Dezhi Zhao
Date: 11:22:43 09/23/04
Go up one level in this thread
better, but still not. please refer to below On September 23, 2004 at 13:17:08, Bo Persson wrote: >On September 22, 2004 at 13:55:46, Dezhi Zhao wrote: > >>I'm really happy that bit operation instructions have become intrinsics for VC >>compiler in VS 2003 and later. >> >>However the output asm code is still not optimal. It generates a pair of >>redundant memory-register save and load instrucions. I also tested VC 2005 >>Express beta1. The same thing again.... >> > >Have you tried the "Tools Refresh" for Beta 1? > >http://www.microsoft.com/downloads/details.aspx?FamilyID=afd04ff1-9d16-439a-9a5e-e13eb0341923&displaylang=en > >Here is the output of the september release: > >; 18 : while(mask) > > 00006 85 f6 test esi, esi > 00008 74 1a je SHORT $LN1@testbsf > 0000a 8d 9b 00 00 00 > 00 npad 6 >$LL2@testbsf: > >; 19 : { >; 20 : unsigned long index; >; 21 : _BitScanForward(&index, mask); > > 00010 0f bc ce bsf ecx, esi > >; 22 : m1 = 1 << index; > > 00013 ba 01 00 00 00 mov edx, 1 > 00018 d3 e2 shl edx, cl > 0001a 89 4c 24 04 mov DWORD PTR _index$15120[esp+8], ecx The above store is of no use at all. > >; 23 : clone |= m1; > > 0001e 0b c2 or eax, edx > >; 24 : mask ^= m1; > > 00020 33 f2 xor esi, edx > 00022 75 ec jne SHORT $LL2@testbsf >$LN1@testbsf: > 00024 5e pop esi > >; 25 : } >; 26 : >; 27 : return clone; >; 28 : } > > >Already fixed! :-) > > >Bo Persson
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.