if (l < 0) { goto Step4; } else {
if (l >= 0) {
static struct fpn * __fpu_modrem __P((struct fpemu *fe, int modrem));static struct fpn *__fpu_modrem(fe, modrem)     struct fpemu *fe;     int modrem;{    static struct fpn X, Y;    struct fpn *x, *y, *r;    u_int signX, signY, signQ;    int i, j, k, l, q;    int Last_Subtract;    CPYFPN(&X, &fe->fe_f1);    CPYFPN(&Y, &fe->fe_f2);    x = &X;    y = &Y;    r = &fe->fe_f2;    /*     * Step 1     */    signX = x->fp_sign;    signY = y->fp_sign;    signQ = (signX ^ signY);    x->fp_sign = y->fp_sign = 0;    /*     * Step 2     */    l = x->fp_exp - y->fp_exp;    k = 0;    q = 0;    if (l < 0) {	goto Step4;    } else {	CPYFPN(r, x);	r->fp_exp -= l;	j = l;	/*	 * Step 3	 */	while (y->fp_exp != r->fp_exp || y->fp_mant[0] != r->fp_mant[0] ||	       y->fp_mant[1] != r->fp_mant[1] ||	       y->fp_mant[2] != r->fp_mant[2] ||	       y->fp_mant[3] != r->fp_mant[3]) {	    /* Step 3.2 */	    if (y->fp_exp < r->fp_exp || y->fp_mant[0] < r->fp_mant[0] ||		y->fp_mant[1] < r->fp_mant[1] ||		y->fp_mant[2] < r->fp_mant[2] ||		y->fp_mant[3] < r->fp_mant[3]) {		CPYFPN(&fe->fe_f1, r);		CPYFPN(&fe->fe_f2, y);		fe->fe_f2.fp_sign = 1;		r = fpu_add(fe);		q++;	    }	    /* Step 3.3 */	    if (j == 0)		goto Step4;	    /* Step 3.4 */	    k++;	    j--;	    q += q;	    r->fp_exp++;	}	/* Step 9 */	    } Step4:    Last_Subtract = 0;    if (modrem == 0)	goto Step6;    /*     * Step 5     */    /* Step 5.1 */    if (r->fp_exp + 1 < y->fp_exp ||	r->fp_exp + 1 == y->fp_exp &&	(r->fp_mant[0] < y->fp_mant[0] || r->fp_mant[1] < y->fp_mant[1] ||	 r->fp_mant[2] < y->fp_mant[3] || r->fp_mant[4] < y->fp_mant[4]))	/* if r < y/2 */	goto Step6;    /* Step 5.2 */    if (r->fp_exp + 1 != y->fp_exp ||	r->fp_mant[0] != y->fp_mant[0] || r->fp_mant[1] != y->fp_mant[1] ||	r->fp_mant[2] != y->fp_mant[2] || r->fp_mant[3] != y->fp_mant[3]) {	/* if (!(r < y/2) && !(r == y/2)) */	Last_Subtract = 1;	q++;	y->fp_sign = signY;    } else {	/* Step 5.3 */	/* r == y/2 */	if (q % 2) {	    q++;	    signX = !signX;	}    } Step6:    r->fp_sign = signX;    /*     * Step 7     */    if (Last_Subtract) {	CPYFPN(&fe->fe_f1, r);	CPYFPN(&fe->fe_f2, y);	fe->fe_f2.fp_sign = !y->fp_sign;	r = fpu_add(fe);    }    /*     * Step 8     */    q &= 0x7f;    q |= (signQ << 7);    fe->fe_fpframe->fpf_fpsr =	fe->fe_fpsr =	    (fe->fe_fpsr & ~FPSR_QTT) | (q << 16);    return r; Step9:    fe->fe_f1.fp_class = FPC_ZERO;    q++;    q &= 0x7f;    q |= (signQ << 7);    fe->fe_fpframe->fpf_fpsr =	fe->fe_fpsr =	    (fe->fe_fpsr & ~FPSR_QTT) | (q << 16);    return &fe->fe_f1;}