Hitachi SH7750 Programming Manual page 208

High-performance risc engine superh (sh) 32-bit risc mcu/mpu series
Hide thumbs Also See for SH7750:
Table of Contents

Advertisement

tmpx.x *= DR[m>>1]; /* Precise creation */
tmpd.d *= DR[m>>1]; /* Round to nearest */
if(tmpd.d != tmpx.x) set_I();
if(tmpd.d > tmpx.x) && (FPSCR_RM == 1)) {
tmpd.l[1] -= 1; /* Round to zero */
if(tmpd.l[1] == 0xffffffff) tmpd.l[0] -= 1;
}
check_double_exception(&DR[n>>1], tmpd.d);
}
}
void fipr(int m,n)
{
union {
double d;
int l[2];
}
mlt[4];
float dstf;
if((data_type_of(m) == sNaN) || (data_type_of(n) == sNaN) ||
(data_type_of(m+1) == sNaN) || (data_type_of(n+1) == sNaN) ||
(data_type_of(m+2) == sNaN) || (data_type_of(n+2) == sNaN) ||
(data_type_of(m+3) == sNaN) || (data_type_of(n+3) == sNaN) ||
(check_product_invalid(m,n)) ||
(check_product_invalid(m+1,n+1)) ||
(check_product_invalid(m+2,n+2)) ||
(check_product_invalid(m+3,n+3)) )
else if((data_type_of(m) == qNaN)|| (data_type_of(n) == qNaN)||
(data_type_of(m+1) == qNaN) || (data_type_of(n+1) == qNaN) ||
(data_type_of(m+2) == qNaN) || (data_type_of(n+2) == qNaN) ||
(data_type_of(m+3) == qNaN) || (data_type_of(n+3) == qNaN))
qnan(n+3);
else if (check_ positive_infinity() &&
(check_ negative_infinity())
else if (check_ positive_infinity())
else if (check_ negative_infinity())
else {
for(i=0;i<4;i++) {
/* If FPSCR_DN == 1, zeroize */
if
Rev. 2.0, 03/99, page 194 of 396
(data_type_of(m+i) == PZERO)
invalid(n+3);
invalid(n+3);
inf(n+3,0);
inf(n+3,1);
FR[m+i] = +0.0;

Advertisement

Table of Contents
loading

Table of Contents