Hallo,

ich habe ein Problem mit dem Inline-Assembler vom AVR-GCC 4.0.1. Ohne Optimierung übersetzt läuft alles einwandfrei und der Code funktioniert. Wenn man die Optimierung jedoch einschaltet, dann erzeugt er Unsinn. Ich habe das Problem auf folgendes reduzieren können:

Code:
{
uint8_t colcntr8;
uint8_t end8 = 253;

asm volatile(
   "cp     %0, %1" "\n\t" : : "r" (colcntr8), "r" (end8) );
}
Der AVR-GCC erzeugt (Target-MCU ATmega12 ohne Optimierung:
cp r25, r24
Mit Optimierung erzeugt er jedoch:
cp r24, r24
Also für meine Zwecke nicht so sinnvoll.

Was kann/soll ich tun, damit der Code auch mit Optimierung sinnvoll ist?

Danke im Voraus
- cl