Allgemeine Form der Programme:
(let* ((r1 (...)) (r2 (...)) (r3 (...))) ... (r4 ...))für jeden Zeitpunkt ausrechnen: Menge der freien Register (= deren aktueller Wert nicht (mehr) benötigt wird)
nächstes Zuweisungsziel ist niedrigstes freies Register (andere Varianten sind denkbar)
vor jedem UP-Aufruf: register shuffle (damit die Argumente in R0,…, Rk stehen)