我知道在32位汇编中,可以使用x87指令pow(double, double)
,FYL2X
和{{的组合)来计算幂(等于C中的F2XM1
)。 1}}。
但是,在64位汇编中,我读到不赞成使用x87数学协处理器,而应改用SSE2指令。虽然我能够找到在XMM寄存器上运行的指令FSCALE
,ADDSD
和MULSD
,但我找不到与幂,指数或对数有关的任何信息(唯一的闭合值我发现的是DIVSD
,但并没有太大帮助)可以帮助我计算功效。
那么如何使用SSE2指令计算幂(a和b均为浮点数的a ^ b)?甚至可以做到吗?还是需要借助软件计算或x87?