EasyManuals Logo

Renesas SuperH SH-4A User Manual

Renesas SuperH SH-4A
472 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Page #432 background imageLoading...
Page #432 background image
Rev. 1.50, 10/04, page 412 of 448
void normal_fsqrt(int n)
{
union {
float f;
int l;
} dstf,tmpf;
union {
double d;
int l[2];
} dstd,tmpd;
union {
int double x;
int l[4];
} tmpx;
if(FPSCR_PR == 0) {
tmpf.f = FR[n]; /* save destination value */
dstf.f = sqrt(FR[n]); /* round toward nearest or even */
tmpd.d = dstf.f; /* convert single to double */
tmpd.d *= dstf.f;
if(tmpf.f != tmpd.d) set_I();
if((tmpf.f < tmpd.d) && (FPSCR_RM == 1))
dstf.l -= 1; /* round toward zero */
if(FPSCR & ENABLE_I) fpu_exception_trap();
else FR[n] = dstf.f;
} else {
tmpd.d = DR[n>>1]; /* save destination value */
dstd.d = sqrt(DR[n>>1]); /* round toward nearest or even */
tmpx.x = dstd.d; /* convert double to int double */
tmpx.x *= dstd.d;
if(tmpd.d != tmpx.x) set_I();
if((tmpd.d < tmpx.x) && (FPSCR_RM == 1)) {
dstd.l[1] -= 1; /* round toward zero */
if(dstd.l[1] == 0xffffffff) dstd.l[0] -= 1;
}
if(FPSCR & ENABLE_I) fpu_exception_trap();
else DR[n>>1] = dstd.d;
}
}

Table of Contents

Questions and Answers:

Question and Answer IconNeed help?

Do you have a question about the Renesas SuperH SH-4A and is the answer not in the manual?

Renesas SuperH SH-4A Specifications

General IconGeneral
BrandRenesas
ModelSuperH SH-4A
CategoryComputer Hardware
LanguageEnglish

Related product manuals