summaryrefslogtreecommitdiff
path: root/chunkset.c
diff options
context:
space:
mode:
Diffstat (limited to 'chunkset.c')
-rw-r--r--chunkset.c48
1 files changed, 6 insertions, 42 deletions
diff --git a/chunkset.c b/chunkset.c
index b07e6f4..59e30fc 100644
--- a/chunkset.c
+++ b/chunkset.c
@@ -16,61 +16,25 @@ typedef struct chunk_t { uint8_t u8[8]; } chunk_t;
#define CHUNK_SIZE 8
-#define HAVE_CHUNKMEMSET_1
#define HAVE_CHUNKMEMSET_4
#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;
- half_chunk = *(uint32_t *)from;
- *chunk = 0x0000000100000001 * (uint64_t)half_chunk;
-#elif defined(UNALIGNED_OK)
- chunk->u32[0] = *(uint32_t *)from;
- chunk->u32[1] = chunk->u32[0];
-#else
- uint8_t *chunkptr = (uint8_t *)chunk;
- memcpy(chunkptr, from, 4);
- memcpy(chunkptr+4, from, 4);
-#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(UNALIGNED64_OK)
- *chunk = *(uint64_t *)from;
-#elif defined(UNALIGNED_OK)
- uint32_t* p = (uint32_t *)from;
- chunk->u32[0] = p[0];
- chunk->u32[1] = p[1];
-#else
- memcpy(chunk, from, sizeof(chunk_t));
-#endif
+ memcpy(chunk, from, sizeof(uint64_t));
}
static inline void loadchunk(uint8_t const *s, chunk_t *chunk) {
- chunkmemset_8((uint8_t *)s, chunk);
+ memcpy(chunk, (uint8_t *)s, sizeof(uint64_t));
}
static inline void storechunk(uint8_t *out, chunk_t *chunk) {
-#if defined(UNALIGNED64_OK)
- *(uint64_t *)out = *chunk;
-#elif defined(UNALIGNED_OK)
- ((uint32_t *)out)[0] = chunk->u32[0];
- ((uint32_t *)out)[1] = chunk->u32[1];
-#else
- memcpy(out, chunk, sizeof(chunk_t));
-#endif
+ memcpy(out, chunk, sizeof(uint64_t));
}
#define CHUNKSIZE chunksize_c