我正在尝试确定示例here中函数ASM
的{{1}}代码是否会在所有neon_asm_convert()
处理器上运行(即。{{ 1}})。
不幸的是,我并不拥有所有这些设备,因此简单的运行测试是不可能的。
但是,我正在开发一个应用程序(仅使用armv7/armv7s/arm64
测试它),该应用程序使用iPhone 4S/5/5S
中的armv7
,我想知道__asm__()
代码也将在neon_asm_convert()
上运行。
我想我读过在ASM
上运行的arm64
代码无法在ASM
上运行,但我似乎无法找到该引用。
有没有人有冷却帮助我的指针?
答案 0 :(得分:2)
看起来它不会在arm64
上运行。正如this回答说:
arm64是一个新的ISA。实际的NEON指令和寄存器布局是全新的。您需要重新编写或调整新架构的汇编代码。
答案 1 :(得分:1)
正如托默所说,没有。 arm64是一种新的架构,具有新的指令语法和寄存器布局。
然而,作为Accelerate.framework的一部分,SDK中提供了这种颜色空间转换的快速实现。除特殊情况外,您不需要为此编写自己的汇编代码。具体来说,您可以使用vImageConvert_AnyToAny函数,该函数提供此功能的高性能实现以及许多其他常见转换,这些转换适用于Apple发布的所有体系结构(armv7,armv7s,arm64,i386,x86_64)。