Скачиваний:
62
Добавлен:
16.04.2013
Размер:
430.08 Кб
Скачать

4.6.2. Параллельные сдвиги

Инструкция параллельного сдвига влево (pshl) индивидуально сдвигает каждый элемент первого источника на величину, содержащуюся в общем регистре, либо заданную непосредственным значением. Инструкция параллельного сдвига вправо (pshr) выполняет индивидуальный арифметический сдвиг вправо каждого элемента первого источника на величину, содержащуюся в общем регистре, либо заданную непосредственным значением. Инструкция(pshr.u) выполняет сдвиг вправо без учета знака. В табл. 4.30 собраны типы инструкций сдвига.

Табл. 4.30. Инструкции параллельного сдвига

Мнемоника

Действие

1-байт

2-байт

4-байт

pshl

Параллельный сдвиг влево

х

х

pshr

Параллельный сдвиг вправо с учетом знака

х

х

pshr.u

Параллельный сдвиг вправо без учета знака

х

х

4.6.3. Преобразование данных

Инструкция правого смешивания (mix.r) помещает в приемник чередующиеся четные элементы из обоих источников. Инструкция левого смешивания (mix.l) чередует нечетные элементы. Инструкция распаковки младших частей (unpack.l) чередует в приемном регистре младшие 4-байтовые части источников. Инструкция распаковки старших частей (unpack.h) чередует старшие 4-байтовые части источников. Инструкции упаковки (pack.sss, pack.uss) преобразует 32-битовые или 16-битовые элементы в 16-битовые или 8-битовые элементы соответственно. Младшие значащие части больших элементов обоих источников записываются в младшие элементы приемного регистра. Инструкцияpack.sssобрабатывает извлекаемые элементы как значения со знаком и применяет к ним знаковое насыщение. Инструкция pack.ussприменяет насыщение без знака. Инструкция мультиплексирования (mux) копирует индивидуальные 2-байтовые или 1-байтовые элементы источника в произвольные позиции приемника, согласно указанной функции. Для 2-байтных элементов все возможные перестановки задаются с помощью 8-битного непосредственного значения. Для 1-байтных элементов функция копирования выбирает один из пяти вариантов: перестановка в обратном порядке (reverse), перемешивание (mix), тасование (shuffle), чередование (alternate), ретрансляция (broadcast). Табл. 4.31 описывает различные типы инструкций преобразования данных.

Табл. 4.31. Инструкции преобразования данных

Мнемоника

Действие

1-байт

2-байт

4-байт

mix.l

Чередует нечетные элементы из обоих источников

х

х

х

mix.r

Чередует четные элементы из обоих источников

х

х

х

Mux

Произвольное копирование отдельных исходных элементов

х

х

pack.sss

Свернуть длинные элементы в короткие со знаковым насыщением

х

х

pack.uss

Свернуть длинные элементы в короткие с насыщением без знака

х

unpack.l

Чередует младшие элементы из обоих источников

х

х

х

unpack.h

Чередует старшие элементы из обоих источников

х

х

х

Соседние файлы в папке M9