Hardware Reference
In-Depth Information
die Bedingung xy erfullt ist“ Ziel der Bedingten Befehle ist stets, bedingte
Sprunge zu vermeiden.
MMIX bietet die Bedingten Befehle Conditional Set CSxx und Zero or Set
ZSxx ,wobei xx fur eine der von den bedingten Sprungen her bekannten Be-
dingungen steht. Der Befehl CSxx $X,$Y,$Z setzt $X zu $Z , falls $Y die an-
gegebene Bedingung erfullt. Ansonsten lasst er $X unverandert. Der Befehl
ZSxx $X,$Y,$Z setzt demgegenuber das Register $X andernfalls zu null. In
vielen Fallen lassen sich dadurch Verzweigungen vermeiden. Wir betrachten
beispielsweise folgendes Struktogramm:
i==0
Ja
Nein
m j
m k
Das e zienteste MMIX -Programm dazu lautet:
SET m,j
CSNZ m,i,k
In diesem Zweizeiler wird m mit dem Wert von j vorbelegt, so als wurde
der linke Zweig ausgefuhrt. Nur, falls diese Belegung falsch ist, wird m mit
k uberschrieben. Es ist hier also keine bedingte Verzweigung erforderlich.
Ohne Unterbrechung des Programmflusses laufen immer zwei Befehle durch
die Pipeline. Einer davon wird unnotigerweise ausgefuhrt, aber das lasst sich
nicht vermeiden.
Das IA-64-Programmiermodell kennt 64 Ein-Bit-Register p0 ... p63 ,dieso
genannten Predication Register . Alle Vergleichsbefehle schreiben das Ergebnis
des Vergleichs in eines dieser Register. Die Ausfuhrung jedes Befehls kann von
jedem Predication Register abhangig gemacht werden. Beispiel:
cmp.eq p6,p0=r33,r32
(p6) add r34,r35
Hier vergleicht der erste Befehl die Register r32 und r33 miteinander. Das
Ergebnis des Vergleichs wird in Predication Register p6 abgelegt und das
Komplement in p0 4 . Die folgende Addition wird nur ausgefuhrt, wenn p6
den Wert eins enthalt.
Wir werden in Abschnitt 3.2.3 sehen, wie bedingte Sprungbefehle die Be-
fehlsausfuhrung beschleunigen konnen. Optimierende Compiler verwenden
Bedingte Befehle, wo immer moglich.
4 Das Predication Register p0 ist immer null und kann nicht uberschrieben wer-
den. Es mussen bei dem Vergleichsbefehl aber zwei Register fur den Wert und sein
Komplement angegeben werden.
Search WWH ::




Custom Search