* post/pre inc/decrement references modify obviously the base register on avr, resolves #40153

This commit is contained in:
florian 2023-02-17 23:02:02 +01:00
parent ece59f2534
commit 22f1289b2a

View File

@ -140,6 +140,20 @@ Implementation
exit;
end;
If (taicpu(p1).opcode=A_LD) and
(taicpu(p1).oper[1]^.ref^.addressmode in [AM_POSTINCREMENT,AM_PREDECREMENT]) and (taicpu(p1).oper[1]^.ref^.base=reg) then
begin
Result:=true;
exit;
end;
If (taicpu(p1).opcode=A_ST) and
(taicpu(p1).oper[0]^.ref^.addressmode in [AM_POSTINCREMENT,AM_PREDECREMENT]) and (taicpu(p1).oper[0]^.ref^.base=reg) then
begin
Result:=true;
exit;
end;
for i:=0 to taicpu(p1).ops-1 do
if (taicpu(p1).oper[i]^.typ=top_reg) and (taicpu(p1).oper[i]^.reg=Reg) and (taicpu(p1).spilling_get_operation_type(i) in [operand_write,operand_readwrite]) then
begin