byte_match_count2 (buf, n, xm, m1, m2, m3, m4) unsigned *buf; unsigned n; unsigned xm; unsigned m1, m2, m3, m4; { unsigned w, cnt = 0; unsigned *bp; n /= 4; bp = buf; while (bp < buf + n) { w = *bp++; w ^= xm; cnt += ((m1 & w) == 0); cnt += ((m2 & w) == 0); cnt += ((m3 & w) == 0); cnt += ((m4 & w) == 0); w = *bp++; w ^= xm; cnt += ((m1 & w) == 0); cnt += ((m2 & w) == 0); cnt += ((m3 & w) == 0); cnt += ((m4 & w) == 0); w = *bp++; w ^= xm; cnt += ((m1 & w) == 0); cnt += ((m2 & w) == 0); cnt += ((m3 & w) == 0); cnt += ((m4 & w) == 0); w = *bp++; w ^= xm; cnt += ((m1 & w) == 0); cnt += ((m2 & w) == 0); cnt += ((m3 & w) == 0); cnt += ((m4 & w) == 0); } return cnt; }