Lines Matching refs:X
28 #define _FP_FRAC_DECL_2(X) _FP_W_TYPE X##_f0 = 0, X##_f1 = 0 argument
30 #define _FP_FRAC_SET_2(X,I) __FP_FRAC_SET_2(X, I) argument
31 #define _FP_FRAC_HIGH_2(X) (X##_f1) argument
32 #define _FP_FRAC_LOW_2(X) (X##_f0) argument
33 #define _FP_FRAC_WORD_2(X,w) (X##_f##w) argument
35 #define _FP_FRAC_SLL_2(X,N) \ argument
41 X##_f1 = X##_f1 + X##_f1 + (((_FP_WS_TYPE)(X##_f0)) < 0); \
42 X##_f0 += X##_f0; \
46 X##_f1 = X##_f1 << (N) | X##_f0 >> (_FP_W_TYPE_SIZE - (N)); \
47 X##_f0 <<= (N); \
52 X##_f1 = X##_f0 << ((N) - _FP_W_TYPE_SIZE); \
53 X##_f0 = 0; \
57 #define _FP_FRAC_SRL_2(X,N) \ argument
61 X##_f0 = X##_f0 >> (N) | X##_f1 << (_FP_W_TYPE_SIZE - (N)); \
62 X##_f1 >>= (N); \
66 X##_f0 = X##_f1 >> ((N) - _FP_W_TYPE_SIZE); \
67 X##_f1 = 0; \
72 #define _FP_FRAC_SRS_2(X,N,sz) \ argument
76 X##_f0 = (X##_f1 << (_FP_W_TYPE_SIZE - (N)) | X##_f0 >> (N) | \
78 ? X##_f0 & 1 \
79 : (X##_f0 << (_FP_W_TYPE_SIZE - (N))) != 0)); \
80 X##_f1 >>= (N); \
84 X##_f0 = (X##_f1 >> ((N) - _FP_W_TYPE_SIZE) | \
85 (((X##_f1 << (2*_FP_W_TYPE_SIZE - (N))) | X##_f0) != 0)); \
86 X##_f1 = 0; \
90 #define _FP_FRAC_ADDI_2(X,I) \ argument
91 __FP_FRAC_ADDI_2(X##_f1, X##_f0, I)
93 #define _FP_FRAC_ADD_2(R,X,Y) \ argument
94 __FP_FRAC_ADD_2(R##_f1, R##_f0, X##_f1, X##_f0, Y##_f1, Y##_f0)
96 #define _FP_FRAC_SUB_2(R,X,Y) \ argument
97 __FP_FRAC_SUB_2(R##_f1, R##_f0, X##_f1, X##_f0, Y##_f1, Y##_f0)
99 #define _FP_FRAC_DEC_2(X,Y) \ argument
100 __FP_FRAC_DEC_2(X##_f1, X##_f0, Y##_f1, Y##_f0)
102 #define _FP_FRAC_CLZ_2(R,X) \ argument
104 if (X##_f1) \
105 __FP_CLZ(R,X##_f1); \
108 __FP_CLZ(R,X##_f0); \
114 #define _FP_FRAC_NEGP_2(X) ((_FP_WS_TYPE)X##_f1 < 0) argument
115 #define _FP_FRAC_ZEROP_2(X) ((X##_f1 | X##_f0) == 0) argument
116 #define _FP_FRAC_OVERP_2(fs,X) (_FP_FRAC_HIGH_##fs(X) & _FP_OVERFLOW_##fs) argument
117 #define _FP_FRAC_CLEAR_OVERP_2(fs,X) (_FP_FRAC_HIGH_##fs(X) &= ~_FP_OVERFLOW_##fs) argument
118 #define _FP_FRAC_EQ_2(X, Y) (X##_f1 == Y##_f1 && X##_f0 == Y##_f0) argument
119 #define _FP_FRAC_GT_2(X, Y) \ argument
120 (X##_f1 > Y##_f1 || (X##_f1 == Y##_f1 && X##_f0 > Y##_f0))
121 #define _FP_FRAC_GE_2(X, Y) \ argument
122 (X##_f1 > Y##_f1 || (X##_f1 == Y##_f1 && X##_f0 >= Y##_f0))
132 #define __FP_FRAC_SET_2(X,I1,I0) (X##_f0 = I0, X##_f1 = I1) argument
185 #define _FP_UNPACK_RAW_2(fs, X, val) \ argument
189 X##_f0 = _flo.bits.frac0; \
190 X##_f1 = _flo.bits.frac1; \
191 X##_e = _flo.bits.exp; \
192 X##_s = _flo.bits.sign; \
195 #define _FP_UNPACK_RAW_2_P(fs, X, val) \ argument
200 X##_f0 = _flo->bits.frac0; \
201 X##_f1 = _flo->bits.frac1; \
202 X##_e = _flo->bits.exp; \
203 X##_s = _flo->bits.sign; \
211 #define _FP_PACK_RAW_2(fs, val, X) \ argument
215 _flo.bits.frac0 = X##_f0; \
216 _flo.bits.frac1 = X##_f1; \
217 _flo.bits.exp = X##_e; \
218 _flo.bits.sign = X##_s; \
223 #define _FP_PACK_RAW_2_P(fs, val, X) \ argument
228 _flo->bits.frac0 = X##_f0; \
229 _flo->bits.frac1 = X##_f1; \
230 _flo->bits.exp = X##_e; \
231 _flo->bits.sign = X##_s; \
241 #define _FP_MUL_MEAT_2_wide(wfracbits, R, X, Y, doit) \ argument
245 doit(_FP_FRAC_WORD_4(_z,1), _FP_FRAC_WORD_4(_z,0), X##_f0, Y##_f0); \
246 doit(_b_f1, _b_f0, X##_f0, Y##_f1); \
247 doit(_c_f1, _c_f0, X##_f1, Y##_f0); \
248 doit(_FP_FRAC_WORD_4(_z,3), _FP_FRAC_WORD_4(_z,2), X##_f1, Y##_f1); \
271 #define _FP_MUL_MEAT_2_wide_3mul(wfracbits, R, X, Y, doit) \ argument
277 _b_f0 = X##_f0 + X##_f1; \
278 _c1 = _b_f0 < X##_f0; \
281 doit(_d, _FP_FRAC_WORD_4(_z,0), X##_f0, Y##_f0); \
283 doit(_c_f1, _c_f0, X##_f1, Y##_f1); \
311 #define _FP_MUL_MEAT_2_gmp(wfracbits, R, X, Y) \ argument
315 _x[0] = X##_f0; _x[1] = X##_f1; \
337 #define _FP_MUL_MEAT_2_120_240_double(wfracbits, R, X, Y, setfetz, resetfe) \ argument
362 _e240 = (double)(long)(X##_f0 & 0xffffff); \
364 _d240 = (double)(long)((X##_f0 >> 24) & 0xffffff); \
366 _c240 = (double)(long)(((X##_f1 << 16) & 0xffffff) | (X##_f0 >> 48)); \
368 _b240 = (double)(long)((X##_f1 >> 8) & 0xffffff); \
370 _a240 = (double)(long)(X##_f1 >> 32); \
428 #define _FP_DIV_MEAT_2_udiv(fs, R, X, Y) \ argument
431 if (_FP_FRAC_GT_2(X, Y)) \
433 _n_f2 = X##_f1 >> 1; \
434 _n_f1 = X##_f1 << (_FP_W_TYPE_SIZE - 1) | X##_f0 >> 1; \
435 _n_f0 = X##_f0 << (_FP_W_TYPE_SIZE - 1); \
440 _n_f2 = X##_f1; \
441 _n_f1 = X##_f0; \
496 #define _FP_DIV_MEAT_2_gmp(fs, R, X, Y) \ argument
501 if (_FP_FRAC_GT_2(X, Y)) \
504 _x[1] = (X##_f0 << (_FP_WFRACBITS_##fs-1 - _FP_W_TYPE_SIZE) | \
505 X##_f1 >> (_FP_W_TYPE_SIZE - \
507 _x[2] = X##_f1 << (_FP_WFRACBITS_##fs-1 - _FP_W_TYPE_SIZE); \
511 _x[1] = (X##_f0 << (_FP_WFRACBITS_##fs - _FP_W_TYPE_SIZE) | \
512 X##_f1 >> (_FP_W_TYPE_SIZE - \
514 _x[2] = X##_f1 << (_FP_WFRACBITS_##fs - _FP_W_TYPE_SIZE); \
529 #define _FP_SQRT_MEAT_2(R, S, T, X, q) \ argument
534 if (T##_f1 <= X##_f1) \
537 X##_f1 -= T##_f1; \
540 _FP_FRAC_SLL_2(X, 1); \
548 if (T##_f1 < X##_f1 || \
549 (T##_f1 == X##_f1 && T##_f0 <= X##_f0)) \
553 _FP_FRAC_DEC_2(X, T); \
556 _FP_FRAC_SLL_2(X, 1); \
559 if (X##_f0 | X##_f1) \
561 if (S##_f1 < X##_f1 || \
562 (S##_f1 == X##_f1 && S##_f0 < X##_f0)) \
574 #define _FP_FRAC_ASSEMBLE_2(r, X, rsize) \ argument
577 r = X##_f0; \
580 r = X##_f1; \
582 r += X##_f0; \
586 #define _FP_FRAC_DISASSEMBLE_2(X, r, rsize) \ argument
588 X##_f0 = r; \
589 X##_f1 = (rsize <= _FP_W_TYPE_SIZE ? 0 : r >> _FP_W_TYPE_SIZE); \