46 int c = xlate[buf[0]];
48 if (buflen >= (4 +
EXTRA) && ((uintptr_t)buf & 0x3) == 0) {
53 while ((i +
EXTRA) < (buflen & ~0x3)) {
55 index =
SINDEX(index, state);
56 state =
SLOAD(state_table + index + c);
57 c = xlate[
BYTE1(data)];
59 matches = CheckMatch(ctx, pmq, buf, buflen, state, i, matches, mpm_bitarray);
62 index =
SINDEX(index, state);
63 state =
SLOAD(state_table + index + c);
64 c = xlate[
BYTE2(data)];
66 matches = CheckMatch(ctx, pmq, buf, buflen, state, i, matches, mpm_bitarray);
69 index =
SINDEX(index, state);
70 state =
SLOAD(state_table + index + c);
71 c = xlate[
BYTE3(data)];
73 matches = CheckMatch(ctx, pmq, buf, buflen, state, i, matches, mpm_bitarray);
77 index =
SINDEX(index, state);
78 state =
SLOAD(state_table + index + c);
79 c = xlate[
BYTE0(data)];
81 matches = CheckMatch(ctx, pmq, buf, buflen, state, i, matches, mpm_bitarray);
87 for (; i < buflen; i++) {
89 index =
SINDEX(index, state);
90 state =
SLOAD(state_table + index + c);
94 matches = CheckMatch(ctx, pmq, buf, buflen, state, i, matches, mpm_bitarray);