Ссылка на регистр - Link register

А ссылка зарегистрироваться это специальный регистр который содержит адрес для возврата, когда функция звонок завершается. Это более эффективно, чем более традиционная схема хранения возврата, адресованная на стек вызовов, иногда называемый машинным стеком. Регистр связи не требует операций записи и чтения из памяти, содержащей стек, что может сэкономить значительный процент времени выполнения при повторных вызовах небольших подпрограмм.

Реестр ссылок используется во многих архитектуры наборов команд, Такие как PowerPC, РУКА, и PA-RISC. Другие архитектуры (например, SPARC ) имеют регистр с той же целью, но другое имя (в данном случае «выходной регистр 7» или o7).[1]

Использование регистра связи (или регистра общего назначения, как это делается в некоторых других архитектурах набора команд) позволяет быстрее обращаться к листовые подпрограммы. Когда подпрограмма не является листовой, передача адреса возврата в регистре все еще может привести к генерации более эффективного кода для thunks, например для функции, единственной целью которой является вызов другой функции с каким-либо образом переставленными аргументами. Другие подпрограммы могут получить выгоду от использования регистра связи, поскольку он может быть сохранен в пакете с другими регистрами, используемыми вызываемым пользователем, например. Подпрограмма ARM помещает регистры 4-7 вместе с регистром связи LR с помощью одной инструкцииSTMDB SP !, {R4-R7, LR} конвейерная обработка всей необходимой записи в память.

Рекомендации

  1. ^ «Дополнение к приложениям RTEMS SPARC» (PDF). Май 2000 г.. Получено 2013-04-19.