Lines Matching +full:left +full:- +full:shift

1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * Linux/PA-RISC Project (http://www.parisc-linux.org/)
5 * Floating-point emulation code
6 * Copyright (C) 2001 Hewlett-Packard (Paul Bame) <bame@debian.org>
117 } /* End left NaN or Infinity processing */ in dbl_fsub()
157 /* Set the left operand to the larger one by XOR swap * in dbl_fsub()
165 /* Invariant: left is not smaller than right. */ in dbl_fsub()
188 /* Left is not a zero and must be the result. Trapped in dbl_fsub()
189 * underflows are signaled if left is denormalized. Result in dbl_fsub()
266 diff_exponent = result_exponent - right_exponent; in dbl_fsub()
296 /* A straight forward algorithm would now shift the result in dbl_fsub()
297 * and extension left until the hidden bit becomes one. Not in dbl_fsub()
298 * all of the extension bits need participate in the shift. in dbl_fsub()
300 * needed. If only a single shift is needed then the guard in dbl_fsub()
303 * shift is needed, then all bits to the right of the guard in dbl_fsub()
313 /* Must have been "x-x" or "x+(-x)". */ in dbl_fsub()
319 result_exponent--; in dbl_fsub()
325 /* Denormalized, exponent should be zero. Left operand * in dbl_fsub()
338 /* Check for denormalized, exponent should be zero. Left * in dbl_fsub()
343 /* Shift extension to complete one bit of normalization and in dbl_fsub()
347 /* Discover first one bit to determine shift amount. Use a in dbl_fsub()
355 if((result_exponent -= 8) <= 0 && !underflowtrap) in dbl_fsub()
363 if((result_exponent -= 4) <= 0 && !underflowtrap) in dbl_fsub()
367 * otherwise select the proper shift. */ in dbl_fsub()
383 result_exponent -= 3; in dbl_fsub()
390 result_exponent -= 2; in dbl_fsub()
399 result_exponent -= 1; in dbl_fsub()
423 Dbl_fix_overshift(resultp1,resultp2,(1-result_exponent),extent); in dbl_fsub()
447 * all zeros so no shift is needed. */ in dbl_fsub()