Assembling Pi

B.2 Erweiterungen der CPU-Funktionalität

2.3.12 VFP und NEON: NEON Instruktionen

Die Syntax von NEON-Instruktionen setzt sich wie folgt zusammen:

V<OpCode>.<DatenTyp> <ZielRegister>, <QuellRegister1>, <QuellRegister2>

Dabei gibt der OpCode die Operation an (z.B. ADD, SUB), und der Datentyp (.i8, .f32 etc.) spezifiziert die Breite der verwendeten Daten (8-bit, 32-bit, etc.). Die Register können entweder ARM-Register oder NEON-Register sein, abhängig von der jeweiligen Instruktion.

Einige NEON-Instruktionen erfordern spezifische Registertypen, während andere dem Programmierer die Wahl lassen, ob er ein Single Word-, Double Word- oder Quad Word-Register verwenden möchte. Wenn eine Instruktion etwa ein Single Precision-Register benötigt, werden die Register wie folgt bezeichnet:Sd für das Zielregister, Sn für den ersten Operand und Sm für den zweiten Operand. Bei Instruktionen, die nur zwei Register verwenden, wird Sn weggelassen. Die Bezeichnungen Sd, Sn und Sm stehen jeweils für eines der 32 S-Register, die von S0 bis S31 nummeriert sind.

Die Notation der Instruktionen umfasst folgende Elemente:

Datentypen

Die NEON-Instruktionen arbeiten mit verschiedenen Datentypen, die in der Notation als Suffixe angehängt werden:

Registerlisten

Für einige Instruktionen können Listen von bis zu vier NEON-Registern, Vektoren oder Skalaren spezifiziert werden.

Immediates

Neben den Register- und Datentypenspezifikationen können manche NEON-Instruktionen auch Immediate-Werte verwenden, die in der Instruktionsnotation direkt spezifiziert werden.

zurück Hauptmenü weiter
2.3 VFP und NEON
2.3.1 Intro
2.3.2 Gleitkommazahlen
2.3.3 Floating Point Format nach IEEE 754
2.3.4 VFP (Vector Floating Point) in der ARM-Architektur
2.3.5 VFP Data Conversion Befehle
2.3.6 Was ist NEON?
2.3.7 Überblick über die ARMv7 NEON-Register
2.3.8 Vektoren und Skalare
2.3.9 Registeradressierung in NEON
2.3.10 Das NEON und Floatingpoint Status Register
2.3.11 Steuerung und Statusübertragung zwischen ARM- und NEON/VFP-Statusregistern (VMSR und VMRS)
2.3.12 NEON Instruktionen
2.3.13 Datentransfer
2.3.14 NEON Load/Store Instruktionen
2.3.15 Arithmetische und logische NEON-Operationen
2.3.16 VTRN (Vector Transpose) Instruktionen
2.3.17 Implementierung von Trigonometrischen Funktionen
2.3.18 Implementierung einer 4x4-Matrixmultiplikationsfunktion mit NEON