Encoding:

COP1

010001

fmt

0

00000

fs

fd

CVT.D

100001

6

5

5

5

5

6

Format:

CVT.D.fmt 

Floating Point Convert to Double Floating Point

CVT.D.S fd, fs

MIPS32

Floating Point Convert to Double Floating Point

CVT.D.W fd, fs

MIPS32

Floating Point Convert to Double Floating Point

CVT.D.L fd, fs

MIPS64, MIPS32 Release 2

Floating Point Convert to Double Floating Point

Purpose:

Floating Point Convert to Double Floating Point

To convert an FP or fixed point value to double FP.

Description:

 FPR[fd] = convert_and_round(FPR[fs])

The value in FPR fs, in format fmt, is converted to a value in double floating point format and rounded according to the current rounding mode in FCSR. The result is placed in FPR fd. If fmt is S or W, then the operation is always exact.

Restrictions:

The fields fs and fd must specify valid FPRs, fs for type fmt and fd for double floating point. If the fields are not valid, the result is UNPREDICTABLE.

The operand must be a value in format fmt; if it is not, the result is UNPREDICTABLE and the value of the operand

FPR becomes UNPREDICTABLE.

For CVT.D.L, the result of this instruction is UNPREDICTABLE if the processor is executing in the FR=0 32-bit

FPU register model.

Operation:

StoreFPR (fd, D, ConvertFmt(ValueFPR(fs, fmt), fmt, D))

Exceptions:

Coprocessor Unusable, Reserved Instruction

Floating Point Exceptions:

Invalid Operation, Unimplemented Operation, Inexact