Вычислительные мощности в 64-битной сборке - PullRequest
1 голос
/ 06 марта 2020

Я знаю, что в 32-разрядной сборке можно вычислить мощность (эквивалент pow(double, double) в C), используя комбинацию команд x87 FYL2X, F2XM1 и FSCALE.

Однако в 64-разрядной сборке я прочитал, что использование математического сопроцессора x87 не рекомендуется и вместо него следует использовать инструкции SSE2. Несмотря на то, что я смог найти инструкции типа ADDSD, MULSD и DIVSD, которые работают с регистрами XMM, я не смог найти ничего, связанного с степенями, экспонентами или логарифмами (единственный близкий, который я нашел, был SQRTSD но это не очень помогает) это может помочь мне вычислить полномочия.

Так как же можно вычислить полномочия (a ^ b, где a и b - числа с плавающей точкой) с использованием инструкций SSE2? Можно ли это сделать или вам нужно прибегнуть к программным вычислениям или к x87?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...