Прерывания и особые ситуации: Приоритеты SIMD-исключений

Печать
Программирование - Архитектура и система команд микропроцессоров x86

 

При возникновении в одной операции сразу нескольких SIMD-исключений, как правило (кроме оговоренных в описании исключений случаев), устанавливается только флаг исключения с большим приоритетом.

Приоритеты SIMD-исключений аналогичны приоритетам исключений FPU и распределены следующим образом.

  1. "Недействительная операция".
  2. Операнд QNaN. Данный случай не является исключением, но он может маскировать исключения с меньшим приоритетом, например, деление QNaN на нуль не вызывает исключения "деление на нуль", а возвращает результатом QNaN.
  3. "Деление на нуль".
  4. "Денормализованный операнд", если замаскировано, то дает возможность к возникновению исключений с меньшим приоритетом.
  5. "Переполнение" и "антипереполнение".
  6. "Неточный результат".

Сперва генерируются исключения, вызываемые некорректными операндами, а затем исключения, вызываемые проблемами при вычислениях и некорректным результатом.