Registr odkazů - Link register

A registr odkazů je speciální účel Registrovat který obsahuje adresu, na kterou se má vrátit, když a funkce hovor je dokončen. To je efektivnější než tradičnější schéma ukládání návratů adresovaných na a zásobník volání, někdy nazývaný zásobník strojů. Registr odkazů nevyžaduje zápisy a čtení paměti obsahující zásobník, což může ušetřit značné procento času provádění opakovanými voláními malých podprogramů.

V mnoha případech se používá registr odkazů architektury instrukční sady, jako PowerPC, PAŽE, a PA-RISC. Další architektury (např SPARC ) mají registr se stejným účelem, ale s jiným názvem (v tomto případě "výstupní registr 7" nebo o7).[1]

Použití registru odkazů (nebo registru pro všeobecné účely, jak je tomu v některých jiných architekturách sady instrukcí) umožňuje rychlejší volání na listové podprogramy. Pokud je podprogram nelistový, předání zpáteční adresy v registru může stále vést k vygenerování efektivnějšího kódu pro thunks, např. pro funkci, jejíž jediným účelem je zavolat jinou funkci s nějakým způsobem přeskupenými argumenty. Jiné podprogramy mohou těžit z použití registru odkazů, protože je lze uložit v dávce s jinými volanými registry - např. podprogram ARM posílá registry 4-7 spolu s registrem spojení, LR, jedinou instrukcíSTMDB SP !, {R4-R7, LR} pipeline všechny potřebné zápisy do paměti.

Reference

  1. ^ „Dodatek k aplikacím RTEMS SPARC“ (PDF). Květen 2000. Citováno 2013-04-19.