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);
}
Summary of Contents for SuperH SH-4A
Page 2: ...Rev 1 50 10 04 page ii of xx ...
Page 8: ...Rev 1 50 10 04 page viii of xx ...
Page 116: ...Rev 1 50 10 04 page 96 of 448 ...
Page 178: ...Rev 1 50 10 04 page 158 of 448 ...
Page 206: ...Rev 1 50 10 04 page 186 of 448 ...
Page 231: ...Rev 1 50 10 04 page 211 of 448 Possible Exceptions Slot illegal instruction exception ...
Page 235: ...Rev 1 50 10 04 page 215 of 448 Possible Exceptions Slot illegal instruction exception ...
Page 238: ...Rev 1 50 10 04 page 218 of 448 Possible Exceptions Slot illegal instruction exception ...
Page 408: ...Rev 1 50 10 04 page 388 of 448 Possible Exceptions Inexact Not generated when FPSCR PR 1 ...
Page 446: ...Rev 1 50 10 04 page 426 of 448 ...
Page 468: ...Rev 1 50 10 04 page 448 of 448 ...
Page 471: ......
Page 472: ...SH 4A Software Manual ...