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
 
Format Coprocessor
Opcode 0x0E200010
Extension A32 (XScale)

Operands

  • Acc
    Accumulator
  • Rn
    First source / base general-purpose register
  • Rm
    Second source / offset general-purpose register