无法在xcode 8.3.2上编译NEON代码

时间:2017-05-17 16:36:17

标签: ios xcode assembly arm neon

我在单个文件csc_rotation.S中编写了一个ARM NEON函数来进行颜色空间转换,我将纯组件文件添加到iOS应用程序项目中进行测试,然后在Xcode上的armv7 arch下编译代码。

然后我收到了这些错误:

.text
csc_rotation.S:3:1: Cannot use dot operator on a type

ldr  r4, [sp, #24]  //Save width to r4
csc_rotation.S:20:1: Unknown type name 'ldr'
csc_rotation.S:20:15: Expected identifier
csc_rotation.S:20:19: Expected ';' after top level declarator

image_rotate_180D_neon(y_ptr, y_stride, x_ptr, x_stride, width, height);
i420_888.cpp:536:5: Use of undeclared identifier 'image_rotate_180D_neon'

看来LLVM无法编译霓虹汇编代码? 你能帮帮我吗?

1 个答案:

答案 0 :(得分:0)

是的,您可以使用 __ asm __ 指令。

例如:

-(int) roundff:(float)a {
    int y;
    __asm__("fcvtzs %w0, %s1\n\t" : "=r"(y) : "w"(a));
    return y;
}

但是如果您想在Xcode中编写NEON代码,我建议您使用包含 - >

的内在函数
#include <arm_neon.h>

也可以使用:

#ifdef __arm__ //AArch32
#ifdef __arm64__ //AArch64 

如果您的目标未知,请将架构分开。

/ A