54 register unsigned int opnd1p1, opnd1p2, opnd2p1, opnd2p2;
55 register unsigned int resultp1, resultp2;
56 register int opnd1_exponent, opnd2_exponent, dest_exponent, stepcount;
155 if (opnd1_exponent == 0) {
168 if (opnd2_exponent == 0) {
178 dest_exponent = opnd2_exponent - 1;
179 stepcount = opnd1_exponent - opnd2_exponent;
191 if (stepcount == -1 &&
205 goto testforunderflow;
214 dest_exponent = opnd1_exponent;
215 goto testforunderflow;
225 Dbl_subtract(opnd1p1,opnd1p2,opnd2p1,opnd2p2,opnd1p1,opnd1p2);
234 Dbl_subtract(opnd1p1,opnd1p2,opnd2p1,opnd2p2,opnd1p1,opnd1p2);
237 if (stepcount > 0 ||
Dbl_iszero(opnd1p1,opnd1p2)) {
254 Dbl_subtract(opnd2p1,opnd2p2,opnd1p1,opnd1p2,opnd1p1,opnd1p2);
257 else if (
Dbl_isequal(opnd1p1,opnd1p2,opnd2p1,opnd2p2) && roundup) {
272 if (dest_exponent <= 0) {
286 if (dest_exponent >= (1 -
DBL_P)) {