Author: Bo Persson
Date: 10:17:08 09/23/04
Go up one level in this thread
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 ; 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.