[F] GCC Optimierung

Gast #3073304
Lesenswert?
• ▲
▼
Unten ein Codeauszug, bei dem ich meine, dass der GCC (avr-gcc (WinAVR 
20100110) 4.3.3) Optimierungen (Stufe S(ize)) nicht oder nicht 
vollständig durchführt.

*1 Da in R24 der Wert schon steht, braucht er nicht extra gelesen 
werden.

*2 SUBI setz das Z-Flag, so dass der Testvefehl überflüssig ist.

Sehe ich das richtig?



54:          --timeout;
+000001F0:   8189        LDD       R24,Y+1        Load indirect with 
displacement
+000001F1:   5081        SUBI      R24,0x01       *2 Subtract immediate
+000001F2:   8389        STD       Y+1,R24        *1 Store indirect
55:          if (timeout == 0)
+000001F3:   8189        LDD       R24,Y+1        *1 Load indirect
+000001F4:   2388        TST       R24            *2 Test for Zero or 
Minus
+000001F5:   F099        BREQ      PC+0x14        Branch if equal

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.