
- •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.5. Неопределенное поведение
Архитектурно неопределенное поведение, которое применяется к одной или более инструкций перечислено ниже:
Регистровые зависимости RAW и WAW внутри одной и той же группы инструкций отвергаются, кроме тех, что были отмечены в разделе 3.4. Их поведение в группе инструкций не определено. Неопределенное поведение включает возможность ошибки «Неопределенная операция».
Чтение регистра вне заданных границ стекового окна основных регистров (которое заданно последним alloc, return или call) вернет неопределенный результат. В этой ситуации все процессоры не будут вызывать прерывание.
Неопределенный сценарий – это событие или последовательность событий, чей исход не определен в архитектуре. О поведении инструкций Itanium, см. главу 2 в томе 3: «Справочник набора инструкций». О поведении инструкцийIA-32, см. главу 2 «Описание набора инструкцийIA-32» в томе 3: «Справочник набора инструкций». Поэтому, результат неопределенного сценария зависит от нюансов выполнения. Пользователь не должен полагаться на это неопределенное поведение, даже если сейчас поведение программы корректно, то в будущем это может быть не так.