Hi all, After we had some problems with inline assembly code in Nut/OS, Duane Ellis explained to us, why compiler optimization may cause trouble with inline assembler statements. http://www.egnite.de/pipermail/en-nut-discussion/2008-February/008947.html
I updated http://www.ethernut.de/en/documents/arm-inline-asm.html recently to publish the results. As this is all ARM stuff, you may want to concentrate on the chapter "C code optimization". Today I looked to avr-libc and found # define sei() __asm__ __volatile__ ("sei" ::) According to the document above, this may not work as expected. It should have been # define sei() __asm__ __volatile__ ("sei" :: "memory") In fact I couldn't find a single memory clobber in avr-libc 1.6.2. Did I overlook soemthing? Any comments are most welcome. Harald _______________________________________________ AVR-libc-dev mailing list AVR-libc-dev@nongnu.org http://lists.nongnu.org/mailman/listinfo/avr-libc-dev