Open as PDF
Multiply Two Double-Precision Floating-Point Values MPYDP
3-145 Instruction SetSPRU733
Multiply Two Double-Precision Floating-Point Values
Syntax MPYDP (.unit) src1, src2, dst
.unit = .M1 or .M2
Compatibility C67x and C67x+ CPU
31 292827 2322 1817 131211 76543210
creg z dst src2 src1 x 0 1 1 1 0 0 0 0 0 0 s p
3 1 5 5 5 1 1 1
Opcode map field used... For operand type... Unit
Description The src1 operand is multiplied by the src2 operand. The result is placed in dst.
Execution if (cond) src1 src2 → dst
1) If one source is SNaN or QNaN, the result is a signed NaN_out. If either
source is SNaN, the INVAL bit is set also. The sign of NaN_out is the
exclusive-OR of the input signs.
2) Signed infinity multiplied by signed infinity or a normalized number (other
than signed 0) returns signed infinity. Signed infinity multiplied by
signed 0 returns a signed NaN_out and sets the INVAL bit.
3) If one or both sources are signed 0, the result is signed 0 unless the other
source is NaN or signed infinity, in which case the result is signed
4) A denormalized source is treated as signed 0 and the DENn bit is set.
The INEX bit is set except when the other source is signed infinity, signed
NaN, or signed 0. Therefore, a signed infinity multiplied by a denormal-
ized number gives a signed NaN_out and sets the INVAL bit.
5) If rounding is performed, the INEX bit is set.