I changed the code to

   asm volatile("sbi 0x14, 4"::);
   atn_rad = atan2(cos_rad,sin_rad);
   asm volatile("cbi 0x14, 4"::);

and the compiler still reordered the statements to put both the sbi
and cbi statements before the atan().

Changing atan2() to asin() or acos() gives the same incorrect result.

Changing atan2() to sin() keeps the statements in the correct order.

tomdean


_______________________________________________
AVR-GCC-list mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/avr-gcc-list

Reply via email to