FpDebug: fix I2O intrinsic / value to "out param" can't be passed as ref in other param.

This commit is contained in:
Martin 2024-08-15 22:43:10 +02:00
parent f54755cc79
commit c8f30b1459

View File

@ -2604,7 +2604,7 @@ var
Arg: TFpValue; Arg: TFpValue;
ctx: TFpDbgLocationContext; ctx: TFpDbgLocationContext;
Addr, CodeAddr: TDBGPtr; Addr, CodeAddr: TDBGPtr;
DataLoc: TFpDbgMemLocation; DataLoc, DataLoc2: TFpDbgMemLocation;
instr: TX86AsmInstruction; instr: TX86AsmInstruction;
O1, O2: TInstructionOperand; O1, O2: TInstructionOperand;
OpVal: Int64; OpVal: Int64;
@ -2639,14 +2639,14 @@ begin
else SetError('Could not get memory address'); else SetError('Could not get memory address');
exit; exit;
end; end;
ctx.ReadAddress(DataLoc, SizeVal(ctx.SizeOfAddress), DataLoc); ctx.ReadAddress(DataLoc, SizeVal(ctx.SizeOfAddress), DataLoc2);
if not IsTargetNotNil(DataLoc) then begin if not IsTargetNotNil(DataLoc2) then begin
if IsError(ctx.LastMemError) then SetError(ctx.LastMemError) if IsError(ctx.LastMemError) then SetError(ctx.LastMemError)
else SetError('Could not get memory address'); else SetError('Could not get memory address');
exit; exit;
end; end;
CodeAddr := DataLoc.Address; CodeAddr := DataLoc2.Address;
instr := TX86AsmInstruction(FDisAssembler.GetInstructionInfo(CodeAddr)); instr := TX86AsmInstruction(FDisAssembler.GetInstructionInfo(CodeAddr));
if instr.X86OpCode = OPsub then begin if instr.X86OpCode = OPsub then begin