diff options
| author | Andre Bogus <bogusandre@gmail.com> | 2018-05-02 23:53:40 +0200 |
|---|---|---|
| committer | Andre Bogus <bogusandre@gmail.com> | 2018-05-02 23:53:40 +0200 |
| commit | 1cefb5ce310fe7f799d0926d2644a25a567d2ddb (patch) | |
| tree | 1ec19184d2f65c33d9b8342dcc3a53971977e064 | |
| parent | 3eadd754730923936ca2ce9c2d303fcac9af099f (diff) | |
| download | rust-1cefb5ce310fe7f799d0926d2644a25a567d2ddb.tar.gz rust-1cefb5ce310fe7f799d0926d2644a25a567d2ddb.zip | |
nano-optimization for memchr::repeat_byte
| -rw-r--r-- | src/libcore/slice/memchr.rs | 15 |
1 files changed, 2 insertions, 13 deletions
diff --git a/src/libcore/slice/memchr.rs b/src/libcore/slice/memchr.rs index 69c9cb37dcf..469404f7f6b 100644 --- a/src/libcore/slice/memchr.rs +++ b/src/libcore/slice/memchr.rs @@ -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`. |
