Lines Matching refs:mask
11 #define TNUM(_v, _m) (struct tnum){.value = _v, .mask = _m}
13 const struct tnum tnum_unknown = { .value = 0, .mask = -1 };
38 return TNUM(a.value << shift, a.mask << shift); in tnum_lshift()
43 return TNUM(a.value >> shift, a.mask >> shift); in tnum_rshift()
53 return TNUM((s64)a.value >> min_shift, (s64)a.mask >> min_shift); in tnum_arshift()
60 sm = a.mask + b.mask; in tnum_add()
64 mu = chi | a.mask | b.mask; in tnum_add()
73 alpha = dv + a.mask; in tnum_sub()
74 beta = dv - b.mask; in tnum_sub()
76 mu = chi | a.mask | b.mask; in tnum_sub()
84 alpha = a.value | a.mask; in tnum_and()
85 beta = b.value | b.mask; in tnum_and()
95 mu = a.mask | b.mask; in tnum_or()
104 mu = a.mask | b.mask; in tnum_xor()
111 static struct tnum hma(struct tnum acc, u64 value, u64 mask) in hma() argument
113 while (mask) { in hma()
114 if (mask & 1) in hma()
116 mask >>= 1; in hma()
128 acc = hma(TNUM(pi, 0), a.mask, b.mask | b.value); in tnum_mul()
129 return hma(acc, b.mask, a.value); in tnum_mul()
140 mu = a.mask & b.mask; in tnum_intersect()
147 a.mask &= (1ULL << (size * 8)) - 1; in tnum_cast()
155 return !((a.value | a.mask) & (size - 1)); in tnum_is_aligned()
160 if (b.mask & ~a.mask) in tnum_in()
162 b.value &= ~a.mask; in tnum_in()
168 return snprintf(str, size, "(%#llx; %#llx)", a.value, a.mask); in tnum_strn()
178 if (a.mask & 1) in tnum_sbin()
185 a.mask >>= 1; in tnum_sbin()