Add hash.djbx33a

This commit is contained in:
gingerBill
2021-12-29 12:01:07 +00:00
parent a66f859fb4
commit a9b17b5a37
+18
View File
@@ -0,0 +1,18 @@
package hash
djbx33a :: proc(data: []byte) -> (result: [16]byte) #no_bounds_check {
state := [4]u32{5381, 5381, 5381, 5381}
s: u32 = 0
for p in data {
state[s] = (state[s] << 5) + state[s] + u32(p)
s = (s + 1) & 3
}
(^u32le)(&result[0])^ = u32le(state[0])
(^u32le)(&result[4])^ = u32le(state[1])
(^u32le)(&result[8])^ = u32le(state[2])
(^u32le)(&result[12])^ = u32le(state[3])
return
}