From da3e9a570459de4da30a82b9c570e4d9b89de3b0 Mon Sep 17 00:00:00 2001 From: MerryMage Date: Wed, 24 Jan 2018 16:49:06 +0000 Subject: [PATCH] a64_emit_x64: bug: EmitA64WriteMemory128 should write not read --- src/backend_x64/a64_emit_x64.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/backend_x64/a64_emit_x64.cpp b/src/backend_x64/a64_emit_x64.cpp index 3593461b..2ba37b32 100644 --- a/src/backend_x64/a64_emit_x64.cpp +++ b/src/backend_x64/a64_emit_x64.cpp @@ -402,8 +402,8 @@ void A64EmitX64::EmitA64WriteMemory128(A64EmitContext& ctx, IR::Inst* inst) { code->sub(rsp, ABI_SHADOW_SPACE); code->movaps(code->xword[code->ABI_PARAM3], xmm_value); - DEVIRT(conf.callbacks, &A64::UserCallbacks::MemoryRead128).EmitCall(code, [&](Xbyak::Reg64 return_value, Xbyak::Reg64 vaddr) { - ASSERT(return_value == code->ABI_PARAM2 && vaddr == code->ABI_PARAM3); + DEVIRT(conf.callbacks, &A64::UserCallbacks::MemoryWrite128).EmitCall(code, [&](Xbyak::Reg64 vaddr, Xbyak::Reg64 value_ptr) { + ASSERT(vaddr == code->ABI_PARAM2 && value_ptr == code->ABI_PARAM3); }); code->add(rsp, ABI_SHADOW_SPACE);