Browse Source

fix2

dynarmic-coproc
lizzie 1 week ago
parent
commit
592676662f
  1. 4
      src/dynarmic/src/dynarmic/backend/x64/emit_x64_data_processing.cpp

4
src/dynarmic/src/dynarmic/backend/x64/emit_x64_data_processing.cpp

@ -932,12 +932,12 @@ static void EmitAdd(BlockOfCode& code, EmitContext& ctx, IR::Inst* inst, size_t
if (args[1].IsImmediate() && args[1].FitsInImmediateS32()) {
Xbyak::Reg const result = ctx.reg_alloc.UseScratchGpr(code, args[0]).changeBit(bitsize);
code.lea(result, code.ptr[result + args[1].GetImmediateS32()]);
ctx.reg_alloc.DefineValue(inst, result);
ctx.reg_alloc.DefineValue(code, inst, result);
} else {
Xbyak::Reg const result = ctx.reg_alloc.UseScratchGpr(code, args[0]).changeBit(bitsize);
Xbyak::Reg const op2 = ctx.reg_alloc.UseGpr(code, args[1]).changeBit(bitsize);
code.lea(result, code.ptr[result + op2]);
ctx.reg_alloc.DefineValue(inst, result);
ctx.reg_alloc.DefineValue(code, inst, result);
}
return;
}

Loading…
Cancel
Save