EasyManua.ls Logo

Renesas SuperH SH-4A - Page 441

Renesas SuperH SH-4A
472 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
Rev. 1.50, 10/04, page 421 of 448
else{ /* case FPSCR.PR=1 */
case(ftrc_double_type_of(m)){
NORM: *FPUL = DR[m>>1]; break;
PINF: ftrc_invalid(0,*FPUL); break;
NINF: ftrc_invalid(1, *FPUL); break;
}
}
}
int ftrc_signle_type_of(int m)
{
if(sign_of(m) == 0){
if(FR_HEX[m] > 0x7f800000) return(NINF); /* NaN */
else if(FR_HEX[m] > P_INT_SINGLE_RANGE)
return(PINF); /* out of range,+INF */
else return(NORM); /* +0,+NORM */
} else {
if((FR_HEX[m] & 0x7fffffff) > N_INT_SINGLE_RANGE)
return(NINF); /* out of range ,+INF,NaN*/
else return(NORM); /* -0,-NORM */
}
}
int ftrc_double_type_of(int m)
{
if(sign_of(m) == 0){
if((FR_HEX[m] > 0x7ff00000) ||
((FR_HEX[m] == 0x7ff00000) &&
(FR_HEX[m+1] != 0x00000000))) return(NINF); /* NaN */
else if(DR_HEX[m>>1] >= P_INT_DOUBLE_RANGE)
return(PINF); /* out of range,+INF */
else return(NORM); /* +0,+NORM */
} else {
if((DR_HEX[m>>1] & 0x7fffffffffffffff) >= N_INT_DOUBLE_RANGE)
return(NINF); /* out of range ,+INF,NaN*/
else return(NORM); /* -0,-NORM */
}
}

Table of Contents

Related product manuals