hm... looks like this been polished a while ago, but somehow 3.3 branch is not supported... The same code with current gcc-3.2.X will produce the code below.
cheers, ~d ------------------------------------------------- foo1: /* prologue: frame size = 0 */ .L__FrameSize_foo1=0x0 .L__FrameOffset_foo1=0x0 /* prologue end (size=0) */ add #llo(1), &cnt ; 9 *addhi3_3/3 [length = 2] jne .L1 ; 10 *cbranchhi [length = 1] add #llo(1), &ovf ; 11 *addhi3_3/3 [length = 2] .L1: ret ; 22 return [length = 1] /* epilogue: not required */ /* function foo1 size 6 (6) */ .Lfe1: .size foo1,.Lfe1-foo1 /********* End of function ******/ foo11 .p2align 1,0 .global foo11 .type foo11,@function /*********************** * Function `foo11' ***********************/ foo11: /* prologue: frame size = 0 */ .L__FrameSize_foo11=0x0 .L__FrameOffset_foo11=0x0 /* prologue end (size=0) */ mov &cnt, r15 ; 24 *movhi3/6 [length = 2] add #llo(11), r15 ; 9 *addhi3_3/8 [length = 2] mov r15, &cnt ; 11 *movhi3/1 [length = 2] jne .L3 ; 12 *cbranchhi [length = 1] add #llo(1), &ovf ; 13 *addhi3_3/3 [length = 2] .L3: ret ; 26 return [length = 1] /* epilogue: not required */ /* function foo11 size 10 (10) */ .Lfe2: .size foo11,.Lfe2-foo11 /********* End of function ******/ On Thursday 08 January 2004 10:18, Dmitry K. wrote: > Hi all, > > Funny programm: > > extern int cnt,ovf; > > void foo1 (void) > { > if (!++cnt) ++ovf; > } > > void foo11 (void) > { > if (!(cnt += 11)) ++ovf; > } > > Produce for foo1: > ... > mov &cnt, r15 > mov r15, r14 ; 1 word, 1 cycle > add #llo(1), r14 ; 1 word, 1 cycle > mov r14, &cnt > cmp #llo(-1), r15 ; 1 word, 1 cycle > jne .L1 > add #llo(1), &ovf > > and for foo11: > ... > mov &cnt, r15 > add #llo(11), r15 ; 2 words, 2 cycles > mov r15, &cnt > jne .L3 > add #llo(1), &ovf > > Compiler: 3.3.2 with patch from CVS/gcc/gcc-3.4 > > By the way, at a leisure I have checked up some other targets. mspgcc > appeared the only thing which has taken advantage of available flag Z > (in foo11). Not considering, certainly, pdp11 and m68k, the command > "mov" which develops this flag. > > Regards. > > > > ------------------------------------------------------- > This SF.net email is sponsored by: Perforce Software. > Perforce is the Fast Software Configuration Management System offering > advanced branching capabilities and atomic changes on 50+ platforms. > Free Eval! http://www.perforce.com/perforce/loadprog.html > _______________________________________________ > Mspgcc-users mailing list > Mspgcc-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/mspgcc-users -- /***************************************************************** ("`-''-/").___..--''"`-._ (\ Dimmy the Wild UA1ACZ `6_ 6 ) `-. ( ).`-.__.`) State Polytechnical Univ. (_Y_.)' ._ ) `._ `. ``-..-' Radio-Physics Departament _..`--'_..-_/ /--'_.' ,' Saint Petersburg, Russia (il),-'' (li),' ((!.-' +7 (812) 5403923, 5585314 *****************************************************************/