Skip to content

Commit

Permalink
Merge pull request #282 from SChernykh/fix-ub
Browse files Browse the repository at this point in the history
Fixed UB in ARM64 JIT compiler
  • Loading branch information
SChernykh authored Oct 20, 2023
2 parents d3c9648 + 8f91d31 commit 5fc512e
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 2 deletions.
3 changes: 2 additions & 1 deletion src/jit_compiler_a64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand Down
2 changes: 1 addition & 1 deletion src/jit_compiler_a64.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

Expand Down

0 comments on commit 5fc512e

Please sign in to comment.