Форматы данных и команды их обработки процессоров Pentium III, Pentium IV
Рефераты >> Программирование и компьютеры >> Форматы данных и команды их обработки процессоров Pentium III, Pentium IV

ORPS Логическое ИЛИ двух пакетов операндов

XORPS Исключающее ИЛИ двух пакетов операндов Перестановки операндов в ХММ

SHUFPS Перестановка слов в регистре ХММ под управлением 8-битного непосредственного операнда

UNPCKHPS Переупаковка старших половин с чередованием слов в результате

UNPCKLPS Переупаковка старших половин с чередованием слов в результате

Управление состоянием

LDMXCSR Загрузка регистра MXCSR

STMXCSR Сохранение регистра MXCSR

FXSAVE Сохранение состояния блоков FP/MMX и ХММ

FXRSTOR Восстановление состояния блоков FP/MMX и ХММ

Дополнительные целочисленные SIMD-инструкции (выполняются с операндами в регистрах ММХ, входят и в расширенный набор 3DNow!)

PAVGB/PAVGW Нахождение среднего упакованных беззнаковых байт или слов

PEXTRW Извлечение 16-битного слова из регистра ММХ в младшую половину 32-битного регистра (старшая половина обнуляется). Номер слова определяется младшими битами непосредственного операнда

PINSRW Помещение младшей половины 32-битного регистра в выбранное слово регистра ММХ. Номер слова определяется младшими битами непосредственного операнда

PMAXUB, PMAXSW Нахождение максимума упакованных беззнаковых байт/знаковых слов

PMINUB, PMINSW Нахождение минимума упакованных беззнаковых байт/знаковых слов

PMOVMSKB Сборка старших бит упакованных байт в 8-битную маску, помещаемую в целочисленный регистр

PMULHUW Умножение беззнаковых слов с сохранением старших половин произведений

PSADBW Нахождение суммы модулей разности пар слов (результат — 16-битное число)

PSHUFW Перемешивание слов под управлением 8-битного непосредственного операнда

Управление кэшированием (входят и в расширенный набор 3DNow!)

MASKMOVQ Выборочная запись байт из регистра ММХ в память, минуя кэш MOVNTQ Запись из регистра ММХ в память, минуя кэш

MOVNTPS Запись из регистра ХММ в память, минуя кэш (адрес должен быть

выровнен по границе параграфа)

PREFETCHTO Загрузка 32 или более байт в кэш-память

PREFETCHT1

PREFETCHT2

PREFETCHNT

SFENCE Выгрузка результатов всех предыдущих инструкций в кэш-память

Новые инструкции управления кэшированием обеспечивают запись содержимого регистров ММХ и ХММ в память, минуя кэш, что позволяет избегать "загрязнения" кэш-памяти промежуточными данными. Появилась и возможность "закачивать" требуемые данные в кэш прежде использующих их инструкций.

По сравнению с расширением 3DNow! набор инструкций SSE шире, часть инструкций пересекается, но и в 3DNow! имеются уникальные инструкции, не реализованные в SSE.

Инструкции SSE2 появились в процессорах Pentium 4. Большая их часть предназначена для работы с числами с плавающей точкой двойной точности (64-битные операнды), расположенными в регистрах ХММ, векторными (упакованная пара 64-битных чисел) и скалярными (старшим или младшим числом). Они обеспечивают векторные и скалярные пересылки этих чисел, арифметические инструкции (сложение, вычитание, умножение, деление, извлечение корня, нахождение максимума и минимума), сравнение чисел, преобразования форматов, перестановки операндов, а также побитные логические функции. Появились и SIMD-инструкции обработки 32- и 64-битных целых чисел, расположенных в регистрах ХММ. Новые инструкции управления кэшированием позволяют миновать кэш при записи в память из регистров ХММ и общих регистров, упорядочивать последовательности загрузки данных из памяти и записи в память и выполнять некоторые другие действия.

Таблица. Инструкции SSE2

Инструкция Описание

Инструкции пересылки данных (чисел с плавающей точкой двойной точности между регистрами ХММ, а также регистрами ХММ и памятью)

MOVAPD Пересылка пары упакованных выровненных чисел

MOVUPD Пересылка пары упакованных невыровненных чисел

MOVHPD Пересылка старшего упакованного числа

MOVLPD Пересылка младшего упакованного числа

MOVMSKPD Извлечение знаковой маски из пары чисел

MOVSD Пересылка скалярного числа

Арифметические инструкции над операндами с плавающей точкой двойной точности в регистрах ХММ

ADDPD Векторное сложение

ADDSD Скалярное сложение

SUBPD Векторное вычитание

SUBSD Скалярное вычитание

MULPD Векторное умножение

MULSD Скалярное умножение

DIVPD Векторное деление

DIVSD Скалярное деление

SQRTPD Векторное извлечение квадратного корня

SQRTSD Скалярное извлечение квадратного корня

MAXPD Векторное нахождение максимума

MAXSD Скалярное нахождение максимума

MINPD Векторное нахождение минимума

MINSD Скалярное нахождение минимума

Логические инструкции над упакованными 64-битными операндами в регистрах ХММ (побитные функции)

ANDPD Логическое И

ANDNPD Логическое И-НЕ

ORPD Логическое ИЛИ

XORPD Исключающее ИЛИ

Инструкции сравнения упакованных (векторных) и скалярных операндов с плавающей точкой двойной точности в регистрах ХММ с помещением результата в операнд-приемник или регистр EFLAGS

CMPPD Сравнение векторное

CMPSD Сравнение скалярное

COMISD Упорядоченное сравнение скалярных чисел с помещением результата в биты регистра EFLAGS (если хоть один из операндов QNaN или SNaN, генерируется исключение #I и EFLAGS не модифицируется)

UCOMISD Неупорядоченное сравнение (то же, но исключение #I генерируется только в случае SNaN)

Инструкции перестановок и распаковки операндов с плавающей точкой двойной точности в регистрах ХММ

SHUFPD Перестановка элементов в упакованных операндах

UNPCKHPD Распаковка и чередование старших элементов (в приемнике собираются старшие части операндов)

UNPCKLPD Распаковка и чередование младших элементов (в приемнике собираются младшие части операндов)

Инструкции преобразований в формат и из формата упакованных и скалярных чисел с плавающей точкой двойной точности

CVTPD2PI Преобразование упакованных чисел с плавающей точкой в упакованные целые (двойные слова)

CVTTPD2PI Преобразование с усечением упакованных чисел с плавающей точкой двойной точности в упакованные целые (двойные слова)

CVTP12PD Преобразование упакованных целых (двойных слов) в упакованные числа с плавающей точкой двойной точности

CVTPD2DQ Преобразование упакованных чисел с плавающей точкой в упакованные целые (двойные слова)

CVTTPD2DQ Преобразование с усечением упакованных чисел с плавающей точкой двойной точности в упакованные целые (двойные слова)

CVTDQ2PD Преобразование упакованных 32-битных целых в упакованные числа с плавающей точкой двойной точности

CVTPS2PD Преобразование упакованных чисел с плавающей точкой одинарной точности в числа двойной точности

CVTPD2PS Преобразование упакованных чисел с плавающей точкой двойной точности в числа одинарной точности

CVTSS2SD Преобразование скалярного числа с плавающей точкой одинарной точности в число двойной точности

CVTSD2SS Преобразование скалярного числа с плавающей точкой двойной точности в число одинарной точности

CVTSD2SI Преобразование скалярного числа одинарной точности в 32-битное целое


Страница: