From c5b98ea7a15ceb872ca1228eff9424c57bed20b8 Mon Sep 17 00:00:00 2001 From: dzaima Date: Sun, 20 Aug 2023 22:57:30 +0300 Subject: [PATCH] apparently LLVM actually uses pointer type to determine alignment --- src/utils/includeSingeli.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/utils/includeSingeli.h b/src/utils/includeSingeli.h index f5b36a04..838eac55 100644 --- a/src/utils/includeSingeli.h +++ b/src/utils/includeSingeli.h @@ -13,9 +13,9 @@ #define _mm_storeu_si32 custom_storeu_si32 #endif - static void storeu_u64(u64* p, u64 v) { memcpy(p, &v, 8); } static u64 loadu_u64(u64* p) { u64 v; memcpy(&v, p, 8); return v; } - static void storeu_u32(u32* p, u32 v) { memcpy(p, &v, 4); } static u32 loadu_u32(u32* p) { u32 v; memcpy(&v, p, 4); return v; } - static void storeu_u16(u16* p, u16 v) { memcpy(p, &v, 2); } static u16 loadu_u16(u16* p) { u16 v; memcpy(&v, p, 2); return v; } + static void storeu_u64(u64* p, u64 v) { memcpy((char*)p, &v, 8); } static u64 loadu_u64(u64* p) { u64 v; memcpy(&v, (char*)p, 8); return v; } + static void storeu_u32(u32* p, u32 v) { memcpy((char*)p, &v, 4); } static u32 loadu_u32(u32* p) { u32 v; memcpy(&v, (char*)p, 4); return v; } + static void storeu_u16(u16* p, u16 v) { memcpy((char*)p, &v, 2); } static u16 loadu_u16(u16* p) { u16 v; memcpy(&v, (char*)p, 2); return v; } #define BCALL(N, X) N(b(X)) #define interp_f64(X) b(X).f