程序集的iOS版fsqrt

时间:2016-01-12 10:41:45

标签: c++ ios assembly inline-assembly sqrt

我一直在用C ++实现Vector Math库,在某些点使用Assembly来提高计算性能。

更大的收获之一是由于http://www.codeproject.com/Articles/69941/Best-Square-Root-Method-Algorithm-Function-Precisi

中所述实施Square Root的汇编代码

然而,当然这样的实现仅适用于x86,因为它已经在过去关于这个相同代码的问题中指出:How to get this sqrt inline assembly working for iOS

现在,我的问题是:有任何解决方法,或者有没有办法实现类似于以下内联汇编代码的东西,但这也适用于iOS,考虑到fsqrt只是x86?

double inline __declspec (naked) __fastcall sqrt14(double n)
{
    _asm fld qword ptr [esp+4]
    _asm fsqrt
    _asm ret 8
} 

提前感谢您的时间。

编辑:我正在使用Visual Studio 2013进行编码和编译。

1 个答案:

答案 0 :(得分:0)

您必须使用适当的ARM指令集编写该代码的自己的汇编版本。有关详细信息,请查看ARM Reference Manual

但请记住,转换快速x86解决方案并不能保证是ARM上最快/最精确的版本。从本质上讲,如果您真的关心性能,则需要为您的ARM平台运行与CodeProject page类似的比较。