From 2c2d6ec140b5e4843e7bfac3a47cea398fb0e047 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Isalski?= Date: Wed, 16 Sep 2026 20:14:14 +0200 Subject: [PATCH] Added a fast path when entry hash = 0 --- src/hashset.asm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/hashset.asm b/src/hashset.asm index 5fee078..e1293ed 100644 --- a/src/hashset.asm +++ b/src/hashset.asm @@ -78,6 +78,8 @@ pub contains: add r9, r2, r3 ; Pointer to bucket load_32 r3, [r9] ; First hash + cmp r3, rz + je contains_notfourth ; If hash is zero, no items left to check cmp r12, r3 jne contains_notfirst ; First item hash passed - checking equality @@ -87,6 +89,8 @@ pub contains: contains_notfirst: add r9, r9, 8 load_32 r3, [r9] ; Second hash + cmp r3, rz + je contains_notfourth ; If hash is zero, no items left to check cmp r12, r3 jne contains_notsecond ; Second item hash passed - checking equality @@ -96,6 +100,8 @@ pub contains: contains_notsecond: add r9, r9, 8 load_32 r3, [r9] ; Third hash + cmp r3, rz + je contains_notfourth ; If hash is zero, no items left to check cmp r12, r3 jne contains_notthird ; Third item hash passed - checking equality @@ -105,6 +111,8 @@ pub contains: contains_notthird: add r9, r9, 8 load_32 r3, [r9] ; Fourth hash + cmp r3, rz + je contains_notfourth ; If hash is zero, no items left to check cmp r12, r3 jne contains_notfourth ; Fourth item hash passed - checking equality