Hello Marcel,

>> int                          sw = 4;
>> int dmy          = (sw == 77) ? 11 : 0x101;
>> global_var = dmy * ((sw >= 5) +1);

> >current_function_anonymous_args = 0
> > * 18 0000 0DC0A0E1                          mov        ip, sp
> > * 19 0004 00D82DE9                          stmfd    sp!, {fp, ip, lr, pc}
> > * 20 0008 04B04CE2                          sub        fp, ip, #4
> > * 21 000c 0B30A0E3                          mov        r3, #11          ; dmy = 
>constant 11
> 
> I have missed something? Here (above) should be 0x101, not 11 (dmy value).

Thanks for spotting this inconsistency.

The assembler output actually was generated with the messy heap of defines at
the end of my posting, where the comparison would have  been

dmy      = (sw & 77) ? 11 : 0x101;

and evaluated true (0x04 & 0x4D -> 0x04).

However, the result of the comparison has no effect on the bug.

I am sorry for the mistake, I just wanted to make the example as small as
possible.

Thanks again,
Regards, Klaus


--
Mobotix AG
Klaus Borchers
Luxemburgerstr. 6
D-67657 Kaiserslautern
Germany

Tel: +49 (631) 3033141
Fax: +49 (631) 3033190
E-Mail: [EMAIL PROTECTED]

_______________________________________________
http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm
Please visit the above address for information on this list.

Reply via email to