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