Registrovat jazyk přenosu - Register transfer language

Ve výpočetní technice je registrový přenosový jazyk ( RTL ) typem objektového kódu, což je druh přechodné reprezentace (IR), která je velmi blízká jazyku sestavení , jako je ten, který se používá v kompilátoru . To se používá k popisu toku dat na úrovni registru přenosu z k architektuře . Akademické práce a učebnice často používají formu RTL jako architektonicky neutrální montážní jazyk. RTL se používá jako název konkrétního zprostředkujícího zastoupení v několika kompilátorech, včetně GNU Compiler Collection (GCC), Zephyr a evropských překladačských projektů CerCo a CompCert .

Dějiny

Myšlenka RTL byla poprvé popsána v dokumentu The Design and Application of a Retargetable Peephole Optimizer .

GCC

V GCC je RTL generován z reprezentace GIMPLE , transformován různými průchody na středním konci GCC a poté převeden do montážního jazyka.

RTL GCC je obvykle psáno ve formě, která vypadá jako výraz Lisp S :

(set (reg:SI 140)
     (plus:SI (reg:SI 138)
              (reg:SI 139)))

Tento výraz vedlejších účinků říká „sečtěte obsah registru 138 s obsahem registru 139 a uložte výsledek do registru 140“. SI určuje režim přístupu pro každý registr. V příkladu je to „SImode“, tj. „Přístup k registru jako 32bitové celé číslo“.

Sekvence generovaného RTL má určitou závislost na charakteristikách procesoru, pro který GCC generuje kód. Význam RTL je však víceméně nezávislý na cíli: obvykle by bylo možné číst a porozumět části RTL, aniž byste věděli, pro jaký procesor byl vygenerován. Podobně význam RTL obvykle nezávisí na původním jazyce vysoké úrovně programu.

Jazyk pro přenos registrů je systém pro symbolické vyjádření sekvencí mikrooperace mezi registry digitálního modulu. Je to pohodlný nástroj pro výstižný a přesný popis vnitřní organizace digitálních počítačů. Lze jej také použít k usnadnění procesu návrhu digitálních systémů.

Reference

externí odkazy