Hi,
I have a question regarding the reordering of statements involving a builtin function and extended asm volatile expressions in avr-gcc.
Consider the following code snippet:
//C++
{
asm volatile(/* template plus operands */);
__builtin_avr_delay_cycles(cycles);
asm volatile(/* template plus operands */);
}
I understand that the compiler is allowed to reorder statements as long as it doesn't affect the observable behavior of the program. However, in this specific case, the __builtin_avr_delay_cycles function is a compiler intrinsic.
Assuming there are no other expressions on the above block, is it possible for the compiler to reorder the three statements?
Cheers,
Ricardo Cosme