10.29
FCNVSD
Single-Precision
to Double-Precision
Conversion
PR
Format
0
—
1
FCNVSD FPUL, DRn
Description
When FPSCR.PR = 1: This instruction converts the single-precision floating-point number in
FPUL to a double-precision floating-point number, and stores the result in DRn.
Operation
void FCNVSD(int n, float *FPUL){
pc += 2;
clear_cause();
case((FPSCR_PR){
0:
1:
}
}
void fcnvsd(int n, float *FPUL)
{
case(fpul_type(FPUL)){
PZERO :
NZERO :
PINF
NINF
DENORM :
qNaN
sNaN
}
}
int fpul_type(int *FPUL)
Rev. 2.0, 03/99, page 252 of 396
Floating-point CoNVert
Single to Double precision
Summary of Operation Instruction Code
—
(double) FPUL → DRn
undefined_operation();
fcnvsd (n, *FPUL);
:
:
DR[n>>1] = *FPUL;
set_E();
:
qnan(n);
:
invalid(n);
Floating-Point Instruction
—
1111nnn010101101 2
/* reserved */
break;
/* FCNVSD */
break;
break;
break;
break;
Execution
States
T Bit
—
—
—