mia
Multiply with Internal Accumulate
MIA<c> <Acc>, <Rn>, <Rm>
Multiplies two 32-bit values and adds to 40-bit internal acc (XScale Legacy).
Details
Multiply with Internal Accumulate multiplies two 32-bit values (Rn and Rm) and adds the 64-bit result to a 40-bit internal accumulator indexed by Acc. This XScale legacy A32 instruction is encoded as a coprocessor operation; condition flags are not updated, and this instruction is deprecated in modern ARM implementations.
Pseudocode Operation
operand1 ← SignExtend(Rn, 64);
operand2 ← SignExtend(Rm, 64);
product ← operand1 * operand2;
internalAccumulator[Acc] ← internalAccumulator[Acc] + product;
Example
MIA Acc, r1, r2
Encoding
Binary Layout
cond
11100010
0000
Rn
Acc
0000
0001
Rm
Operands
-
Acc
Accumulator -
Rn
First source / base general-purpose register -
Rm
Second source / offset general-purpose register