File tree Expand file tree Collapse file tree 5 files changed +141
-131
lines changed Expand file tree Collapse file tree 5 files changed +141
-131
lines changed Original file line number Diff line number Diff line change @@ -73,7 +73,7 @@ function hashStr(key: string): u64 {
73
73
return XXH64_SEED ;
74
74
}
75
75
var len = key . length << 1 ;
76
- var h : u64 = XXH64_SEED + XXH64_P5 + u64 ( len ) ;
76
+ var h : u64 = 0 ;
77
77
78
78
if ( len >= 32 ) {
79
79
let s1 = XXH64_SEED + XXH64_P1 + XXH64_P2 ;
@@ -105,6 +105,8 @@ function hashStr(key: string): u64 {
105
105
106
106
h += u64 ( len ) ;
107
107
len -= i ;
108
+ } else {
109
+ h = u64 ( len ) + XXH64_SEED + XXH64_P5 ;
108
110
}
109
111
110
112
var i = 0 ;
Original file line number Diff line number Diff line change 16
16
(start $~start )
17
17
(func $~lib/util/hash/hashStr (param $0 i32 )
18
18
(local $1 i32 )
19
- (local $2 i32 )
20
- (local $3 i64 )
21
- (local $4 i32 )
22
- (local $5 i32 )
23
- (local $6 i64 )
24
- (local $7 i64 )
19
+ (local $2 i64 )
20
+ (local $3 i32 )
21
+ (local $4 i64 )
22
+ (local $5 i64 )
23
+ (local $6 i32 )
24
+ (local $7 i32 )
25
25
(local $8 i64 )
26
26
local.get $0
27
27
i32.eqz
36
36
i32.shr_u
37
37
i32.const 1
38
38
i32.shl
39
- local.tee $2
40
- i64.extend_i32_s
41
- i64.const 2870177450012600261
42
- i64.add
43
- local.set $8
44
- local.get $2
39
+ local.tee $3
45
40
i32.const 32
46
41
i32.ge_s
47
- if ( result i32 )
42
+ if
48
43
i64.const 6983438078262162902
49
- local.set $8
44
+ local.set $2
50
45
i64.const -4417276706812531889
51
- local.set $7
46
+ local.set $4
52
47
i64.const 7046029288634856825
53
- local.set $6
54
- local.get $2
48
+ local.set $5
49
+ local.get $3
55
50
i32.const 32
56
51
i32.sub
57
- local.set $2
52
+ local.set $3
58
53
loop $while-continue|0
59
- local.get $2
60
- local.get $5
54
+ local.get $3
55
+ local.get $6
61
56
i32.ge_s
62
57
if
63
- local.get $8
58
+ local.get $2
64
59
local.get $0
65
- local.get $5
60
+ local.get $6
66
61
i32.add
67
- local.tee $4
62
+ local.tee $7
68
63
i64.load
69
64
i64.const -4417276706812531889
70
65
i64.mul
73
68
i64.rotl
74
69
i64.const -7046029288634856825
75
70
i64.mul
76
- local.set $8
77
- local.get $7
71
+ local.set $2
78
72
local.get $4
73
+ local.get $7
79
74
i64.load offset = 8
80
75
i64.const -4417276706812531889
81
76
i64.mul
84
79
i64.rotl
85
80
i64.const -7046029288634856825
86
81
i64.mul
87
- local.set $7
88
- local.get $3
89
- local.get $4
82
+ local.set $4
83
+ local.get $8
84
+ local.get $7
90
85
i64.load offset = 16
91
86
i64.const -4417276706812531889
92
87
i64.mul
95
90
i64.rotl
96
91
i64.const -7046029288634856825
97
92
i64.mul
98
- local.set $3
99
- local.get $6
100
- local.get $4
93
+ local.set $8
94
+ local.get $5
95
+ local.get $7
101
96
i64.load offset = 24
102
97
i64.const -4417276706812531889
103
98
i64.mul
106
101
i64.rotl
107
102
i64.const -7046029288634856825
108
103
i64.mul
109
- local.set $6
110
- local.get $5
104
+ local.set $5
105
+ local.get $6
111
106
i32.const 32
112
107
i32.add
113
- local.set $5
108
+ local.set $6
114
109
br $while-continue|0
115
110
end
116
111
end
117
- local.get $2
112
+ local.get $3
118
113
i64.extend_i32_s
119
- local.get $8
114
+ local.get $2
120
115
i64.const 1
121
116
i64.rotl
122
- local.get $7
117
+ local.get $4
123
118
i64.const 7
124
119
i64.rotl
125
120
i64.add
126
- local.get $3
121
+ local.get $8
127
122
i64.const 12
128
123
i64.rotl
129
124
i64.add
130
- local.get $6
125
+ local.get $5
131
126
i64.const 18
132
127
i64.rotl
133
128
i64.add
134
- local.get $8
129
+ local.get $2
135
130
i64.const -4417276706812531889
136
131
i64.mul
137
132
i64.const 31
143
138
i64.mul
144
139
i64.const -8796714831421723037
145
140
i64.add
146
- local.get $7
141
+ local.get $4
147
142
i64.const -4417276706812531889
148
143
i64.mul
149
144
i64.const 31
155
150
i64.mul
156
151
i64.const -8796714831421723037
157
152
i64.add
158
- local.get $3
153
+ local.get $8
159
154
i64.const -4417276706812531889
160
155
i64.mul
161
156
i64.const 31
167
162
i64.mul
168
163
i64.const -8796714831421723037
169
164
i64.add
170
- local.get $6
165
+ local.get $5
171
166
i64.const -4417276706812531889
172
167
i64.mul
173
168
i64.const 31
180
175
i64.const -8796714831421723037
181
176
i64.add
182
177
i64.add
183
- local.set $8
184
- local.get $2
185
- local.get $5
178
+ local.set $2
179
+ local.get $3
180
+ local.get $6
186
181
i32.sub
182
+ local.set $3
187
183
else
188
- local.get $2
184
+ local.get $3
185
+ i64.extend_i32_s
186
+ i64.const 2870177450012600261
187
+ i64.add
188
+ local.set $2
189
189
end
190
+ local.get $3
190
191
i32.const 8
191
192
i32.sub
192
- local.set $2
193
+ local.set $3
193
194
loop $while-continue|1
194
195
local.get $1
195
- local.get $2
196
+ local.get $3
196
197
i32.le_s
197
198
if
198
- local.get $8
199
+ local.get $2
199
200
local.get $0
200
201
local.get $1
201
202
i32.add
213
214
i64.mul
214
215
i64.const -8796714831421723037
215
216
i64.add
216
- local.set $8
217
+ local.set $2
217
218
local.get $1
218
219
i32.const 8
219
220
i32.add
220
221
local.set $1
221
222
br $while-continue|1
222
223
end
223
224
end
224
- local.get $2
225
+ local.get $3
225
226
local.get $1
226
227
i32.const 4
227
228
i32.add
228
229
i32.ge_s
229
230
if
230
- local.get $8
231
+ local.get $2
231
232
local.get $0
232
233
local.get $1
233
234
i32.add
241
242
i64.mul
242
243
i64.const 1609587929392839161
243
244
i64.add
244
- local.set $8
245
+ local.set $2
245
246
local.get $1
246
247
i32.const 4
247
248
i32.add
248
249
local.set $1
249
250
end
250
251
loop $while-continue|2
251
252
local.get $1
252
- local.get $2
253
+ local.get $3
253
254
i32.lt_s
254
255
if
255
- local.get $8
256
+ local.get $2
256
257
local.get $0
257
258
local.get $1
258
259
i32.add
264
265
i64.rotl
265
266
i64.const -7046029288634856825
266
267
i64.mul
267
- local.set $8
268
+ local.set $2
268
269
local.get $1
269
270
i32.const 1
270
271
i32.add
Original file line number Diff line number Diff line change 65
65
i32.shl
66
66
local.set $2
67
67
i64.const 0
68
- i64.const 2870177450012600261
69
- i64.add
70
- local.get $2
71
- i64.extend_i32_s
72
- i64.add
73
68
local.set $3
74
69
local.get $2
75
70
i32.const 32
284
279
local.get $7
285
280
i32.sub
286
281
local.set $2
282
+ else
283
+ local.get $2
284
+ i64.extend_i32_s
285
+ i64.const 0
286
+ i64.add
287
+ i64.const 2870177450012600261
288
+ i64.add
289
+ local.set $3
287
290
end
288
291
i32.const 0
289
292
local.set $11
You can’t perform that action at this time.
0 commit comments