mirror of
https://codeberg.org/wownero/RandomWOW
synced 2026-03-05 06:07:33 -05:00
Fixed UB in ARM64 JIT compiler
Fixed unaligned memory writes
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user