Lines Matching refs:b
62 struct tnum tnum_add(struct tnum a, struct tnum b) in tnum_add() argument
66 sm = a.mask + b.mask; in tnum_add()
67 sv = a.value + b.value; in tnum_add()
70 mu = chi | a.mask | b.mask; in tnum_add()
74 struct tnum tnum_sub(struct tnum a, struct tnum b) in tnum_sub() argument
78 dv = a.value - b.value; in tnum_sub()
80 beta = dv - b.mask; in tnum_sub()
82 mu = chi | a.mask | b.mask; in tnum_sub()
86 struct tnum tnum_and(struct tnum a, struct tnum b) in tnum_and() argument
91 beta = b.value | b.mask; in tnum_and()
92 v = a.value & b.value; in tnum_and()
96 struct tnum tnum_or(struct tnum a, struct tnum b) in tnum_or() argument
100 v = a.value | b.value; in tnum_or()
101 mu = a.mask | b.mask; in tnum_or()
105 struct tnum tnum_xor(struct tnum a, struct tnum b) in tnum_xor() argument
109 v = a.value ^ b.value; in tnum_xor()
110 mu = a.mask | b.mask; in tnum_xor()
122 struct tnum tnum_mul(struct tnum a, struct tnum b) in tnum_mul() argument
124 u64 acc_v = a.value * b.value; in tnum_mul()
130 acc_m = tnum_add(acc_m, TNUM(0, b.mask)); in tnum_mul()
133 acc_m = tnum_add(acc_m, TNUM(0, b.value | b.mask)); in tnum_mul()
136 b = tnum_lshift(b, 1); in tnum_mul()
144 struct tnum tnum_intersect(struct tnum a, struct tnum b) in tnum_intersect() argument
148 v = a.value | b.value; in tnum_intersect()
149 mu = a.mask & b.mask; in tnum_intersect()
167 bool tnum_in(struct tnum a, struct tnum b) in tnum_in() argument
169 if (b.mask & ~a.mask) in tnum_in()
171 b.value &= ~a.mask; in tnum_in()
172 return a.value == b.value; in tnum_in()