ARMアーキテクチャ
Wireless MMX (WMMX) はインテルがXScaleプロセッサ向けに開発したSIMD命令セットである。64ビット幅のレジスタが16本用意されており、8/16/32/64ビットのSIMD整数演算が可能。XScaleとその売却先であるマーベル・テクノロジー・グループ製のARM SoCに採用されている。命令セット自体はx86プロセッサのMMXとは全く異なるものの、GCCやVisual C++等のコンパイラで利用できる組み込み関数はMMXとの互換性がある程度確保されており、これを利用すればMMX向けに記述されたコードを比較的容易に移植することができる。
プリフェッチアボートかデータアボート例外が発生したときに切り替わる特権モード。
PC相対分岐においては、ゼロフラグを参照する場合のみであるが比較と条件分岐を1命令で行うことが可能になっている (CBZ/CBNZ)。これは従来Thumb-2命令セットでのみ定義されていたものであるが、A64モードでは基本命令として定義されている。
J (ビット 24) は Java ステートビット
Q (ビット 27) は sticky overflow ビット
V (ビット 28) はオーバーフロービット
C (ビット 29) は carry/borrow/extend ビット
Z (ビット 30) は零ビット
N (ビット 31) は negative/less ビット
VFP/NEON用として、これらとは別に32ビット用はs0〜s31のレジスタがある。これらは、64ビットレジスタとしてd0〜d15として使える。s0〜s31とd0〜d15はオーバーラップしている。大半の ARMv7-A SoC はさらに、d16〜d31も使える。
VFP/NEON用のシステムレジスタとして、以下の3つがある。
FPSCR - Floating-point status and control register (浮動小数点状態制御レジスタ)
FPEXC - Floating-point exception register (浮動小数点例外レジスタ)
FPSID - Floating-point system ID register (浮動小数点システムIDレジスタ)
FIQ 割込みが発生したときに切り替わる特権モード。