5.3. Ограничения поддержки MMX

На верх  Назад  Вперёд

В начале 1997 года инструкции MMX введены в процессоры Pentium, но многозадачность систем не распространялась на вновь введённые регистры MMX. Чтобы обойти эту проблему, Intel наложила регистры MMX на регистры FPU.

Следствием этого является то, что вы не можете смешивать операции MMX с операциями с плавающей точкой. После использования операций MMX и перед использованием операций с плавающей точкой, вы должны вызвать процедуру EMMS модуля MMX. Эта процедура восстанавливает регистры FPU.

ВНИМАНИЕ!

Компилятор не предупредит вас, если вы смешаете операции плавающей точки и MMX, поэтому будьте осторожны.

Инструкции MMX оптимизированы для мультимедийных операций. Поэтому их нельзя использовать для всех возможных операций: некоторые операции приведут к несоответствию типов, см. раздел 5.4. Поддерживаемые операции MMX Поддерживаемые операции MMX.

Важным ограничением является то, что операции MMX не выполняют проверку диапазона или переполнения, даже если вы включите эти проверки. Такова природа операций MMX.

Модуль MMX должен всегда использоваться, если выполняются операции MMX, потому что код выхода этого модуля очищает регистры MMX. Если этого не сделать, то другие программы могут быть нарушены. Следствием этого является то, что вы не можете использовать операции MMX в коде выхода вашего модуля или программы, так как они будут конфликтовать с кодом выхода модуля MMX. Компилятор не может это проверить, только вы отвечаете за это!