15
15 – 41
Xop: X operand
Yop: Y operand
Syntax:
[ IF cond] MR = xop * yop
(SS) ;
MF
xop
(SU)
(US)
(UU)
(RND)
Permissible xops
Permissible yops
Permissible conds (see Table 15.9)
MX0
AR
MY0
EQ
LE
AC
MX1
SR1
MY1
NE
NEG
NOT AC
MR2
SR0
MF
GT
POS
MV
MR1
GE
AV
NOT MV
MR0
LT
NOT AV
NOT CE
Examples:
IF EQ MR = MX0 * MF (UU);
xop * yop
MF = SR0 * SR0 (SS);
xop * xop
Description:
Test the optional condition and, if true, then multiply the
two source operands and store in the destination location. If the condition
is not true perform a no-operation. Omitting the condition performs the
multiplication unconditionally. The operands are contained in the data
registers specified in the instruction. When MF is the destination operand,
only bits 31-16 of the product are stored in MF.
The xop * xop squaring operation is only available on the ADSP-217x,
ADSP-218x, and ADSP-21msp58/59 processors. Both xops must be the
same register. This option allows single-cycle X
2
and
∑
X
2
instructions.
The data format selection field following the two operands specifies
whether each respective operand is in Signed (S) or Unsigned (U) format.
The xop is specified first and yop is second. If the xop * xop operation is
used, the data format selection field must be (UU), (SS), or (RND) only.
There is no default; one of the data formats must be specified.
If RND (Round) is specified, the MAC multiplies the two source operands,
rounds the result to the most significant 24 bits (or rounds bits 31-16 to 16
bits if there is no overflow from the multiply), and stores the result in the
destination register. The two multiplication operands xop and yop (or xop
and xop) are considered to be in twos complement format. All rounding is
unbiased, except on the ADSP-217x, ADSP-218x, and ADSP-21msp58/59
processors, which offer a biased rounding mode. For a discussion of
(instruction continues on next page)
MAC
MULTIPLY