Lines Matching refs:mant
39 unsigned int mant, frac;
70 mant = exp2s[(pwr >> 20) & 7];
75 asm("mulhwu %0,%1,%2" : "=r" (frac) : "r" (frac), "r" (mant));
76 mant += frac;
79 return mant + (exp << 23);
83 mant += 1 << (exp - 1);
84 return mant >> exp;
93 int exp, mant, lz, frac;
96 mant = s & 0x7fffff;
98 if (mant != 0)
102 if ((exp | mant) == 0) /* +0 or -0 */
107 asm("cntlzw %0,%1" : "=r" (lz) : "r" (mant));
108 mant <<= lz - 8;
111 mant |= 0x800000;
115 if (mant >= 0xb504f3) { /* 2^0.5 * 2^23 */
117 asm("mulhwu %0,%1,%2" : "=r" (mant)
118 : "r" (mant), "r" (0xb504f334)); /* 2^-0.5 * 2^32 */
120 if (mant >= 0x9837f0) { /* 2^0.25 * 2^23 */
122 asm("mulhwu %0,%1,%2" : "=r" (mant)
123 : "r" (mant), "r" (0xd744fccb)); /* 2^-0.25 * 2^32 */
125 if (mant >= 0x8b95c2) { /* 2^0.125 * 2^23 */
127 asm("mulhwu %0,%1,%2" : "=r" (mant)
128 : "r" (mant), "r" (0xeac0c6e8)); /* 2^-0.125 * 2^32 */
130 if (mant > 0x800000) { /* 1.0 * 2^23 */
131 /* calculate (mant - 1) * 1.381097463 */
134 : "r" ((mant - 0x800000) << 1), "r" (0xb0c7cd3a));
156 int exp, mant;
159 mant = x & 0x7fffff;
160 if (exp == 255 && mant != 0)
171 mant |= 0x800000;
172 mant = (mant << 7) >> (30 - exp);
173 return (x & 0x80000000)? -mant: mant;
179 unsigned int mant;
182 mant = x & 0x7fffff;
183 if (exp == 255 && mant != 0)
198 mant |= 0x800000;
199 mant = (mant << 8) >> (31 - exp);
200 return mant;