@@ -76,7 +76,7 @@ unsafe fn hex_encode_avx2<'a>(mut src: &[u8], dst: &'a mut [u8]) -> Result<&'a s
7676 let ascii_a = _mm256_set1_epi8 ( ( b'a' - 9 - 1 ) as i8 ) ;
7777 let and4bits = _mm256_set1_epi8 ( 0xf ) ;
7878
79- let mut i = 0_isize ;
79+ let mut i = 0_usize ;
8080 while src. len ( ) >= 32 {
8181 let invec = _mm256_loadu_si256 ( src. as_ptr ( ) as * const _ ) ;
8282
@@ -96,18 +96,17 @@ unsafe fn hex_encode_avx2<'a>(mut src: &[u8], dst: &'a mut [u8]) -> Result<&'a s
9696 let res2 = _mm256_unpackhi_epi8 ( masked2, masked1) ;
9797
9898 // Store everything into the right destination now
99- let base = dst. as_mut_ptr ( ) . offset ( i * 2 ) ;
100- let base1 = base. offset ( 0 ) as * mut _ ;
101- let base2 = base. offset ( 16 ) as * mut _ ;
102- let base3 = base. offset ( 32 ) as * mut _ ;
103- let base4 = base. offset ( 48 ) as * mut _ ;
99+ let base = dst. as_mut_ptr ( ) . add ( i * 2 ) ;
100+ let base1 = base. add ( 0 ) as * mut _ ;
101+ let base2 = base. add ( 16 ) as * mut _ ;
102+ let base3 = base. add ( 32 ) as * mut _ ;
103+ let base4 = base. add ( 48 ) as * mut _ ;
104104 _mm256_storeu2_m128i ( base3, base1, res1) ;
105105 _mm256_storeu2_m128i ( base4, base2, res2) ;
106106 src = & src[ 32 ..] ;
107107 i += 32 ;
108108 }
109109
110- let i = i as usize ;
111110 let _ = hex_encode_sse41 ( src, & mut dst[ i * 2 ..] ) ;
112111
113112 Ok ( str:: from_utf8_unchecked ( & dst[ ..src. len ( ) * 2 + i * 2 ] ) )
@@ -122,7 +121,7 @@ unsafe fn hex_encode_sse41<'a>(mut src: &[u8], dst: &'a mut [u8]) -> Result<&'a
122121 let ascii_a = _mm_set1_epi8 ( ( b'a' - 9 - 1 ) as i8 ) ;
123122 let and4bits = _mm_set1_epi8 ( 0xf ) ;
124123
125- let mut i = 0_isize ;
124+ let mut i = 0_usize ;
126125 while src. len ( ) >= 16 {
127126 let invec = _mm_loadu_si128 ( src. as_ptr ( ) as * const _ ) ;
128127
@@ -141,13 +140,12 @@ unsafe fn hex_encode_sse41<'a>(mut src: &[u8], dst: &'a mut [u8]) -> Result<&'a
141140 let res1 = _mm_unpacklo_epi8 ( masked2, masked1) ;
142141 let res2 = _mm_unpackhi_epi8 ( masked2, masked1) ;
143142
144- _mm_storeu_si128 ( dst. as_mut_ptr ( ) . offset ( i * 2 ) as * mut _ , res1) ;
145- _mm_storeu_si128 ( dst. as_mut_ptr ( ) . offset ( i * 2 + 16 ) as * mut _ , res2) ;
143+ _mm_storeu_si128 ( dst. as_mut_ptr ( ) . add ( i * 2 ) as * mut _ , res1) ;
144+ _mm_storeu_si128 ( dst. as_mut_ptr ( ) . add ( i * 2 + 16 ) as * mut _ , res2) ;
146145 src = & src[ 16 ..] ;
147146 i += 16 ;
148147 }
149148
150- let i = i as usize ;
151149 let _ = hex_encode_fallback ( src, & mut dst[ i * 2 ..] ) ;
152150
153151 Ok ( str:: from_utf8_unchecked ( & dst[ ..src. len ( ) * 2 + i * 2 ] ) )
@@ -163,7 +161,7 @@ unsafe fn hex_encode_simd128<'a>(mut src: &[u8], dst: &'a mut [u8]) -> Result<&'
163161 let ascii_a = u8x16_splat ( b'a' - 9 - 1 ) ;
164162 let and4bits = u8x16_splat ( 0xf ) ;
165163
166- let mut i = 0_isize ;
164+ let mut i = 0_usize ;
167165 while src. len ( ) >= 16 {
168166 let invec = v128_load ( src. as_ptr ( ) as * const _ ) ;
169167
@@ -189,13 +187,12 @@ unsafe fn hex_encode_simd128<'a>(mut src: &[u8], dst: &'a mut [u8]) -> Result<&'
189187 masked2, masked1,
190188 ) ;
191189
192- v128_store ( dst. as_mut_ptr ( ) . offset ( i * 2 ) as * mut _ , res1) ;
193- v128_store ( dst. as_mut_ptr ( ) . offset ( i * 2 + 16 ) as * mut _ , res2) ;
190+ v128_store ( dst. as_mut_ptr ( ) . add ( i * 2 ) as * mut _ , res1) ;
191+ v128_store ( dst. as_mut_ptr ( ) . add ( i * 2 + 16 ) as * mut _ , res2) ;
194192 src = & src[ 16 ..] ;
195193 i += 16 ;
196194 }
197195
198- let i = i as usize ;
199196 let _ = hex_encode_fallback ( src, & mut dst[ i * 2 ..] ) ;
200197
201198 Ok ( str:: from_utf8_unchecked ( & dst[ ..src. len ( ) * 2 + i * 2 ] ) )
0 commit comments