4

我试图弄清楚此处示例ASM中的函数代码是否将在所有处理器上运行(即,)。neon_asm_convert()armv7/armv7s/arm64iPhone 4S/5/5S

不幸的是,我并不拥有所有这些设备,因此不可能进行简单的运行测试。但是,我正在开发一个armv7使用__asm__().neon_asm_convert()ASMarm64

我想我读到的ASM代码armv7/armv7s不会运行,arm64但我似乎再也找不到那个参考了。

有没有人有任何冷酷的指针帮助我?

4

2 回答 2

2

看起来它不会继续运行arm64。正如这个答案所说:

arm64 是一个新的 ISA。实际的 NEON 指令和寄存器布局是全新的。您将需要为新架构重新编写或调整汇编代码。

于 2014-01-18T17:18:52.707 回答
1

正如托默所说,不。arm64 是一种新架构,具有新的指令语法和寄存器布局。

但是,作为 Accelerate.framework 的一部分,SDK 中提供了这种色彩空间转换的快速实现。除非在特殊情况下,您不需要为此编写自己的汇编代码。具体来说,您可以使用 vImageConvert_AnyToAny 函数,它提供了此函数的高性能实现以及许多其他常见转换,这些转换适用于 Apple 提供的所有架构(armv7、armv7s、arm64、i386、x86_64)。

于 2014-01-22T11:54:53.260 回答