Encoding:

POOL32F

010101

ft

fs

0

fmt

CVT.D

1001101

POOL32FXf

111011

6

5

5

1

2

7

6

Format:

CVT.D.fmt 

Floating Point Convert to Double Floating Point

CVT.D.S ft, fs

microMIPS

Floating Point Convert to Double Floating Point

CVT.D.W ft, fs

microMIPS

Floating Point Convert to Double Floating Point

CVT.D.L ft, fs

MIPS64, microMIPS

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[ft] = 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 ft. If fmt is S or W, then the operation is always exact.

Restrictions:

The fields fs and ft must specify valid FPRs, fs for type fmt and ft 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 (ft, D, ConvertFmt(ValueFPR(fs, fmt), fmt, D))

Exceptions:

Coprocessor Unusable, Reserved Instruction

Floating Point Exceptions:

Invalid Operation, Unimplemented Operation, Inexact