From f6547fac8ccd75c8b9d15db21cc189d57e4fefa6 Mon Sep 17 00:00:00 2001 From: lizzie Date: Wed, 11 Feb 2026 23:13:40 +0100 Subject: [PATCH] [dynarmic] Define LSW on the same argument/use scratch gpr (#3520) Signed-off-by: lizzie Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3520 Reviewed-by: DraVee Reviewed-by: CamilleLaVey Co-authored-by: lizzie Co-committed-by: lizzie --- .../dynarmic/backend/x64/emit_x64_data_processing.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/dynarmic/src/dynarmic/backend/x64/emit_x64_data_processing.cpp b/src/dynarmic/src/dynarmic/backend/x64/emit_x64_data_processing.cpp index e7fdef2696..3c7058230b 100644 --- a/src/dynarmic/src/dynarmic/backend/x64/emit_x64_data_processing.cpp +++ b/src/dynarmic/src/dynarmic/backend/x64/emit_x64_data_processing.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project // SPDX-License-Identifier: GPL-3.0-or-later /* This file is part of the dynarmic project. @@ -57,10 +57,9 @@ void EmitX64::EmitLeastSignificantWord(EmitContext& ctx, IR::Inst* inst) { auto args = ctx.reg_alloc.GetArgumentInfo(inst); // TODO: DefineValue directly on Argument - const Xbyak::Reg64 result = ctx.reg_alloc.ScratchGpr(code); - const Xbyak::Reg64 source = ctx.reg_alloc.UseGpr(code, args[0]); - code.mov(result.cvt32(), source.cvt32()); - ctx.reg_alloc.DefineValue(code, inst, result); + const Xbyak::Reg64 res = ctx.reg_alloc.UseScratchGpr(code, args[0]); + code.mov(res.cvt32(), res.cvt32()); + ctx.reg_alloc.DefineValue(code, inst, res); } void EmitX64::EmitMostSignificantWord(EmitContext& ctx, IR::Inst* inst) {