mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-22 18:19:23 +02:00
FPDebug - [AVR] fix formatting of variable operand instructions elpm, lpm and spm.
This commit is contained in:
parent
6b54bbc996
commit
135d8c1094
@ -699,8 +699,8 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
// Instructions with variable number of operands
|
// Instructions with variable number of operands
|
||||||
if (instr.OpCode in [A_ELPM, A_LPM, A_SPM]) and
|
if ((instr.OpCode in [A_ELPM, A_LPM]) and (instr.Oper[2] = operandNoIndex)) or
|
||||||
(instr.Oper[1] = operandNoIndex) then
|
((instr.OpCode = A_SPM) and (instr.Oper[1] = operandNoIndex)) then
|
||||||
info.OperCount := 0;
|
info.OperCount := 0;
|
||||||
|
|
||||||
if info.OperCount > 0 then
|
if info.OperCount > 0 then
|
||||||
@ -1134,10 +1134,10 @@ begin
|
|||||||
$9588: instr := SetInstructionInfo(A_SLEEP, 0, 2, []);
|
$9588: instr := SetInstructionInfo(A_SLEEP, 0, 2, []);
|
||||||
$9598: instr := SetInstructionInfo(A_BREAK, 0, 2, []);
|
$9598: instr := SetInstructionInfo(A_BREAK, 0, 2, []);
|
||||||
$95a8: instr := SetInstructionInfo(A_WDR, 0, 2, []);
|
$95a8: instr := SetInstructionInfo(A_WDR, 0, 2, []);
|
||||||
$95c8: instr := SetInstructionInfo(A_LPM, 0, 2, []);
|
$95c8: instr := SetInstructionInfo(A_LPM, 0, 2, [0, operandNoIndex]);
|
||||||
$95d8: instr := SetInstructionInfo(A_ELPM, 0, 2, []);
|
$95d8: instr := SetInstructionInfo(A_ELPM, 0, 2, [0, operandNoIndex]);
|
||||||
$95e8: instr := SetInstructionInfo(A_SPM, 0, 2, []);
|
$95e8: instr := SetInstructionInfo(A_SPM, 0, 2, [operandNoIndex]);
|
||||||
$95f8: instr := SetInstructionInfo(A_SPM, operandZInc, 2, []);
|
$95f8: instr := SetInstructionInfo(A_SPM, 0, 2, [operandZInc]);
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
case (code and $fe0f) of
|
case (code and $fe0f) of
|
||||||
@ -1155,18 +1155,18 @@ begin
|
|||||||
begin // LPM Load Program Memory 1001 000d dddd 01oo
|
begin // LPM Load Program Memory 1001 000d dddd 01oo
|
||||||
r := (code shr 4) and $1f;
|
r := (code shr 4) and $1f;
|
||||||
if (code and 1 = 1) then
|
if (code and 1 = 1) then
|
||||||
instr := SetInstructionInfo(A_LPM, operandZInc, 2, [r])
|
instr := SetInstructionInfo(A_LPM, 0, 2, [r, operandZInc])
|
||||||
else
|
else
|
||||||
instr := SetInstructionInfo(A_LPM, operandZ, 2, [r]);
|
instr := SetInstructionInfo(A_LPM, 0, 2, [r, operandZ]);
|
||||||
end;
|
end;
|
||||||
$9006,
|
$9006,
|
||||||
$9007:
|
$9007:
|
||||||
begin // ELPM Extended Load Program Memory 1001 000d dddd 01oo
|
begin // ELPM Extended Load Program Memory 1001 000d dddd 01oo
|
||||||
r := (code shr 4) and $1f;
|
r := (code shr 4) and $1f;
|
||||||
if (code and 1 = 1) then
|
if (code and 1 = 1) then
|
||||||
instr := SetInstructionInfo(A_ELPM, operandZInc, 2, [r])
|
instr := SetInstructionInfo(A_ELPM, 0, 2, [r, operandZInc])
|
||||||
else
|
else
|
||||||
instr := SetInstructionInfo(A_ELPM, operandZ, 2, [r]);
|
instr := SetInstructionInfo(A_ELPM, 0, 2, [r, operandZ]);
|
||||||
end;
|
end;
|
||||||
$900c,
|
$900c,
|
||||||
$900d,
|
$900d,
|
||||||
|
Loading…
Reference in New Issue
Block a user