From 2fb95de5e89e622db8de8fbfabb713edf86c688b Mon Sep 17 00:00:00 2001 From: Nathan Moinvaziri Date: Sun, 9 Jan 2022 14:58:53 -0800 Subject: [PATCH] Simplify chunk_t type to uint64_t with memcpy calls. --- chunkset.c | 34 +++------------------------------- 1 file changed, 3 insertions(+), 31 deletions(-) diff --git a/chunkset.c b/chunkset.c index 4cc70771..cfc6e87f 100644 --- a/chunkset.c +++ b/chunkset.c @@ -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) { -- 2.47.2