Lines Matching defs:masks
87 std::vector<Addr> masks;
101 * If the user provides a non empty vector of masks then the
104 * starting from the least significant bit (i.e., masks[0]
123 * @param _masks The input vector of masks
128 : _start(_start), _end(_end), masks(_masks),
132 fatal_if(!masks.empty() && _intlv_match >= ULL(1) << masks.size(),
134 _intlv_match, masks.size());
163 : _start(_start), _end(_end), masks(_intlv_bits),
194 masks[_intlv_bits - i - 1] = mask;
215 masks = ranges.front().masks;
222 if (ranges.size() != (ULL(1) << masks.size()))
224 ranges.size(), masks.size());
238 masks.clear();
248 bool interleaved() const { return masks.size() > 0; }
259 for (auto mask: masks) {
275 uint32_t stripes() const { return ULL(1) << masks.size(); }
284 return (_end - _start + 1) >> masks.size();
311 for (int i = 0; i < masks.size(); i++) {
313 Addr mask = masks[i];
338 r.masks == masks;
412 for (int i = 0; i < masks.size(); i++) {
413 Addr masked = a & masks[i];
436 * where x0 is the LSB set in masks[0]
437 * and x1 is the LSB set in masks[1]
450 int masks_lsb[masks.size()];
451 for (int i = 0; i < masks.size(); i++) {
452 masks_lsb[i] = ctz64(masks[i]);
457 std::sort(masks_lsb, masks_lsb + masks.size());
459 for (int i = 0; i < masks.size(); i++) {
518 if (masks != r.masks) return false;