3.3.12.2.2 MCU Multiply Instructions
The DSP multiplier is also used to support all MCU multiply instructions, which include signed, unsigned or mixed signed/unsigned operations. All instructions support both Word and Long Word operands. All literals are either sign or zero-extended to the operand size prior to use as appropriate for the particular instruction. Some instructions use W-regs for the result destinations, while others can target ACCA or ACCB, using the same result data paths as the DSP multiply instructions. The instructions targeting the accumulator can be either integer or fractional operations, irrespective of the state of the DSP engine fractional/integer control bit at CORCON.IF. This removes the need for software to test/control the CORCON.IF bit. All MCU multiply instructions (other than MUL.x, which are by definition unsigned integer operations) explicitly identify the signed or unsigned characteristic of each operand. The result for all signed and mixed signed/unsigned multiply operations is always sign-extended to the MSb of the target register. Unsigned multiply operations are zero-extended to the MSb of the target accumulator.
MCU Instruction(1) | Description |
---|---|
MUL.{b/w/l} | Unsigned integer multiplication of Wn and the file register; results written back to default destination register W2. |
MULSS.{w/l/d} | Word or Long Word integer multiplication of two signed integers; stores the results in W-registers. |
MULSU.{w/l/d} | Word or Long Word integer of signed and unsigned integers; stores the results in W-registers. |
MULUS.{w/l/d} | Word or Long Word integer of unsigned and signed integers; stores the results in W-registers. |
MULUU.{w/l/d} | Word or Long Word integer of two unsigned integers; stores the results in W-registers. |
MULFSS.{w/l} | Word or Long Word fractional multiplication of two signed fractional values; stores the results in the accumulator. |
MULFSU.{w/l} | Word or Long Word fractional multiplication of a signed and an unsigned fractional value; stores the results in the accumulator. |
MULFUS.{w/l} | Word or Long Word fractional multiplication of a signed and an unsigned fractional value; stores the results in the accumulator. |
MULFUU.{w/l} | Word or Long Word fractional multiplication of two unsigned fractional values; stores the results in the accumulator. |
MULISS.{w/l} | Word or Long Word integer multiplication of two signed integers; stores the results in the accumulator. |
MULISU.{w/l} | Word or Long Word integer multiplication of signed and unsigned integers; stores the results in the accumulator. |
MULIUS.{w/l} | Word or Long Word integer multiplication of signed and unsigned integers; stores the results in the accumulator. |
MULIUU.{w/l} | Word or Long Word integer multiplication of two unsigned integers and stores the results in the accumulator. |
Note:
|