Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Команды 3DNow! ( начиная с K6-2 ).

Инструкции технологии 3DNow! предназначены для ускорения обработки 3D в приложениях. Процессор может выполнять по две инструкции технологии 3DNow! за такт. Так как каждая инструкция технологии 3DNow! работает с упакованными данными (два 32-битных элемента 64-битных данных), то за такт вычисляются четыре операции с плавающей запятой. Все инструкции технологии 3DNow! работают с теми же регистрами, что и инструкции технологии MMX. Команды 3DNow! имеют следующий синтаксис:

	instruction [dest, src] 

Здесь instruction - имя команды, dest обозначает выходной операнд, src - входной операнд. Система команд технологии 3DNow! содержит 21 инструкцию (обозначения: mm - MMX-регистр; m8, m64 - память объема 8 и 64 бит соответственно):

FEMMSкоманда входа/выхода в/из режима MMX или 3DNow! .
PAVGUSB mm, mm/m64команда усреднения упакованных беззнаковых 8-битных данных. Сначала вычисляется побайтовая сумма входящего и выходящего операндов (результат 9-битный, поэтому переполнения не происходит), а потом результат увеличивается на единицу и делится пополам. Полученные значения заносятся в выходной операнд.
PF2ID mm, mm/m64команда преобразования входного упакованного операнда с плавающей запятой в выходной упакованный операнд с 32-разрядными целыми числами.
PFACC mm, mm/m64команда накопления данных с плавающей запятой. Данное накопление выражается следующими формулами:
mm(dest)[31:0] = mm(dest)[31:0] + mm(dest)[63:32]
mm(dest)[63:32] = mm/m64(src)[31:0] + mm/m64(src)[63:32]
PFADD mm, mm/m64команда сложения упакованных данных с плавающей запятой.
PFCMPEQ mm, mm/m64команда сравнения РАВНО упакованных данных с плавающей запятой. В случае успеха все биты выходного операнда заполняются единицами, а в случае неудачи - нулями.
PFCMPGE mm, mm/m64команда сравнения БОЛЬШЕ ИЛИ РАВНО упакованных данных с плавающей запятой. В случае успеха все биты выходного операнда заполняются единицами, а в случае неудачи - нулями.
PFCMPGT mm, mm/m64команда сравнения БОЛЬШЕ упакованных данных с плавающей запятой. В случае успеха все биты выходного операнда заполняются единицами, а в случае неудачи - нулями.
PFMAX mm, mm/m64команда нахождения максимума упакованных данных с плавающей запятой. При этом максимальное значение заносится в младший элемент выходного операнда, а минимальное значение - в старший элемент выходного операнда.
PFMIN mm, mm/m64команда нахождения минимума упакованных данных с плавающей запятой. При этом минимальное значение заносится в младший элемент выходного операнда, а максимальное значение - в старший элемент выходного операнда.
PFMUL mm, mm/m64команда умножения упакованных данных с плавающей запятой.
PFRCP mm, mm/m64команда приближенного вычисления обратного значения данных с плавающей запятой. В младший и старший элементы выходного операнда заносится приближенное обратное значение (14 бит точности вместо 24 бит) младшего элемента входного операнда.
PFRCPIT1 mm, mm/m64команда уточнения упакованных данных с плавающей запятой. Вычисляется первый промежуточный шаг итерации Ньютона.
PFRCPIT2 mm, mm/m64команда уточнения упакованных данных с плавающей запятой. Вычисляется второй и последний промежуточный шаг итерации Ньютона. Операции PFRCPIT1(PFRSQIT1) и PFRCPIT2 используются после команд PFRCP(PFSQRT) для получения более точных результатов (24 бит точности).
PFRSQIT1 mm, mm/m64команда уточнения значения квадратного корня упакованных данных с плавающей запятой (1 итерационный шаг). Последний итерационный шаг - PFRCPIT2 .
PFRSQRT mm, mm/m64команда вычисления приближенного значения квадратного корня данных с плавающей запятой. В младший и старший элементы выходного операнда заносится приближенное значение (15 бит точности вместо 24 бит) корня квадратного из младшего элемента входного операнда.
PFSUB mm, mm/m64команда вычитания упакованных данных с плавающей запятой.
PFSUBR mm, mm/m64команда обратного вычитания упакованных данных с плавающей запятой:
mm(dest)[31:0] = mm/m64(src)[31:0] - mm(dest)[31:0]
mm(dest)[63:32] = mm/m64(src)[63:32] - mm(dest)[63:32]
PI2FD mm, mm/m64команда преобразования входного упакованного операнда с 32-разрядными целыми числами в выходной упакованный операнд с плавающей запятой.
PMULHRW mm, mm/m64команда умножения упакованных данных с 16-битными знаковыми целыми числами с последующим округлением и сохранением старших 16 бит произведений.
hrefETCH(W) m8выборка с упреждением в кэш данных 1-го уровня.

Назад | Дальше

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог