Lines Matching +full:non +full:- +full:sticky

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>
10 PA header file -- do not include this header file for non-PA builds.
13 /* 32-bit word grabbing functions */
65 #define Sgl_decrement(sgl_value) Sall(sgl_value) -= 1
156 (SGL_INFINITY_EXPONENT << (32-(1+SGL_EXP_LENGTH))))
158 Sall(sgl_value) = (SGL_INFINITY_EXPONENT << (32-(1+SGL_EXP_LENGTH)))
160 Sall(sgl_value) = (SGL_INFINITY_EXPONENT << (32-(1+SGL_EXP_LENGTH))) \
163 Sall(sgl_value) = (SGL_INFINITY_EXPONENT << (32-(1+SGL_EXP_LENGTH))) | \
180 #define ovfl -
186 Sall(sgl_value) = ((SGL_EMAX+SGL_BIAS) << (32-(1+SGL_EXP_LENGTH))) \
187 | ((1<<(32-(1+SGL_EXP_LENGTH))) - 1 )
189 Sall(sgl_value) = ((SGL_EMAX+SGL_BIAS) << (32-(1+SGL_EXP_LENGTH))) \
190 | ((1<<(32-(1+SGL_EXP_LENGTH))) - 1 ) \
195 ((1<<SGL_EXP_LENGTH) | SGL_INFINITY_EXPONENT) << (32-(1+SGL_EXP_LENGTH))
198 (((SGL_EMAX+SGL_BIAS) << (32-(1+SGL_EXP_LENGTH))) \
199 | ((1 << (32-(1+SGL_EXP_LENGTH))) - 1 ))
202 (((SGL_EMAX+SGL_BIAS) << (32-(1+SGL_EXP_LENGTH))) \
203 | ((1 << (32-(1+SGL_EXP_LENGTH))) - 1 ))
209 Extall(extent) = Sall(srcdst) << (32-(shift)); \
222 Sall(sgl_result) = Sall(sgl_left) - Sall(sgl_right)
229 if((Extall(extent) = 0-Extall(extent))) \
230 Sall(result) = Sall(result)-1
243 Sall(dest) = ((SGL_EMAX+SGL_BIAS)+1)<< (32-(1+SGL_EXP_LENGTH)) \
244 | (1<<(32-(1+SGL_EXP_LENGTH+2)))
246 Sall(dest) = ((SGL_EMAX+SGL_BIAS)+1)<< (32-(1+SGL_EXP_LENGTH)) \
247 | (1<<(32-(1+SGL_EXP_LENGTH+1)))
252 exponent -= 8; \
256 exponent -= 4; \
260 exponent -= 1; \
289 #define Sgl_denormalize(opnd,exponent,guard,sticky,inexact) \ argument
291 if (exponent >= (1 - SGL_P)) { \
292 guard = (Sall(opnd) >> -exponent) & 1; \
293 if (exponent < 0) sticky |= Sall(opnd) << (32+exponent); \
294 inexact = guard | sticky; \
295 Sall(opnd) >>= (1-exponent); \
299 sticky |= Sall(opnd); \
300 inexact = sticky; \
336 {int shiftamt, sticky; \
338 sticky = 0; \
341 sticky = Sextallp2(srcdstB) << 32 - (shiftamt); \
348 sticky = (Sextallp1(srcdstA) << 32 - (shiftamt)) | \
352 sticky = Sextallp2(srcdstB); \
358 if (sticky) Sglext_setone_lowmantissap2(srcdstB); \
363 if( Sextallp2(rightb) > Sextallp2(leftb) ) Sextallp1(lefta)--; \
364 Sextallp2(resultb) = Sextallp2(leftb) - Sextallp2(rightb); \
365 Sextallp1(resulta) = Sextallp1(lefta) - Sextallp1(righta)
422 {int sticky; \
447 if (exponent >= (1-DBL_P)) { \
448 if (exponent >= -31) { \
449 if (exponent > -31) { \
450 sticky = Sextallp2(opndp2) << 31+exponent; \
451 Variable_shift_double(opndp1,opndp2,1-exponent,opndp2); \
452 Sextallp1(opndp1) >>= 1-exponent; \
455 sticky = Sextallp2(opndp2); \
461 sticky = (Sextallp1(opndp1) << 31+exponent) | \
463 Sextallp2(opndp2) = Sextallp1(opndp1) >> -31-exponent; \
468 sticky = Sextallp1(opndp1) | Sextallp2(opndp2); \
471 if (sticky) Sglext_setone_lowmantissap2(opndp2); \