Assembler - язык неограниченных возможностей

         

Расширение AMD 3D


Процессоры AMD, начиная с AMD К6 3D, поддерживают дополнительное расширение набора команд ММХ. В AMD 3D вводится новый тип данных — упакованные 32-битные вещественные числа, определяются новые команды (начинающиеся с PF) и несколько дополнительных команд для работы с обычными ММХ-типами данных:

  • PI2FD приемник, источник — преобразовывает упакованные 32-битные целые со знаком (двойные слова) в упакованные вещественные числа;
  • PF2ID приемник, источник — преобразовывает упакованные вещественные в упакованные целые числа со знаком (преобразование с насыщением);
  • PAVGUSB приемник, источник — вычисляет средние арифметические для упакованных 8-битных целых чисел без знака;
  • PMULHRW приемник, источник — перемножает упакованные 16-битные целые со знаком и сохраняет результаты как 16-битные целые в приемнике (при переполнениях выполняется насыщение);
  • PFACC приемник, источник — сумма вещественных чисел в приемнике помещается в младшую половину приемника, сумма вещественных чисел из источника помещается в старшую половину приемника;
  • PFADD приемник, источник — сложение упакованных вещественных чисел;
  • PFSUB приемник, источник — вычитание упакованных вещественных чисел;
  • PFSUBR приемник, источник — обратное вычитание (приемник из источника) упакованных вещественных чисел;
  • PFMUL приемник,источник — умножение упакованных вещественных чисел.
  • Набор команд для быстрого вычисления по итерационным формулам:

    Быстрое деление:

    xi+1 = хi(2 - bхi)

    х0 = PFRCP(b)

    х1 = PFRCPIT1(b, x0)

    х2 = PFRCPIT2(x1, x0)

    х4 = PFMUL(b, x3)

    Быстрое вычисление квадратного корня:

      хi+1 = хi(3 - bxi2)/2

      х0 = PFRSQRT(b)

      х1 = PFMUL(x0, x0)

      х2 = PFRSQIT(b, x1)

      х3 = PFRCPIT2(x2, x0)

      х4 = PFMUL(b, x3)

    • PFCMPEQ приемник, источник — проверка равенства для упакованных вещественных чисел (полностью аналогично PCMPEQW);

    • PFCMPGE приемник, источник — сравнение упакованных вещественных чисел: если число в приемнике больше или равно числу в источнике, все его биты устанавливаются в 1;


    • PFCMPGT приемник, источник — сравнение упакованных вещественных чисел: если число в приемнике больше числа в источнике, все его биты устанавливаются в 1;


    • PFMAX приемник, источник — сохраняет в приемнике максимальное из каждой пары сравниваемых вещественных чисел;


    • PFMIN приемник, источник — сохраняет в приемнике минимальное из каждой пары сравниваемых вещественных чисел;


    • FEMMS — более быстрая версия команды EMMS;


    • PREFETCH источник — заполняет строку кэша L1 из памяти по адресу, указанному источником;


    • PREFETCHW источник — заполняет строку кэша L1 из памяти по адресу, указанному источником, и помечает как модифицированную.



    • Содержание раздела