【问题标题】:iOS - Will ASM code run on armv7/armv7s/arm64?iOS - ASM 代码会在 armv7/armv7s/arm64 上运行吗?
【发布时间】:2014-01-18 16:49:08
【问题描述】:

我试图确定示例here 中函数neon_asm_convert()ASM 代码是否可以在所有armv7/armv7s/arm64 处理器(即iPhone 4S/5/5S)上运行。

很遗憾,我并不拥有所有这些设备,因此无法进行简单的运行测试。 但是,我正在开发一个应用程序(仅使用armv7 对其进行测试),它使用来自neon_asm_convert()__asm__(),我想知道ASM 代码是否也将在arm64 上运行。

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

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

【问题讨论】:

    标签: iphone objective-c assembly arm64


    【解决方案1】:

    看起来它不会在 arm64 上运行。正如this 回答所说:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-12
        • 2015-10-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多