_f1
#define PIN_GRP_GPIO_3(_name, _start, _nr, _mask, _v1, _v2, _v3, _f1, _f2) \
.funcs = {_f1, _f2, "gpio"} \
_f1, _f2) \
.funcs = {_f1, _f2} \
#define MFIO_MUX_PIN_GROUP(_pin, _f0, _f1, _f2, _reg, _shift, _mask) \
PISTACHIO_FUNCTION_##_f1, \
typeof(__f[0]) _f1 = __f[index1]; typeof(__f[0]) _f2 = __f[index2]; \
BUILD_BUG_ON_MSG(_ascending && _f1.startbit >= _f2.startbit, \
BUILD_BUG_ON_MSG(!_ascending && _f1.startbit <= _f2.startbit, \
BUILD_BUG_ON_MSG(max(_f1.endbit, _f2.endbit) <= \
min(_f1.startbit, _f2.startbit), \
__FP_CLZ(R,X##_f1); \
#define _FP_FRAC_NEGP_2(X) ((_FP_WS_TYPE)X##_f1 < 0)
#define _FP_FRAC_ZEROP_2(X) ((X##_f1 | X##_f0) == 0)
#define _FP_FRAC_EQ_2(X, Y) (X##_f1 == Y##_f1 && X##_f0 == Y##_f0)
(X##_f1 > Y##_f1 || (X##_f1 == Y##_f1 && X##_f0 > Y##_f0))
(X##_f1 > Y##_f1 || (X##_f1 == Y##_f1 && X##_f0 >= Y##_f0))
#define __FP_FRAC_SET_2(X,I1,I0) (X##_f0 = I0, X##_f1 = I1)
X##_f1 = _flo.bits.frac1; \
X##_f1 = _flo->bits.frac1; \
_flo.bits.frac1 = X##_f1; \
_flo->bits.frac1 = X##_f1; \
doit(_b_f1, _b_f0, X##_f0, Y##_f1); \
doit(_c_f1, _c_f0, X##_f1, Y##_f0); \
doit(_FP_FRAC_WORD_4(_z,3), _FP_FRAC_WORD_4(_z,2), X##_f1, Y##_f1); \
R##_f1 = _FP_FRAC_WORD_4(_z,1); \
_b_f0 = X##_f0 + X##_f1; \
_b_f1 = Y##_f0 + Y##_f1; \
doit(_c_f1, _c_f0, X##_f1, Y##_f1); \
#define _FP_FRAC_DECL_2(X) _FP_W_TYPE X##_f0 = 0, X##_f1 = 0
#define _FP_FRAC_COPY_2(D,S) (D##_f0 = S##_f0, D##_f1 = S##_f1)
R##_f1 = _FP_FRAC_WORD_4(_z,1); \
#define _FP_FRAC_HIGH_2(X) (X##_f1)
_x[0] = X##_f0; _x[1] = X##_f1; \
_y[0] = Y##_f0; _y[1] = Y##_f1; \
R##_f1 = _z_f[1]; \
_c240 = (double)(long)(((X##_f1 << 16) & 0xffffff) | (X##_f0 >> 48)); \
_h240 = (double)(long)(((Y##_f1 << 16) & 0xffffff) | (Y##_f0 >> 48)); \
_b240 = (double)(long)((X##_f1 >> 8) & 0xffffff); \
_g240 = (double)(long)((Y##_f1 >> 8) & 0xffffff); \
_a240 = (double)(long)(X##_f1 >> 32); \
_f240 = (double)(long)(Y##_f1 >> 32); \
X##_f1 = X##_f1 + X##_f1 + \
R##_f1 = (_t240 << (128 - (wfracbits - 1))) \
X##_f1 = X##_f1 << (N) | X##_f0 >> \
_n_f2 = X##_f1 >> 1; \
_n_f1 = X##_f1 << (_FP_W_TYPE_SIZE - 1) | X##_f0 >> 1; \
_n_f2 = X##_f1; \
udiv_qrnnd(R##_f1, _r_f1, _n_f2, _n_f1, Y##_f1); \
umul_ppmm(_m_f1, _m_f0, R##_f1, Y##_f0); \
R##_f1--; \
R##_f1--; \
if (_r_f1 == Y##_f1) \
udiv_qrnnd(R##_f0, _r_f1, _r_f1, _r_f0, Y##_f1); \
X##_f1 = X##_f0 << ((N) - _FP_W_TYPE_SIZE); \
_y[0] = Y##_f0; _y[1] = Y##_f1; \
X##_f1 >> (_FP_W_TYPE_SIZE - \
_x[2] = X##_f1 << (_FP_WFRACBITS_##fs-1 - _FP_W_TYPE_SIZE); \
X##_f1 >> (_FP_W_TYPE_SIZE - \
_x[2] = X##_f1 << (_FP_WFRACBITS_##fs - _FP_W_TYPE_SIZE); \
R##_f1 = _z[1]; \
T##_f1 = S##_f1 + q; \
if (T##_f1 <= X##_f1) \
S##_f1 = T##_f1 + q; \
X##_f1 -= T##_f1; \
R##_f1 += q; \
T##_f1 = S##_f1; \
if (T##_f1 < X##_f1 || \
(T##_f1 == X##_f1 && T##_f0 <= X##_f0)) \
S##_f1 += (T##_f0 > S##_f0); \
if (X##_f0 | X##_f1) \
if (S##_f1 < X##_f1 || \
(S##_f1 == X##_f1 && S##_f0 < X##_f0)) \
X##_f0 = X##_f0 >> (N) | X##_f1 << (_FP_W_TYPE_SIZE - (N)); \
(r) = X##_f1; \
X##_f1 >>= (N); \
X##_f1 = (rsize <= _FP_W_TYPE_SIZE ? 0 : r >> _FP_W_TYPE_SIZE); \
D##_f1 = 0; \
X##_f0 = X##_f1 >> ((N) - _FP_W_TYPE_SIZE); \
X##_f1 = 0; \
X##_f0 = (X##_f1 << (_FP_W_TYPE_SIZE - (N)) | X##_f0 >> (N) \
X##_f1 >>= (N); \
X##_f0 = (X##_f1 >> ((N) - _FP_W_TYPE_SIZE) \
: (X##_f1 << (2*_FP_W_TYPE_SIZE - (N)))) \
X##_f1 = 0; \
__FP_FRAC_ADDI_2(X##_f1, X##_f0, I)
__FP_FRAC_ADD_2(R##_f1, R##_f0, X##_f1, X##_f0, Y##_f1, Y##_f0)
__FP_FRAC_SUB_2(R##_f1, R##_f0, X##_f1, X##_f0, Y##_f1, Y##_f0)
__FP_FRAC_DEC_2(X##_f1, X##_f0, Y##_f1, Y##_f0)
if (X##_f1) \
D##_f1 = S##_f[1]; \
D##_f[1] = S##_f1; \
volatile futex_t _f1 = 0;
f1 = &_f1;
volatile futex_t _f1 = 0;
f1 = &_f1;