]> git.lizzy.rs Git - rust.git/commitdiff
nano-optimization for memchr::repeat_byte
authorAndre Bogus <bogusandre@gmail.com>
Wed, 2 May 2018 21:53:40 +0000 (23:53 +0200)
committerAndre Bogus <bogusandre@gmail.com>
Wed, 2 May 2018 21:53:40 +0000 (23:53 +0200)
src/libcore/slice/memchr.rs

index 69c9cb37dcfd3278aa1a6a347a35d51b98bba32a..469404f7f6bb080d7c55209bc89cd6c884ff4597 100644 (file)
@@ -39,21 +39,10 @@ fn repeat_byte(b: u8) -> usize {
     (b as usize) << 8 | b as usize
 }
 
-#[cfg(target_pointer_width = "32")]
+#[cfg(not(target_pointer_width = "16"))]
 #[inline]
 fn repeat_byte(b: u8) -> usize {
-    let mut rep = (b as usize) << 8 | b as usize;
-    rep = rep << 16 | rep;
-    rep
-}
-
-#[cfg(target_pointer_width = "64")]
-#[inline]
-fn repeat_byte(b: u8) -> usize {
-    let mut rep = (b as usize) << 8 | b as usize;
-    rep = rep << 16 | rep;
-    rep = rep << 32 | rep;
-    rep
+    (b as usize) * (::usize::MAX / 255)
 }
 
 /// Return the first index matching the byte `x` in `text`.