@@ -156,10 +156,6 @@ const nSmalls = 100
156156// smalls is the formatting of 00..99 concatenated.
157157// It is then padded out with 56 x's to 256 bytes,
158158// so that smalls[x&0xFF] has no bounds check.
159- //
160- // TODO(rsc): Once the compiler does a better job
161- // at tracking mod bounds, the &0xFF should not be needed:
162- // go.dev/issue/75954 and go.dev/issue/63110.
163159const smalls = "00010203040506070809" +
164160 "10111213141516171819" +
165161 "20212223242526272829" +
@@ -169,13 +165,7 @@ const smalls = "00010203040506070809" +
169165 "60616263646566676869" +
170166 "70717273747576777879" +
171167 "80818283848586878889" +
172- "90919293949596979899" +
173- "xxxxxxxxxxxxxxxxxxxx" +
174- "xxxxxxxxxxxxxxxxxxxx" +
175- "xxxxxxxxxxxxxxxxxxxx" +
176- "xxxxxxxxxxxxxxxxxxxx" +
177- "xxxxxxxxxxxxxxxxxxxx" +
178- "xxxxxx"
168+ "90919293949596979899"
179169
180170const host64bit = ^ uint (0 )>> 32 != 0
181171
@@ -215,15 +205,15 @@ func formatBase10(a []byte, u uint64) int {
215205 var dd uint
216206 u , dd = u / 100 , (u % 100 )* 2
217207 i -= 2
218- a [i + 0 ], a [i + 1 ] = smalls [( dd + 0 ) & 0xFF ], smalls [( dd + 1 ) & 0xFF ]
208+ a [i + 0 ], a [i + 1 ] = smalls [dd + 0 ], smalls [dd + 1 ]
219209 }
220210
221211 dd := u * 2
222212 i --
223- a [i ] = smalls [( dd + 1 ) & 0xFF ]
213+ a [i ] = smalls [dd + 1 ]
224214 if u >= 10 {
225215 i --
226- a [i ] = smalls [( dd + 0 ) & 0xFF ]
216+ a [i ] = smalls [dd ]
227217 }
228218 return i
229219 }
@@ -275,10 +265,10 @@ func formatBase10(a []byte, u uint64) int {
275265 var dd uint32
276266 lo , dd = lo / 100 , (lo % 100 )* 2
277267 i -= 2
278- a [i + 0 ], a [i + 1 ] = smalls [( dd + 0 ) & 0xFF ], smalls [( dd + 1 ) & 0xFF ]
268+ a [i + 0 ], a [i + 1 ] = smalls [dd + 0 ], smalls [dd + 1 ]
279269 }
280270 i --
281- a [i ] = smalls [( lo * 2 + 1 ) & 0xFF ]
271+ a [i ] = smalls [lo * 2 + 1 ]
282272
283273 // If we'd been using u >= 1e9 then we would be guaranteed that u/1e9 > 0,
284274 // but since we used u>>29 != 0, u/1e9 might be 0, so we might be done.
@@ -295,14 +285,14 @@ func formatBase10(a []byte, u uint64) int {
295285 var dd uint32
296286 lo , dd = lo / 100 , (lo % 100 )* 2
297287 i -= 2
298- a [i + 0 ], a [i + 1 ] = smalls [( dd + 0 ) & 0xFF ], smalls [( dd + 1 ) & 0xFF ]
288+ a [i + 0 ], a [i + 1 ] = smalls [dd + 0 ], smalls [dd + 1 ]
299289 }
300290 i --
301291 dd := lo * 2
302- a [i ] = smalls [( dd + 1 ) & 0xFF ]
292+ a [i ] = smalls [dd + 1 ]
303293 if lo >= 10 {
304294 i --
305- a [i ] = smalls [( dd + 0 ) & 0xFF ]
295+ a [i ] = smalls [dd + 0 ]
306296 }
307297 return i
308298}
0 commit comments