2.5.10. Расширение AMD 3D
Процессоры AMD, начиная с AMD К6 3D, поддерживают дополнительное расширение набора команд ММХ. В AMD 3D вводится новый тип данных — упакованные 32-битные вещественные числа, определяются новые команды (начинающиеся с PF) и несколько дополнительных команд для работы с обычными ММХ-типами данных:
- PI2FD приемник, источник — преобразовывает упакованные 32-битные целые со знаком (двойные слова) в упакованные вещественные числа;
- PF2ID приемник, источник — преобразовывает упакованные вещественные в упакованные целые числа со знаком (преобразование с насыщением);
- PAVGUSB приемник, источник — вычисляет средние арифметические для упакованных 8-битных целых чисел без знака;
- PMULHRW приемник, источник — перемножает упакованные 16-битные целые со знаком и сохраняет результаты как 16-битные целые в приемнике (при переполнениях выполняется насыщение);
- PFACC приемник, источник — сумма вещественных чисел в приемнике помещается в младшую половину приемника, сумма вещественных чисел из источника помещается в старшую половину приемника;
- PFADD приемник, источник — сложение упакованных вещественных чисел;
- PFSUB приемник, источник — вычитание упакованных вещественных чисел;
- PFSUBR приемник, источник — обратное вычитание (приемник из источника) упакованных вещественных чисел;
- PFMUL приемник,источник — умножение упакованных вещественных чисел.
Набор команд для быстрого вычисления по итерационным формулам:
- PFCMPEQ приемник, источник — проверка равенства для упакованных вещественных чисел (полностью аналогично PCMPEQW);
- PFCMPGE приемник, источник — сравнение упакованных вещественных чисел: если число в приемнике больше или равно числу в источнике, все его биты устанавливаются в 1;
- PFCMPGT приемник, источник — сравнение упакованных вещественных чисел: если число в приемнике больше числа в источнике, все его биты устанавливаются в 1;
- PFMAX приемник, источник — сохраняет в приемнике максимальное из каждой пары сравниваемых вещественных чисел;
- PFMIN приемник, источник — сохраняет в приемнике минимальное из каждой пары сравниваемых вещественных чисел;
- FEMMS — более быстрая версия команды EMMS;
- PREFETCH источник — заполняет строку кэша L1 из памяти по адресу, указанному источником;
- PREFETCHW источник — заполняет строку кэша L1 из памяти по адресу, указанному источником, и помечает как модифицированную.