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

3.1.2. Основные регистры.

Набор из 128 (64-битных) регистров обеспечивает главный ресурс для всех целочисленных и мультимедиа- целочисленных вычислений. Они пронумерованы от GR0 до GR127 и доступны для всех программ на всех уровнях привилегий. Каждый основной регистр имеет 64 бита для хранения нормальных данных плюс дополнительный бит NaT (Not a Thing), который используется для отслеживания отложенных спекулятивных исключений.

Основные регистры разделены на два подмножества. Регистры от 0 до 31 называются статическими основными регистрами. Причем, GR0 сделан так, что если он является исходным операндом, то всегда читается как ноль, а попытка записи в GR0 вызовет ошибку «Запрещенная операция». Основные регистры с 32 по 127 называются стековыми основными регистрами. Стековые регистры делаются доступными для программ при выделении окна регистрового стека содержащего программируемое количество локальных и выходных регистров. Это описано в разделе 4.1 «Стек регистров». Части регистрового стека могут быть программно переименованы для ускорения циклов. См. раздел 4.5.1 «Поддержка модульно планируемых циклов».

Основные регистры от 8 до 32 содержат регистры IA-32 – целочисленные, селекторы и дескрипторы сегментов. Подробнее см. раздел 6.2.1 «Размещение общих регистров IA-32».

3.1.3. Регистры с плавающей точкой

Набор из 128 (82-битных) регистров с плавающей точкой используется для всех вычислений с плавающей точкой. Они пронумерованы от FR0 до FR127 и доступны для всех программ на всех уровнях привилегий. Регистры с плавающей точкой разделены на два подмножества. Регистры от 0 до 31 называются статические регистры с плавающей точкой. Причем, FR0 и FR1 являются специальными. При использовании в качестве исходного операнда, FR0 всегда читается как +0.0, а FR1 всегда читается как +1.0. Если любой из них использовать в качестве приемника, то вызывается ошибка. Отложенные спекулятивные исключения записываются в виде специального регистрового значения, которое называется NaTVal (Not a Thing Value).

Регистры с плавающей точкой от 32 до 127 называются ротируемыми регистрами с плавающей точкой. Эти регистры могут быть программно переименованы для ускорения циклов. См. раздел 4.5.1 «Поддержка модульно планируемых циклов».

Регистры с плавающей точкой от 8 до 32 содержат регистры IA-32 – с плавающей точкой и мультимедиа. Подробнее см. раздел 6.2.5 «Регистры с плавающей точкой IA-32».

3.1.4. Предикатные регистры

Набор из 64 (1-битных) предикатных регистров используется для хранения результатов инструкций сравнения. Эти регистры пронумерованы от PR0 до PR63 и доступны для всех программ на всех уровнях привилегий. Эти регистры используются для условного выполнения инструкций.

Предикатные регистры разделены на два подмножества. Предикатные регистры от 0 до 15 называются статические предикатные регистры. Причем, при использовании в качестве исходного операнда PR0 всегда читается как 1, а при использовании в качестве приемника результат игнорируется. Статические предикатные регистры также используются в условном ветвлении. См. раздел 4.3.1 «Предикация».

Предикатные регистры с 16 по 63 называются ротируемые предикатные регистры. Эти регистры могут быть программно переименованы для ускорения циклов. См. раздел 6.2.5 «Поддержка модульно планируемых циклов».

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