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" <[email protected]> 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
> [email protected]
> 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
********************************************************************/