FP_NG
if (fpu_shr(fp, FP_NMANT - 1 - FP_NG - exp) != 0) {
(void) fpu_shr(fp, FP_NMANT - FP_NG - SNG_FRACBITS - exp);
(void) fpu_shr(fp, FP_NMANT - FP_NG - 1 - SNG_FRACBITS);
if ((fp->fp_mant[2] & SNG_EXP(1 << FP_NG)) == 0)
(void) fpu_shr(fp, FP_NMANT - FP_NG - DBL_FRACBITS - exp);
(void) fpu_shr(fp, FP_NMANT - FP_NG - 1 - DBL_FRACBITS);
(void) fpu_shr(fp, FP_NMANT - FP_NG - EXT_FRACBITS - exp);
#if (FP_NMANT - FP_NG - EXT_FRACBITS) > 0
(void) fpu_shr(fp, FP_NMANT - FP_NG - EXT_FRACBITS);
m2 = (m2 >> FP_NG) | (m1 << (32 - FP_NG));
m1 = (m1 >> FP_NG) | (m0 << (32 - FP_NG));
m0 >>= FP_NG;
if (rsh <= FP_NG) {
fpu_shr(x, rsh - FP_NG);
bit = 1 << FP_NG;
m2 = (m2 >> FP_NG) | (m1 << (32 - FP_NG));
m1 = (m1 >> FP_NG) | (m0 << (32 - FP_NG));
m0 >>= FP_NG;
(void) fpu_shr(fp, FP_NMANT - FP_NG - SNG_FRACBITS - exp);
(void) fpu_shr(fp, FP_NMANT - FP_NG - 1 - SNG_FRACBITS);
if ((fp->fp_mant[3] & SNG_EXP(1 << FP_NG)) == 0)
(void) fpu_shr(fp, FP_NMANT - FP_NG - DBL_FRACBITS - exp);
(void) fpu_shr(fp, FP_NMANT - FP_NG - 1 - DBL_FRACBITS);
m3 = (m3 >> FP_NG) | (m2 << (32 - FP_NG));
bit = 1 << FP_NG;
(void) fpu_shr(fp, FP_NMANT - FP_NG - SNG_FRACBITS - exp);
(void) fpu_shr(fp, FP_NMANT - FP_NG - 1 - SNG_FRACBITS);
if ((fp->fp_mant[3] & SNG_EXP(1 << FP_NG)) == 0)
(void) fpu_shr(fp, FP_NMANT - FP_NG - DBL_FRACBITS - exp);
(void) fpu_shr(fp, FP_NMANT - FP_NG - 1 - DBL_FRACBITS);
(void) fpu_shr(fp, FP_NMANT - FP_NG - EXT_FRACBITS - exp);
m3 = (m3 >> FP_NG) | (m2 << (32 - FP_NG));
m2 = (m2 >> FP_NG) | (m1 << (32 - FP_NG));
m1 = (m1 >> FP_NG) | (m0 << (32 - FP_NG));
m0 >>= FP_NG;
bit = 1 << FP_NG;