Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MProc / M8 / Исполнительная среда Itanium.doc
Скачиваний:
36
Добавлен:
16.04.2013
Размер:
340.48 Кб
Скачать

3.1.5. Регистры переходов

Набор из 8 (64-битных) регистров переходовиспользуется для хранения информации о ветвлении. Они пронумерованы отBR0 доBR7 и доступны для всех программ на всех уровнях привилегий. Эти регистры используются для создания целевых адресов переходов при непрямых переходах. Подробнее см. раздел 4.5 «Инструкции переходов».

3.1.6. Указатель инструкций.

Указатель инструкций (IP) хранит адрес связки содержащей текущую исполняемую инструкцию. Этот регистр может быть прочитан прямо с помощью инструкцииmov ip. Прямая запись вIPневозможна, но он увеличивается после выполнения инструкций и может быть установлен в новое значение при переходе. Поскольку связки инструкций являются 16-байтовыми и выровнены по 16-байтовой границе, то в младших четырех битахIPвсегда содержатся нули. См. раздел 3.3 «Обзор кодирования инструкций». При выполнении набора инструкцийIA-32,IPсодержит 32-битный виртуальный линейный адрес текущей выполняемой инструкцииIA-32, который дополнен нулями до 64 бит. ИнструкцииIA-32 выровнены на границу байта, поэтому младшие четыре битаIPпредназначены для выполнения инструкцийIA-32. Детальнее о выполнении набора инструкцийIA-32 см. раздел 6.2.2 «Указатель инструкцийIA-32».

3.1.7. Маркер текущего окна

Каждое окно стека основных регистров связано с маркером окна. Маркер окна описывает состав стека основных регистров. Маркер текущего окна (CFM–CurrentFrameMarker) хранит состав текущего окна стека. РегистрCFMне может быть прямо прочитан или записан (см. раздел 4.1 «Стек регистров»).

Маркер окна содержит размеры изменяемых кусочков плюс значения трех баз переименования регистров (используется в ротации регистров). Схема маркера окна дана на рис.3.2, а описание полей в табл.3.2.

При процедурном вызове, CFMкопируется в полеPFM(PreviousFrameMarker– маркер предыдущего окна) находящееся в регистреPFS(PreviousFunctionState– предыдущее функциональное состояние) (см. раздел 3.1.8.10). ВCFMзаписывается новое значение, соответствующее новому созданному стековому окну, без локальных или ротационных регистров, но с набором выходных регистров, которые являются выходными регистрами вызвавшей программы. Дополнительно все регистры базы переименованных регистров (RegisterRenameBase-RRB) устанавливаются в 0. См. раздел 4.5.1 «Поддержка модульно- планируемых циклов».

37

32

31

25

24

18

17

14

13

7

6

0

rrb.pr

rrb.fr

rrb.gr

sol

sor

sof

6

7

7

4

7

7

Рис.3.2. Формат маркера окна.

Таблица 3.2. Описание полей маркера окна.

Поле

Биты

Описание

sof

6:0

Размер окна стека

sor

13:7

Размер локальной части окна стека

sol

17:14

Размер ротационной части стекового окна (количество ротационных регистров равно 8 * sol)

rrb.gr

24:18

База переименования регистров для основных регистров

rrb.fr

31:25

База переименования регистров для регистров с плавающей точкой

rrb.pr

37:32

База переименования регистров для предикатных регистров

Соседние файлы в папке M8