]> git.ipfire.org Git - thirdparty/zlib-ng.git/commitdiff
Simplify chunk_t type to uint64_t with memcpy calls.
authorNathan Moinvaziri <nathan@nathanm.com>
Sun, 9 Jan 2022 22:58:53 +0000 (14:58 -0800)
committerHans Kristian Rosbach <hk-github@circlestorm.org>
Thu, 10 Feb 2022 15:10:48 +0000 (16:10 +0100)
chunkset.c

index 4cc70771f62da732bc42bf751a076a3f3ccd27fa..cfc6e87f8b05f9aa02f83d62425655c21a9c7520 100644 (file)
@@ -4,14 +4,7 @@
 
 #include "zbuild.h"
 
-/* Define 8 byte chunks differently depending on unaligned support */
-#if defined(UNALIGNED64_OK)
 typedef uint64_t chunk_t;
-#elif defined(UNALIGNED_OK)
-typedef struct chunk_t { uint32_t u32[2]; } chunk_t;
-#else
-typedef struct chunk_t { uint8_t u8[8]; } chunk_t;
-#endif
 
 #define CHUNK_SIZE 8
 
@@ -20,38 +13,17 @@ typedef struct chunk_t { uint8_t u8[8]; } chunk_t;
 #define HAVE_CHUNKMEMSET_8
 
 static inline void chunkmemset_1(uint8_t *from, chunk_t *chunk) {
-#if defined(UNALIGNED64_OK)
-    *chunk = 0x0101010101010101 * (uint8_t)*from;
-#elif defined(UNALIGNED_OK)
-    chunk->u32[0] = 0x01010101 * (uint8_t)*from;
-    chunk->u32[1] = chunk->u32[0];
-#else
     memset(chunk, *from, sizeof(chunk_t));
-#endif
 }
 
 static inline void chunkmemset_4(uint8_t *from, chunk_t *chunk) {
-#if defined(UNALIGNED64_OK)
-    uint32_t half_chunk;
-    memcpy(&half_chunk, from, sizeof(half_chunk));
-    *chunk = 0x0000000100000001 * (uint64_t)half_chunk;
-#elif defined(UNALIGNED_OK)
-    memcpy(&chunk->u32[0], from, sizeof(chunk->u32[0]));
-    chunk->u32[1] = chunk->u32[0];
-#else
-    uint8_t *chunkptr = (uint8_t *)chunk;
-    memcpy(chunkptr, from, sizeof(uint32_t));
-    memcpy(chunkptr+4, from, sizeof(uint32_t));
-#endif
+    uint8_t *dest = (uint8_t *)chunk;
+    memcpy(dest, from, sizeof(uint32_t));
+    memcpy(dest+4, from, sizeof(uint32_t));
 }
 
 static inline void chunkmemset_8(uint8_t *from, chunk_t *chunk) {
-#if defined(UNALIGNED_OK) && !defined(UNALIGNED64_OK)
-    memcpy(&chunk->u32[0], from, sizeof(chunk->u32[0]));
-    memcpy(&chunk->u32[1], from+4, sizeof(chunk->u32[1]));
-#else
     memcpy(chunk, from, sizeof(uint64_t));
-#endif
 }
 
 static inline void loadchunk(uint8_t const *s, chunk_t *chunk) {