2
我正在嘗試爲新的arm64 arch編譯我的lib。我有一堆NEON組件,並且對於他們所有人我收到一個錯誤asm(arm64)中未知的寄存器名稱「q0」
asm中未知的寄存器名稱「q0」。
即使我寫水木清華這樣簡單:
asm (
""
:
:
: "q0", "q1", "q2", "q3"
);
我想arm64支持NEON。我錯過了什麼嗎?
我正在嘗試爲新的arm64 arch編譯我的lib。我有一堆NEON組件,並且對於他們所有人我收到一個錯誤asm(arm64)中未知的寄存器名稱「q0」
asm中未知的寄存器名稱「q0」。
即使我寫水木清華這樣簡單:
asm (
""
:
:
: "q0", "q1", "q2", "q3"
);
我想arm64支持NEON。我錯過了什麼嗎?
「V0」:
scanon$ cat bar.c
int foo(void) {
__asm__("":::"q0");
return 0;
}
scanon$ xcrun -sdk iphoneos clang bar.c -arch arm64 -c
bar.c:2:16: error: unknown register name 'q0' in asm
__asm__("":::"q0");
^
1 error generated.
scanon$ cat foo.c
int foo(void) {
__asm__("":::"v0");
return 0;
}
scanon$ xcrun -sdk iphoneos clang foo.c -arch arm64 -c
scanon$
arm64是一個新的ISA。實際的NEON指令和寄存器佈局是全新的。您需要重新編寫或修改新架構的彙編代碼。
沒有。同樣的錯誤。 – Max
我得到這兩個寄存器的錯誤 – Max
請發佈您正在編譯的實際代碼和完整的錯誤消息。但是,正如我所指出的那樣,arm32組裝將需要針對arm64進行大量修改。 –