我已经使用gdb逐步执行在标准C数学库中实现标准C sin()函数的汇编程序代码(-lm -march = pentium3 -mfpmath = 387)。那里有很多存根,我不知道为什么他们没有简单地内联fsin汇编程序指令。其他数学函数也是如此。为什么他们不只是调用相应的FPU指令?
答案 0 :(得分:2)
因为“那里的存根很多”比x87 fsin
指令更快更准确。与流行的看法相反,图书馆作家通常知道他们在做什么。
答案 1 :(得分:-1)
你应该enable intrinsics - sinf的内在实现几乎肯定会被内联(除非,例如,有人拿一个地址或其他一些不寻常的情况)。
在VS上相当于编译with /Oi.