MPYSP2DP
Multiply Two Single-Precision Floating-Point Values for Double-Precision Result (C67x+ CPU)
3-170
Instruction Set
SPRU733
Multiply Two Single-Precision Floating-Point Values for
Double-Precision Result
MPYSP2DP
Syntax
MPYSP2DP
(.unit)
src1
,
src2
,
dst
.unit = .M1 or .M2
Compatibility
C67x+ CPU only
Opcode
31
29
28
27
23
22
18
17
13
12
11
7
6
5
4
3
2
1
0
creg
z
dst
src2
src1
x 0 1 0 1 1 1 1 1 0 0
s p
3
1
5
5
5
1
1
1
Opcode map field used...
For operand type...
Unit
src1
src2
dst
sp
xsp
sp
.M1, .M2
Description
The
src1
operand is multiplied by the
src2
operand to produce a
double-precision result. The result is placed in
dst
.
Execution
if (cond)
src1
src2
→
dst
else
nop
Notes:
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
NaN_out.
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.