Невозможно скомпилировать код NEON в xcode 8.3.2

ios xcode assembly arm neon

260 просмотра

1 ответ

Я написал функцию ARM NEON в отдельном файле csc_rotation.S, чтобы выполнить преобразование цветового пространства, и добавил чистый файл сборки в проект приложения для iOS, чтобы проверить его, а затем скомпилировал код в archv7 arch на Xcode.

Тогда я получил эти ошибки:

.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 не может скомпилировать неоновый код сборки? Не могли бы вы помочь мне?

Автор: Andy Hu Источник Размещён: 19.09.2019 12:14

Ответы (1)


0 плюса

Решение

Да, вы можете использовать директиву __asm__ .

Например, вот так:

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

Однако, если вы хотите написать код NEON в Xcode, я рекомендую использовать встроенные функции, включив ->

#include <arm_neon.h>

Также используйте:

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

разделить архитектуры, если ваша цель неизвестна.

/ A

Автор: Anders Cedronius Размещён: 17.05.2017 08:25
Вопросы из категории :
32x32