EasyManua.ls Logo

Renesas SuperH SH-4A - Page 375

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 355 of 448
#define FPSCR_FR FPSCR>>21&1
#define FPSCR_PR FPSCR>>19&1
#define FPSCR_DN FPSCR>>18&1
#define FPSCR_I FPSCR>>12&1
#define FPSCR_RM FPSCR&1
#define FR_HEX frf.l[ FPSCR_FR]
#define FR frf.f[ FPSCR_FR]
#define DR_HEX frf.l[ FPSCR_FR]
#define DR frf.d[ FPSCR_FR]
#define XF_HEX frf.l[~FPSCR_FR]
#define XF frf.f[~FPSCR_FR]
#define XD frf.d[~FPSCR_FR]
union {
int l[2][16];
float f[2][16];
double d[2][8];
} frf;
int FPSCR;
int sign_of(int n)
{
return(FR_HEX[n]>>31);
}
int data_type_of(int n) {
int abs;
abs = FR_HEX[n] & 0x7fffffff;
if(FPSCR_PR == 0) { /* Single-precision */
if(abs < 0x00800000){
if((FPSCR_DN == 1) || (abs == 0x00000000)){
if(sign_of(n) == 0) {zero(n, 0); return(PZERO);}
else {zero(n, 1); return(NZERO);}
}
else return(DENORM);
}

Table of Contents

Related product manuals