Extension Instruction Specifications
3-23
MCST (Multiply-and-accumulate operation results 8-, 16-, 32-bit saturation operation instruction)
[Instruction Format (Macro Name)]
MCST Dm, Dn
MCST imm8, Dn
[Assembler Mnemonic]
udf02 Dm, Dn
udf02 imm8, Dn : Only 0x20, 0x10, and 0x08 are valid as values for imm8
[Operation]
This instruction sets the contents of the multiply-and-accumulate operation overflow detect register MCVF in the V
flag. In addition, depending on the value of Dm or imm8, the following operations are performed.
(1) When the value of Dm or imm8 is 32 (0x00000020)
When the 64-bit result of the multiply-and-accumulate operation that is stored in the multiply-and-accumulate
registers MCRH and MCRL is equal to or greater than the maximum positive value for a 32-bit signed numeric
value (0x000000007fffffff), the maximum positive value (0x7fffffff) is stored in Dn. If the value stored in the
multiply-and-accumulate registers MCRH and MCRL is equal to or less than the maximum negative value for a 32-
bit signed numeric value (0xffffffff80000000), the maximum negative value (0x80000000) is stored in Dn. In all
other cases, the contents of MCRL are stored in Dn.
(2) When the value of Dm or imm8 is 16 (0x00000010)
When the 64-bit result of the multiply-and-accumulate operation that is stored in the multiply-and-accumulate
registers MCRH and MCRL is equal to or greater than the maximum positive value for a 16-bit signed numeric
value (0x0000000000007fff), the maximum positive value (0x00007fff) is stored in Dn. If the value stored in the
multiply-and-accumulate registers MCRH and MCRL is equal to or less than the maximum negative value for a 16-
bit signed numeric value (0xffffffffffff8000), the maximum negative value (0xffff8000) is stored in Dn. In all other
cases, the contents of MCRL are stored in Dn.
(3) When the value of Dm or imm8 is 8 (0x00000008)
When the 32-bit result of the multiply-and-accumulate operation that is stored in the multiply-and-accumulate
register MCRL is equal to or greater than the maximum positive value for an 8-bit signed numeric value (0x0000007f),
the maximum positive value (0x7f) is stored in Dn. If the value stored in the multiply-and-accumulate register
MCRL is equal to or less than the maximum negative value for an 8-bit signed numeric value (0xffffff80), the
maximum negative value (0x80) is stored in Dn. In all other cases, the contents of MCRL are stored in Dn.
(4) When the value of Dm or imm8 is any other value
The value in Dn is undefined.