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) <[email protected]>
117 } /* End left NaN or Infinity processing */ in dbl_fadd()
156 /* Set the left operand to the larger one by XOR swap * in dbl_fadd()
163 /* Invariant: left is not smaller than right. */ in dbl_fadd()
185 /* Left is not a zero and must be the result. Trapped in dbl_fadd()
186 * underflows are signaled if left is denormalized. Result in dbl_fadd()
263 diff_exponent = result_exponent - right_exponent; in dbl_fadd()
293 /* A straight forward algorithm would now shift the result in dbl_fadd()
294 * and extension left until the hidden bit becomes one. Not in dbl_fadd()
295 * all of the extension bits need participate in the shift. in dbl_fadd()
297 * needed. If only a single shift is needed then the guard in dbl_fadd()
300 * shift is needed, then all bits to the right of the guard in dbl_fadd()
310 /* Must have been "x-x" or "x+(-x)". */ in dbl_fadd()
316 result_exponent--; in dbl_fadd()
322 /* Denormalized, exponent should be zero. Left operand * in dbl_fadd()
335 /* Check for denormalized, exponent should be zero. Left * in dbl_fadd()
340 /* Shift extension to complete one bit of normalization and in dbl_fadd()
344 /* Discover first one bit to determine shift amount. Use a in dbl_fadd()
352 if((result_exponent -= 8) <= 0 && !underflowtrap) in dbl_fadd()
360 if((result_exponent -= 4) <= 0 && !underflowtrap) in dbl_fadd()
364 * otherwise select the proper shift. */ in dbl_fadd()
380 result_exponent -= 3; in dbl_fadd()
387 result_exponent -= 2; in dbl_fadd()
396 result_exponent -= 1; in dbl_fadd()
420 Dbl_fix_overshift(resultp1,resultp2,(1-result_exponent),extent); in dbl_fadd()
444 * all zeros so no shift is needed. */ in dbl_fadd()