Ich versuche, eine Funktion aufzurufen, die in ARM NEON Anordnung in einer .s-Datei codiert, die wie folgt aussieht:ARM NEON Montage auf Windows Phone 8 nicht funktioniert
AREA myfunction, code, readonly, ARM
global fun
align 4
fun
push {r4, r5, r6, r7, lr}
add r7, sp, #12
push {r8, r10, r11}
sub r4, sp, #64
bic r4, r4, #15
mov sp, r4
vst1.64 {d8, d9, d10, d11}, [r4]!
vst1.64 {d12, d13, d14, d15}, [r4]
[....]
und ich bin es zusammenbauen wie folgt:
armasm.exe -32 func.s func.obj
Leider funktioniert das nicht, und ich bekomme ungültige Anweisung Ausnahme, wenn ich versuche und die Funktion aufrufen. Als ich dumpbin.exe zum Zerlegen der OBJ verwendete, scheint es, als wäre es ein Thumb-Code, trotz der ARM-Direktive in der Assembly zu disassemblieren (siehe Code oben).
Ich vermute, dass die Funktion im Thumb-Modus aufgerufen wird und dass alle Funktionen im Windows-Modus standardmäßig im Thumb-Modus sind. Ich kann jedoch keine Informationen dazu finden.
Weiß jemand, was hier vor sich geht?
EDIT: Dies geschieht auf Microsoft Surface sowie
Ah, Silly Frage: Was macht Sie denken, ARM Neon wird auf WP8 unterstützt? Ich habe nichts gesehen sagen, dass es auf WP8 unterstützt wird ... – JustinAngel
armasm.exe beschwerte sich über ein paar Dinge , was ich behoben habe, aber es hat keine Warnungen über den NEON, und 95% der insns waren NEON –
Ich weiß nicht über WP8, aber ich habe gehört, dass WinRT nur Thumb2-Code unterstützt (auch wenn CPU akzeptiert ARM). Warum kannst du das nicht als Thumb2 zusammenstellen? –