|
a ← b + (c × d)このままだと4項演算だが、aとbを同じにして3項演算とし、累算に特化した実装も多い。
a ← a + (b × c)極めて単純明快な演算ではあるが、この演算速度が信号処理における最大の律速要因になり、信号処理速度そのものを決めてしまうので侮れない。
MAC A,B,SUMAとBが二つの値で、SUMが累算する積和演算レジスターである。
MAC.L @R0+,@R1+演算終了後、レジスターは自動で増分される。このため、メモリー上に連続してデータを用意しておけば、連続して命令を実行することができる。
MLA{<cond>}{S} Rd, Rm, Rs, Rn ; Rd = (Rm * Rs) + RnMLAは、32ビットで演算し、結果を32ビットで返す命令である。
UMLAL{<cond>}{S} RdLo, RdHi, Rm, Rs ; RdHi:RdLo += (Rm * Rs)
SMLAL{<cond>}{S} RdLo, RdHi, Rm, Rs ; RdHi:RdLo += (Rm * Rs)