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.