EasyManua.ls Logo

Renesas SuperH SH-4A - Page 378

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 358 of 448
if(type == FADD) srcd.d = DR[m>>1];
else srcd.d = -DR[m>>1];
dstx.x = DR[n>>1];
/* Conversion from double-precision to extended double-precision */
dstx.x += srcd.d;
if(((dstx.x == DR[n>>1]) && (srcd.d != 0.0)) ||
((dstx.x == srcd.d) && (DR[n>>1] != 0.0)) ) {
set_I();
if(sign_of(m)^ sign_of(n)) {
dstx.l[3] -= 1;
if(dstx.l[3] == 0xffffffff) {dstx.l[2] -= 1;
if(dstx.l[2] == 0xffffffff) {dstx.l[1] -= 1;
if(dstx.l[1] == 0xffffffff) {dstx.l[0] -= 1;}}}
}
}
if((dstx.l[2] & 0x0fffffff) || dstx.l[3]) set_I();
dst.d += srcd.d; /* Round to nearest */
if(FPSCR_RM == 1) {
dstx.l[2] &= 0xf0000000; /* Round to zero */
dstx.l[3] = 0x00000000;
dst.d = dstx.x;
}
check_double_exception(&DR[n>>1] ,dst.d);
}
}
void normal_fmul(int m,n)
{
union {
float f;
int l;
} tmpf;
union {
double d;
int l[2];
} tmpd;

Table of Contents

Related product manuals