]> wimlib.net Git - wimlib/blobdiff - include/wimlib/bt_matchfinder.h
Split prefetch() into prefetchr() and prefetchw()
[wimlib] / include / wimlib / bt_matchfinder.h
index 78ecdd751c20dd62c5787d52d8a81dda81d35ffb..4fe754c95c3e7f181460ad01bd3b41646bd7a384 100644 (file)
@@ -169,7 +169,7 @@ bt_matchfinder_get_matches(struct bt_matchfinder * const restrict mf,
        unsigned len;
        unsigned best_len = min_len - 1;
 
-       if (unlikely(max_len < LZ_HASH_REQUIRED_NBYTES + 1)) {
+       if (unlikely(max_len < LZ_HASH3_REQUIRED_NBYTES + 1)) {
                *best_len_ret = best_len;
                return lz_matchptr;
        }
@@ -178,7 +178,7 @@ bt_matchfinder_get_matches(struct bt_matchfinder * const restrict mf,
        *next_hash = bt_matchfinder_hash_3_bytes(in_next + 1);
        cur_node = mf->hash_tab[hash];
        mf->hash_tab[hash] = in_next - in_begin;
-       prefetch(&mf->hash_tab[*next_hash]);
+       prefetchw(&mf->hash_tab[*next_hash]);
 
        pending_lt_ptr = bt_left_child(mf, in_next - in_begin);
        pending_gt_ptr = bt_right_child(mf, in_next - in_begin);
@@ -278,14 +278,14 @@ bt_matchfinder_skip_position(struct bt_matchfinder * const restrict mf,
        unsigned best_lt_len, best_gt_len;
        unsigned len;
 
-       if (unlikely(in_end - in_next < LZ_HASH_REQUIRED_NBYTES + 1))
+       if (unlikely(in_end - in_next < LZ_HASH3_REQUIRED_NBYTES + 1))
                return;
 
        hash = *next_hash;
        *next_hash = bt_matchfinder_hash_3_bytes(in_next + 1);
        cur_node = mf->hash_tab[hash];
        mf->hash_tab[hash] = in_next - in_begin;
-       prefetch(&mf->hash_tab[*next_hash]);
+       prefetchw(&mf->hash_tab[*next_hash]);
 
        depth_remaining = max_search_depth;
        pending_lt_ptr = bt_left_child(mf, in_next - in_begin);