Команды SSE ( начиная с Pentium III )
Если хотя бы один из сравниваемых элементов операндов содержит значение QNaN или SNaN, флаги устанавливаются в "несравнимы" и генерируется исключение. Согласно стандарту IEEE, величина QNaN определяется как любое нечисловое значение (NaN), у которого старший бит мантиссы равен 1. Величина SNaN определяется как любое нечисловое значение (NaN), у которого старший бит мантиссы равен 0, а хотя бы один из оставшихся битов мантиссы содержит 1. Если все биты мантиссы равны 0, то величина считается равной бесконечности. SNaN обычно используется для активизации обработчика исключений.
UCOMISS xmm, xmm/m | команда выполняет те же действия, что и команда COMISS xmm, xmm/m. Разница заключается в обработке нечисловых операндов. Для операндов типа SNaN команда генерирует исключение, а для операндов типа QNaN - нет. Флаги устанавливаются в значение "несравнимы" в каждом из случаев. | |||||
CVTPS2PI mm, xmm/m | команда преобразует FP-числа из двух младших элементов входного операнда в целые 32-разрядные числа со знаком, записываемые в два элемента выходного MMX-регистра. При необходимости результаты округляются в соответствии со значением поля RC в регистре MXCSR. | |||||
CVTSS2SI ir32, xmm/m | команда преобразует одно FP-число, содержащееся в младшем элементе входного операнда, в целое 32-разрядное число со знаком, записываемое в выходной целочисленный регистр. При необходимости результат округляется в соответствии со значением поля RC в регистре MXCSR. | |||||
CVTTPS2PI mm, xmm/m | команда преобразует FP-числа из двух младших элементов входного операнда в целые 32-разрядные числа со знаком, записываемые в два элемента выходного MMX-регистра. Когда необходимо округление, дробная часть результата отбрасывается, без учета значения поля RC в регистре MXCSR. Используйте эту команду для преобразований, где при округлении требуется только отбрасывание дробной части. | |||||
CVTTSS2SI ir32, xmm/m | команда преобразует одно FP-число, содержащееся в младшем элементе входного операнда, в целое 32-разрядное число со знаком, записываемое в выходной целочисленный регистр. Когда необходимо округление, дробная часть результата отбрасывается, без учета значения поля RC в регистре MXCSR. Используйте эту команду для преобразований, где требуется только отбрасывание дробной части при округлении. | |||||
CVTPI2PS xmm, mm/m | команда преобразует два 32-разрядных целых числа со знаком в два FP-числа, записываемые в два младших элемента выходного XMM-регистра. Два старших элемента выходного регистра не изменяются. | |||||
CVTSI2SS xmm, ir32/m | команда преобразует 32-разрядное целое число со знаком в FP-число, записываемое в младший элемент выходного XMM-регистра. Три старших элемента выходного регистра не изменяются. | |||||
PEXTRV ir32, mm, imm | команда копирует 16-разрядное слово, на которое указывают два младших разряда непосредственного операнда, из MMX-регистра в целочисленный регистр. Старшие 16 разрядов целочисленного регистра заполняются нулями. | |||||
PINSRW mm, ir32/m, imm | команда копирует 16-разрядное слово из входного операнда в слово MMX-регистра, на которое указывают два младших разряда непосредственного операнда. | |||||
PMINSW mm, mm/m | команда попарно сравнивает четыре слова со знаком в MMX-регистре с четырьмя словами со знаком во входном операнде. Минимальные значения записываются в выходной операнд. | |||||
PMAXSW mm, mm/m | команда попарно сравнивает четыре слова со знаком в MMX-регистре с четырьмя словами со знаком во входном операнде. Максимальные значения записываются в выходной операнд. | |||||
PMINUB mm, mm/m | команда попарно сравнивает восемь байтов без знака в MMX-регистре с восемью байтами без знака во входном операнде. Минимальные значения записываются в выходной операнд. | |||||
PMAXUB mm, mm/m | команда попарно сравнивает восемь байтов без знака в MMX-регистре с восемью байтами без знака во входном операнде. Максимальные значения записываются в выходной операнд. | |||||
PMOVMSKB ir32, mm | команда копирует старшие (знаковые) биты всех восьми упакованных байтов входного операнда - MMX-регистра и формирует 8-разрядную маску в младших разрядах 32-разрядного целочисленного регистра. Все старшие 24 разряда выходного целочисленного регистра обнуляются. | |||||
PMULHUW mm, mm/m | команда записывает в выходной операнд старшие 16 разрядов попарных промежуточных произведений 16-разрядных слов без знака входного и выходного операндов. | |||||
PSHUFW mm, mm/m, imm | команда выбирает четыре 16-разрядных слова (не обязательно различных) из входного операнда и записывает их в определенном порядке в выходной операнд. Порядок записи слов задается 2-разрядными полями 8-разрядного непосредственного операнда. | |||||
MOVNTPS m, xmm | команда записывает 128 бит SPFP-данных непосредственно в память и не кэширует данные при кэш-промахе (cache miss). При кэш-попадании (cache hit) данные в кэше обновляются, а прямой записи в память не происходит. | |||||
MOVNTQ m, mm | команда записывает 64 бита целочисленных данных непосредственно в память и не кэширует данные при кэш-промахе. При кэш-попадании данные в кэше обновляются, а прямой записи в память не происходит. | |||||
MASKMOVQ mm, mm | команда выборочно записывает байты из MMX-регистра непосредственно в память. Байты выбираются в соответствии с 8-разрядной маской, состоящей из старших битов в байтах второго операнда - MMX-регистра. Единица в некотором разряде маски означает запись соответствующего байта в память, нуль - отсутствие записи. Адрес памяти, по которому производится запись, указывается в регистре EDI. | |||||
hrefETCHT0 m | команда записывает кэшируемые данные из памяти в кэш всех уровней. | |||||
hrefETCHT1 m ; hrefETCHT2 m | команды в архитектуре процессора PentiumR III записывают кэшируемые данные из памяти в кэш L2. | |||||
hrefETCHTA m | команда записывает кэшируемые данные из памяти в кэш для данных со слабой локализацией. В архитектуре процессора PentiumR III данные обходят L2-кэш и переносятся в L1-кэш, используемый для этих целей. | |||||
SFENCE | команда применяется для строгого упорядочения последовательности обращений в память и синхронизации ее с содержимым кэш-памяти, если такие обращения являются слабо упорядоченными. При использовании данной команды в основную память копируются все данные предшествующих команд записи, хранящиеся в буфере записи и кэше. Только после этого будут выполняться следующие команды записи. Команда временно блокирует выполнение лишь последующих команд сохранения данных, не влияя при этом на работу других команд. | |||||
STMXCSR m | команда записывает в 32-разрядное слово памяти содержимое регистра MXCSR. | |||||
IDMXCSR m | команда загружает из памяти 32-разрядное слово состояния и управления в регистр MXCSR.
| FXSAVE m | команда сохраняет в области памяти по указываемому адресу состояние регистров данных с плавающей запятой, MMX-регистров, а также новых регистров процессора PentiumR III. Размер области памяти, в которой хранится информация о состоянии процессора, составляет 512 байт.
| FXSTOR m | команда загружает предварительно сохраненную информацию о состоянии регистров данных с плавающей запятой, MMX-регистров, а также новых регистров процессора PentiumR III из 512-байтной области памяти в соответствующие регистры. Начальный адрес области памяти при загрузке должен быть выровнен на 16 байт.
| |