Also wie ich eben gelesen habe, bezieht sich RTL auf eine abstrakte Maschine!


Kennst du links oder dokumente wo man nachlesen kann wie diese funktionieren soll!

Ich habe eben ein weinig Probleme die Funktionsweise zu verstehen.


zum Beispiel

(insn 8 6 9 1 (set (reg:SI 61)
(mem/c/i:SI (plus:SI (reg/f:SI 53 virtual-incoming-args)
(const_int 4 [0x4])) [0 b+0 S4 A32])) -1 (nil) (nil))
wird ja der Wert der Variable b (die als zweites Arg. dieser Funktion) in das Reg61 geladen!


Code:
(insn 9 8 10 1 (parallel [
            (set (reg:SI 60)
                (plus:SI (mem/c/i:SI (reg/f:SI 53 virtual-incoming-args) [0 a+0 S4 A32])
                    (reg:SI 61)))
            (clobber (reg:CC 17 flags))
        ]) -1 (nil)
    (nil))
in diesem schritt wird dann der Wert der Variable a zum wert der Variable b addiert und dann in Reg60 gespeichert


nun meine Frage:
ist also die Funktionsweise dieser "RTL" Maschine gleich dem Funktionsprinzip der Maschine die dem Assemblercode zugrunde liegt. Also was ich wissen möchte ist, ob sie nur auf einem virtuellem stack arbeitet, so wie man im Assembler mit push and pop arbeitet, oder ex da unterschiede??


Gruss Matze