2013-02-02 1 views
0

Я пытаюсь скомпилировать .s файл, содержащий следующий код:не удается скомпилировать .s файл в XCode 4.5

.text 
.globl memcpy_armneon 
memcpy_armneon: 
    pld [r1, #0xC0] 
    vldm r1!,{d0-d7} 
    vstm r0!,{d0-d7} 
    subs r2,r2,#0x40 
    bge memcpy_armneon 

но XCode 4,5 жалуется:

«4.2 Ошибка LLVM GCC Нет такого инструкция:.?. PLD [r1, "есть ли способ, чтобы составить эту

+0

Это реальная ошибка? Где пространство между 'pld' и' ['? –

+0

Какую архитектуру вы компилируете? ARM ARM сообщает мне, что инструкция только в ARMv6T2 и ARMv7. –

+0

Настройка сборки «Архитектура» - ARMV7. Такая же ошибка возникает для строк vldm, vstm и bge. – user1031420

ответ

2

ОК, настало время психической отладки у меня есть Xcode 4.6 здесь, и он не появляется даже есть версии АРМ LLVM GCC:

$ gcc -arch armv7 -c -o example.o example.s 
llvm-gcc-4.2: error trying to exec '/usr/bin/../llvm-gcc-4.2/bin/arm-apple-darwin11-llvm-gcc-4.2': execvp: No such file or directory 

Это заставляет меня думать, что вы передаете этот код ассемблеру Intel. На самом деле, я получаю именно эту формулировку ошибки для файла при выполнении только что:

$ gcc -c -o example.o example.s 
example.s:5:no such instruction: `pld [r1,' 
example.s:6:no such instruction: `vldm r1!,{d0-d7}' 
example.s:7:no such instruction: `vstm r0!,{d0-d7}' 
example.s:8:too many memory references for `sub' 
example.s:9:no such instruction: `bge memcpy_armneon' 

Вы можете использовать лязг, так что вы можете использовать ARM ассемблере:

clang -arch armv7 -c -o example.o example.s 
+0

hmm. Насколько я знаю, я использую настройки XCode по умолчанию. Вы знаете, как я могу заставить XCode использовать эту командную строку для файла .s? Я переключил параметр «Параметры сборки», чтобы использовать компилятор Apple LLVM 4.1, и журнал сборки показывает, что теперь он использует clang с огромным списком параметров. – user1031420

+0

Извините, я не эксперт по Xcode. Он все еще не работает? –

+0

Пока нет. Я изменил флаги компилятора для файла .s, чтобы попытаться заставить XCode использовать эти аргументы, но он по-прежнему настаивает на использовании огромного набора параметров и просто добавляет к ним новые аргументы. Вы не можете использовать armv7 здесь, потому что в этом случае он компилируется для симулятора x86. Вздох. – user1031420

Смежные вопросы