Hm...
the result will be like (optimization On , when Off, the asm is obvious):

        add     #llo(1), &count
        addc    #lhi(1), &count+2
        jne     .L1
        add     #llo(1), &bar
        addc    #lhi(1), &bar+2
.L1:
        ret

Is that wrong? ;)

~d


On Tue, 17 Sep 2002 08:51:20 -0500
"Bill Knight" <bi...@rosw.com> wrote:

> I'm a little hesitant in posting this...  I've been known to
> be wrong on occasion (quite a few, if you ask my wife).
> However, here goes anyway.  Given the following code fragment:
> 
> unsigned long count = 0;
> unsigned long bar = 0;
> 
> void foo(void)
> {
>   if (++count == 0)
>     bar++;
> }
> 
> 'bar' will be increment once for each increment of 'count' for
> as long as the upper byte of 'count' is zero.
> 
> I have followed this code at the assembly level using the
> simulator.  It doesn't look like the fault is with the simulator.
> The code appears to be checking ONLY if the upper byte of 'count'
> is zero.
> 
> -Bill Knight
> R O SoftWare
> 
> 
> 
> 
> -------------------------------------------------------
> Sponsored by: AMD - Your access to the experts on Hammer Technology! 
> Open Source & Linux Developers, register now for the AMD Developer 
> Symposium. Code: EX8664 http://www.developwithamd.com/developerlab
> _______________________________________________
> Mspgcc-users mailing list
> Mspgcc-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/mspgcc-users
> 
> 


/********************************************************************
     ("`-''-/").___..--''"`-._     (\   Dimmy the Wild      UA1ACZ
      `6_ 6  )   `-.  (     ).`-.__.`)  Enterprise Information Sys 
      (_Y_.)'  ._   )  `._ `. ``-..-'   Nevsky prospekt,   20 / 44
    _..`--'_..-_/  /--'_.' ,'           Saint Petersburg,   Russia
   (il),-''  (li),'  ((!.-'             +7 (812)  3468202, 5585314
 ********************************************************************/

Reply via email to