Added a fast path when entry hash = 0

This commit is contained in:
Michał Isalski
2026-09-16 20:14:14 +02:00
parent e309ee4fda
commit 2c2d6ec140
+8
View File
@@ -78,6 +78,8 @@ pub contains:
add r9, r2, r3 ; Pointer to bucket add r9, r2, r3 ; Pointer to bucket
load_32 r3, [r9] ; First hash load_32 r3, [r9] ; First hash
cmp r3, rz
je contains_notfourth ; If hash is zero, no items left to check
cmp r12, r3 cmp r12, r3
jne contains_notfirst jne contains_notfirst
; First item hash passed - checking equality ; First item hash passed - checking equality
@@ -87,6 +89,8 @@ pub contains:
contains_notfirst: contains_notfirst:
add r9, r9, 8 add r9, r9, 8
load_32 r3, [r9] ; Second hash load_32 r3, [r9] ; Second hash
cmp r3, rz
je contains_notfourth ; If hash is zero, no items left to check
cmp r12, r3 cmp r12, r3
jne contains_notsecond jne contains_notsecond
; Second item hash passed - checking equality ; Second item hash passed - checking equality
@@ -96,6 +100,8 @@ pub contains:
contains_notsecond: contains_notsecond:
add r9, r9, 8 add r9, r9, 8
load_32 r3, [r9] ; Third hash load_32 r3, [r9] ; Third hash
cmp r3, rz
je contains_notfourth ; If hash is zero, no items left to check
cmp r12, r3 cmp r12, r3
jne contains_notthird jne contains_notthird
; Third item hash passed - checking equality ; Third item hash passed - checking equality
@@ -105,6 +111,8 @@ pub contains:
contains_notthird: contains_notthird:
add r9, r9, 8 add r9, r9, 8
load_32 r3, [r9] ; Fourth hash load_32 r3, [r9] ; Fourth hash
cmp r3, rz
je contains_notfourth ; If hash is zero, no items left to check
cmp r12, r3 cmp r12, r3
jne contains_notfourth jne contains_notfourth
; Fourth item hash passed - checking equality ; Fourth item hash passed - checking equality