]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
b2sum: sync better with upstream
authorPádraig Brady <P@draigBrady.com>
Tue, 25 Feb 2020 13:30:39 +0000 (13:30 +0000)
committerPádraig Brady <P@draigBrady.com>
Tue, 25 Feb 2020 13:51:21 +0000 (13:51 +0000)
* src/blake2/blake2-impl.h: Sync load16() implementation,
which doesn't change code generation.
Also leverage (builtin) memcpy to more efficiently
move data on little endian systems,
giving a 2% win with GCC 9.2.1 on an i3-2310M.

src/blake2/blake2-impl.h

index 32ff316334484f9620f252dc4ff383b4e44d36da..7ecc8a615a03c9135db5bc46ff9ed85e24c6eaed 100644 (file)
 #ifndef BLAKE2_IMPL_H
 #define BLAKE2_IMPL_H
 
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+#ifndef WORDS_BIGENDIAN
+# define NATIVE_LITTLE_ENDIAN 1
+#endif
+
 #include <stdint.h>
 #include <string.h>
 
@@ -72,8 +79,8 @@ static BLAKE2_INLINE uint16_t load16( const void *src )
   return w;
 #else
   const uint8_t *p = ( const uint8_t * )src;
-  return (( uint16_t )( p[0] ) <<  0) |
-         (( uint16_t )( p[1] ) <<  8) ;
+  return ( uint16_t )((( uint32_t )( p[0] ) <<  0) |
+                      (( uint32_t )( p[1] ) <<  8));
 #endif
 }