Lines Matching defs:exp
1 /* $NetBSD: fpu_fscale.c,v 1.17 2025/01/06 07:34:24 isaki Exp $ */
41 __KERNEL_RCSID(0, "$NetBSD: fpu_fscale.c,v 1.17 2025/01/06 07:34:24 isaki Exp $");
58 int scale, sign, exp;
207 exp = (fpregs[regnum * 3] & 0x7fff0000) >> 16;
216 exp = 0x7fff;
221 if ((0 < exp && exp < 0x7fff) ||
222 (exp == 0 && (m0 | m1) != 0)) {
224 exp += scale;
225 if (exp < 0) {
229 exp = 0;
230 grs = m1 << (32 + exp);
231 m1 = m0 << (32 + exp) | m1 >> -exp;
232 m0 >>= -exp;
242 exp++;
253 exp++;
259 exp++;
268 exp++;
276 if (exp == 0 && (m0 & 0x80000000) == 0) {
282 } else if (exp >= 0x7fff) {
289 exp--;
294 if (exp >= 0x7fff) {
295 exp = 0x7fff;
304 while (exp > 0 && (m0 & 0x80000000) == 0) {
305 exp--;
312 } /* exp in range and mantissa normalized */
313 } else if (exp == 0 && m0 == 0 && m1 == 0) {
316 } /* else we know exp == 0x7fff */
329 exp = 0x7fff;
341 fpregs[regnum * 3] = sign | (exp << 16);