forked from TCShenanigans/symphony_stdlib
Added a fast path when entry hash = 0
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user