ARM Clang: не удалось выделить выходной регистр для ограничения 'w'

android-ndk arm clang inline-assembly neon

258 просмотра

1 ответ

uint8_t* dataPtr;
uint8x8x4_t dataVec;
__asm__ __volatile__( "vldmia %1, %h0" : "=w"( dataVec ) : "r"( dataPtr ) );

Над ARM встроенный код ассемблера прекрасно работает при компиляции с Android NDK с использованием GCCнабора инструментов для armeabi-v7aABI. Тем не менее, я получаю следующую ошибку компилятора при переключении наClang

ошибка: не удалось выделить выходной регистр для ограничения 'w'

Согласно документам LLVM , ограничение «w» может использоваться для SIMD-регистра в ARM-цели.

Я что-то пропустил? Кто-нибудь сталкивался с этой проблемой? Это ошибка в LLVM?

Спасибо

Автор: VP. Источник Размещён: 28.09.2019 04:42

Ответы (1)


0 плюса

Как упомянуто в Документах LLVM:

Коды ограничений, как правило, должны вести себя так же, как в GCC. Поддержка LLVM часто реализуется по мере необходимости для поддержки встроенного ассемблерного кода на языке C, который поддерживается GCC. Несоответствие в поведении между LLVM и GCC, вероятно, указывает на ошибку в LLVM.

Может быть, это хорошая идея для вас, чтобы сообщить об этом на https://bugs.llvm.org/

Автор: Bruno Alexandre Rosa Размещён: 14.09.2017 11:23
Вопросы из категории :
32x32