![Intel IXP45X Скачать руководство пользователя страница 172](http://html1.mh-extra.com/html/intel/ixp45x/ixp45x_developers-manual_2073092172.webp)
Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors—Intel XScale
®
Processor
Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
Developer’s Manual
August 2006
172
Order Number: 306262-004US
The MIAPH instruction performs two16-bit signed multiplies on packed half word data
and accumulates these to a single 40-bit accumulator. The first signed multiplication is
performed on the lower 16 bits of the value in register Rs with the lower 16 bits of the
value in register Rm. The second signed multiplication is performed on the upper
16 bits of the value in register Rs with the upper 16 bits of the value in register Rm.
Both signed 32-bit products are sign extended and then added to the value in the 40-
bit accumulator (acc0).
The instruction is only executed if the condition specified in the instruction matches the
condition code status.
The MIAxy instruction performs one16-bit signed multiply and accumulates these to a
single 40-bit accumulator. x refers to either the upper half or lower half of register Rm
(multiplicand) and y refers to the upper or lower half of Rs (multiplier). A value of 0x1
will select bits [31:16] of the register which is specified in the mnemonic as T (for top).
A value of 0x0 will select bits [15:0] of the register which is specified in the mnemonic
as B (for bottom).
MIAxy does not support unsigned multiplication; all values in Rs and Rm will be
interpreted as signed data values.
Table 68.
MIAxy{<cond>} acc0, Rm, Rs
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
cond
1 1 1 0 0 0 1 0 1 1 x y
Rs
0 0 0 0 0 0 0 1
Rm
Operation: if ConditionPassed(<cond>) then
if (bit[17] == 0)
<operand1> = Rm[15:0]
else
<operand1> = Rm[31:16]
if (bit[16] == 0)
<operand2> = Rs[15:0]
else
<operand2> = Rs[31:16]
acc0[39:0] = sign_extend(<operand1> * <operand2>) + acc0[39:0]
Exceptions: none
Qualifiers Condition Code
S bit is always cleared; no condition code flags are updated
Notes:
Instruction timings can be found
in
“Multiply Instruction Timings” on page 185
Specifying R15 for register Rs or Rm has unpredictable results.
acc0 is defined to be 0b000 on Intel XScale processor.