- const u8 *in_next = in_begin + cur_pos;
- const u8 * const stop_ptr = in_next + count;
-
- if (likely(count + 5 <= end_pos - cur_pos)) {
- u32 hash3, hash4;
- u32 next_seq3, next_seq4;
-
- hash3 = next_hashes[0];
- hash4 = next_hashes[1];
- do {
- mf->hash3_tab[hash3] = in_next - in_begin;
- mf->next_tab[in_next - in_begin] = mf->hash4_tab[hash4];
- mf->hash4_tab[hash4] = in_next - in_begin;
-
- next_seq4 = load_u32_unaligned(++in_next);
- next_seq3 = loaded_u32_to_u24(next_seq4);
- hash3 = lz_hash(next_seq3, HC_MATCHFINDER_HASH3_ORDER);
- hash4 = lz_hash(next_seq4, HC_MATCHFINDER_HASH4_ORDER);
-
- } while (in_next != stop_ptr);
-
- prefetchw(&mf->hash3_tab[hash3]);
- prefetchw(&mf->hash4_tab[hash4]);
- next_hashes[0] = hash3;
- next_hashes[1] = hash4;
- }