Целочисленное MMX расширение
Трансцендентные функции
Тригонометрические.
Команда | Описание |
FCOS | Floating-point calculation of COSine. Косинус. ST(0) = COS(ST(0)). Содержимое в ST(0) интерпретируется как угол в радианах. |
FPTAN | Floating-point Partial TANgent. Частичный тангенс. Содержимое в ST(0) интерпретируется как угол в радианах. Значение тангенса возвращается на место аргумента, а затем в стек включается 1. |
FPATAN | Floating-point Partial ArcTANgent. Частичный арктангенс. Вычисляется функция Arctg(ST(1)/ST(0)). После вычисления функции происходит выталкивание из стека, после чего значение функции помещается в вершину стека |
FSIN | Floating-point calculation of SINe. Синус. ST(0) = SIN(ST(0)). Содержимое в ST(0) интерпретируется как угол в радианах. |
FSINCOS | Floating-point calculation of SINe and COSine. Синус и косинус. ST(0) = SIN(ST(0)) и ST(1) = COS(ST(0)) |
Логарифмы и степени
Команда | Описание |
F2XM1 | Floating-point 2X minus 1 Вычисление 2X - 1. ST(0) = 2^ST(0) - 1. |
FYL2X | Floating-point compute Y*Log2(X) Вычисление Y*LOG2(X). Исходные операнды предварительно должны быть занесены в стек ST(0) = Y, ST(1) = X. Резкльтат помещается в ST(1). Затем происходит выталкивание из стека, и результат оказывается в вершине стека ST(0). |
FYL2XP1 | Floating-point compute Y*Log2(X Plus 1) Вычисление Y*LOG2(X + 1). Исходные операнды предварительно должны быть занесены в стек ST(0) = Y, ST(1) = X. Резкльтат помещается в ST(1). Затем происходит выталкивание из стека, и результат оказывается в вершине стека ST(0). |
Обработка данных MMX-расширения может выполняться с использованием:
· циклической арифметики (wraparound arithmetic),
· арифметики с насыщением (saturation arithmetic).
Большинство команд технологии ММХ обрабатывают данные по правилам циклической арифметики, а некоторые команды задействуют арифметику с насыщением. Если команда задействует циклическую арифметику (другое название — арифметика с циклическим переносом) и результат операции выходит за двоичную разрядную сетку используемого типа данных, то «лишние» старшие биты результата отбрасываются.
Если команда использует арифметику с насыщением и результат операции превышает максимальное представимое значение, то в выходной операнд записывается это максимальное значение (происходит «насыщение»). Аналогично, если результат операции оказывается меньше нижней границы допустимого диапазона, то в выходной операнд записывается минимальное возможное значение.
В арифметике с насыщением ММХ-команды сложения, вычитания и упаковки данных могут обрабатывать числа со знаком или без знака. Данные со знаком и без знака имеют различный допустимый диапазон. Следовательно, если используется арифметика с насыщением, то при выходе результата операции за пределы допустимого диапазона в выходной операнд записываются различные значения, в зависимости от типа данных.