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

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 – Current Frame Marker) хранит состав текущего окна стека. Регистр CFM не может быть прямо прочитан или записан (см. раздел 4.1 «Стек регистров»).

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

При процедурном вызове, CFM копируется в поле PFM (Previous Frame Marker – маркер предыдущего окна) находящееся в регистре PFS (Previous Function State – предыдущее функциональное состояние) (см. раздел 3.1.8.10). В CFM записывается новое значение, соответствующее новому созданному стековому окну, без локальных или ротационных регистров, но с набором выходных регистров, которые являются выходными регистрами вызвавшей программы. Дополнительно все регистры базы переименованных регистров (Register Rename Base - 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