diff --git a/src/jit_compiler_a64.cpp b/src/jit_compiler_a64.cpp index 0c557662..75ea8ccd 100644 --- a/src/jit_compiler_a64.cpp +++ b/src/jit_compiler_a64.cpp @@ -709,7 +709,8 @@ void JitCompilerA64::h_IMUL_RCP(Instruction& instr, uint32_t& codePos) const uint32_t literal_id = (ImulRcpLiteralsEnd - literalPos) / sizeof(uint64_t); literalPos -= sizeof(uint64_t); - *(uint64_t*)(code + literalPos) = (q << shift) + ((r << shift) / divisor); + const uint64_t randomx_reciprocal = (q << shift) + ((r << shift) / divisor); + memcpy(code + literalPos, &randomx_reciprocal, sizeof(randomx_reciprocal)); if (literal_id < 12) { diff --git a/src/jit_compiler_a64.hpp b/src/jit_compiler_a64.hpp index a02824ff..f8484c08 100644 --- a/src/jit_compiler_a64.hpp +++ b/src/jit_compiler_a64.hpp @@ -81,7 +81,7 @@ namespace randomx { static void emit64(uint64_t val, uint8_t* code, uint32_t& codePos) { - *(uint64_t*)(code + codePos) = val; + memcpy(code + codePos, &val, sizeof(val)); codePos += sizeof(val); }