- •3. Исполнительная среда.
- •3.1. Состав прикладных регистров
- •3.1.1 Резервируемые и игнорируемые регистры и поля
- •3.1.2. Основные регистры.
- •3.1.3. Регистры с плавающей точкой
- •3.1.4. Предикатные регистры
- •3.1.5. Регистры переходов
- •3.1.6. Указатель инструкций.
- •3.1.7. Маркер текущего окна
- •3.1.8. Прикладные регистры
- •3.1.8.1. Регистры ядра (kr0-7 –ar0-7)
- •3.1.8.2. Регистр конфигурации стека регистров (rsc–ar16)
- •3.1.8.3. Указатель вспомогательной памяти rse(bsp–ar17)
- •3.1.8.10. Предыдущее функциональное состояние (pfs–ar64)
- •3.1.8.11. Регистр счетчика цикла (lc–ar65)
- •3.1.8.12. Регистр счетчика эпилога (ec–ar66)
- •3.1.9. Регистры данных мониторинга производительности (pmd)
- •3.1.10 Маска пользователя (um)
- •3.1.11. Регистры идентификации процессора
- •3.2. Память
- •3.2.1. Модель адресации прикладной памяти
- •3.2.2. Адресация блоков и выравнивание
- •3.2.3. Упорядочивание байтов
- •3.3. Обзор кодирования инструкций
- •3.4. Рассмотрение последовательности инструкций
- •3.4.1. Специальные случаи зависимости raw
- •3.4.2. Специальные случаи зависимости waw
- •3.4.3. Специальные случаи зависимости war
- •3.4.4. Поведение процессора при нарушениях зависимости
- •3.5. Неопределенное поведение
3.1.8. Прикладные регистры
Файл прикладных регистров включает в себя регистры данных специального назначения и управляющие регистры для видимых приложениями процессорных функций для наборов инструкций обоих архитектур, и для IA-32, и дляItanium. Эти инструкции могут быть доступныItanium-приложениям (кроме отмеченных здесь случаев). Таблица 3.3. содержит список прикладных регистров.
Табл.3.3. Прикладные регистры
Регистр |
Имя |
Описание |
ТИУ |
AR0-7 |
KR0-7* |
Регистры ядра (Kernel) 0-7 |
M |
AR8-15 |
|
Зарезервировано |
M |
AR16 |
RSC |
Регистр конфигурации стека регистров |
M |
AR17 |
BSP |
Указатель вспомогательной памяти (только для чтения) |
M |
AR18 |
BSPSTORE |
Указатель вспомогательной памяти для сохранений памяти |
M |
AR19 |
RNAT |
Сборный регистр NaT механизма RSE |
M |
AR20 |
|
Зарезервировано |
M |
AR21 |
FCR |
Регистр управления с плавающей точкой для IA-32 |
M |
AR22, 23 |
|
Зарезервировано |
M |
AR24 |
EFLAG** |
Регистр флагов для IA-32 |
M |
AR25 |
CSD |
Дескриптор сегмента кода для IA-32 |
M |
AR26 |
SSD |
Дескриптор сегмента стека для IA-32 |
M |
AR27 |
CFLG* |
Регистр, объединяющий CR0 и CR4 для IA-32 |
M |
AR28 |
FSR |
Регистр состояния с плавающей точкой для IA-32 |
M |
AR29 |
FIR |
Регистр инструкций с плавающей точкой для IA-32 |
M |
AR30 |
FDR |
Регистр данных с плавающей точкой для IA-32 |
M |
AR31 |
|
Зарезервировано |
M |
AR32 |
CCV |
Регистр значения сравнения и обмена |
M |
AR33-35 |
|
Зарезервировано |
M |
AR36 |
UNAT |
Сборный регистр NaT пользователя |
M |
AR37-39 |
|
Зарезервировано |
M |
AR40 |
FPSR |
Регистр состояния с плавающей точкой |
M |
AR41-43 |
|
Зарезервировано |
M |
AR44 |
ITC |
Счетчик интервала времени |
M |
AR45-47 |
|
Зарезервировано |
M |
AR48-63 |
|
Игнорируются |
M / I |
AR64 |
PFS |
Предыдущее функциональное состояние |
I |
AR65 |
LC |
Регистр счетчика циклов |
I |
AR66 |
EC |
Регистр счетчика эпилогов |
I |
AR67-111 |
|
Зарезервировано |
I |
AR112-127 |
|
Игнорируются |
M / I |
ТИУ – тип исполнительного устройства
* – запись в эти регистры при не нулевом уровне привилегий вызывает ошибку «Привилегированный регистр». Чтение всегда доступно.
** – при не нулевом уровне привилегий, запись в некоторые поля EFLAGIA-32 будет молча проигнорирована. Подробности см. в разделе 10.3.2. второго тома.
Прикладные регистры могут быть доступны исполнительным устройствам только M, либоI. Это указано в последней колонке таблицы. Игнорируемые регистры предназначены для совместимости сверху вниз с последующими расширениями.
Определение полей для каждого из прикладных IA-32 регистров, см. в разделе 10.2 во втором томе.