In ARMv7 NEON bezieht sich die Adressierung von verschiedenen Elementen innerhalb der Register auf die Art und Weise, wie Daten in den Q-, D- und S-Registern organisiert und durch Instruktionen verarbeitet werden. NEON ist darauf ausgelegt, mehrere Datenoperationen gleichzeitig durchzuführen, indem es Register in kleinere Datenstücke unterteilt.
Beispiel:
VADD.I8 Q0, Q1, Q2 @ Addiere 16 8-Bit-Werte von Q1 und Q2 und speichere das Ergebnis in Q0
Beispiel:
VMUL.F32 D0, D1, D2 @ Multipliziere zwei 32-Bit-Gleitkommawerte in D1 und D2 und speichere das Ergebnis in D0
Beispiel:
VADD.F32 S0, S1, S2 @ Addiere zwei 32-Bit-Gleitkommawerte von S1 und S2 und speichere das Ergebnis in S0
Die Art der Daten, die in den Registern gespeichert sind, wird durch die Instruktion bestimmt, nicht durch das Register selbst. Wenn eine Instruktion beispielsweise als .I8
, .I16
, .I32
, oder .F32
definiert ist, wird das Register entsprechend als Sammlung von 8-Bit-, 16-Bit-, 32-Bit- oder 64-Bit-Werten betrachtet.
Beispiele für Instruktionssuffixe:
.I8
: Verarbeitet die Register als Sammlung von 8-Bit-Werten..I16
: Verarbeitet die Register als Sammlung von 16-Bit-Werten..F32
: Verarbeitet die Register als 32-Bit-Gleitkommawerte.zurück | Hauptmenü | weiter |