mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-10-24 00:33:52 +02:00
- reverted previous fix, is wrong
git-svn-id: trunk@3819 -
This commit is contained in:
parent
d9c1078793
commit
9e57973566
@ -1687,7 +1687,7 @@ var
|
|||||||
regloads, reguses: array[RS_EAX..RS_EDI] of tai;
|
regloads, reguses: array[RS_EAX..RS_EDI] of tai;
|
||||||
regcounter, substreg: tsuperregister;
|
regcounter, substreg: tsuperregister;
|
||||||
hp, hp2: tai;
|
hp, hp2: tai;
|
||||||
insertpos, insertoptinfo, prevseq_next: tai;
|
insertpos, prevseq_next: tai;
|
||||||
i: longint;
|
i: longint;
|
||||||
opc: tasmop;
|
opc: tasmop;
|
||||||
begin
|
begin
|
||||||
@ -1727,22 +1727,14 @@ begin
|
|||||||
getLastInstruction(curseqend,hp);
|
getLastInstruction(curseqend,hp);
|
||||||
opc := A_MOV;
|
opc := A_MOV;
|
||||||
insertpos := prevseq_next;
|
insertpos := prevseq_next;
|
||||||
insertoptinfo := prevseqstart;
|
|
||||||
if assigned(reguses[regcounter]) then
|
if assigned(reguses[regcounter]) then
|
||||||
if assigned(regloads[reginfo.new2oldreg[regcounter]]) then
|
if assigned(regloads[reginfo.new2oldreg[regcounter]]) then
|
||||||
opc := A_XCHG
|
opc := A_XCHG
|
||||||
else
|
else
|
||||||
begin
|
insertpos := tai(reguses[regcounter].next)
|
||||||
insertoptinfo := reguses[regcounter];
|
|
||||||
insertpos := tai(insertoptinfo.next)
|
|
||||||
end
|
|
||||||
else
|
else
|
||||||
if assigned(regloads[reginfo.new2oldreg[regcounter]]) then
|
if assigned(regloads[reginfo.new2oldreg[regcounter]]) then
|
||||||
begin
|
insertpos := regloads[reginfo.new2oldreg[regcounter]];
|
||||||
insertpos := regloads[reginfo.new2oldreg[regcounter]];
|
|
||||||
if not getlastinstruction(insertpos,insertoptinfo) then
|
|
||||||
internalerror(2006060701);
|
|
||||||
end;
|
|
||||||
hp := Tai_Marker.Create(mark_NoPropInfoStart);
|
hp := Tai_Marker.Create(mark_NoPropInfoStart);
|
||||||
InsertLLItem(asml, insertpos.previous,insertpos, hp);
|
InsertLLItem(asml, insertpos.previous,insertpos, hp);
|
||||||
hp2 := taicpu.Op_Reg_Reg(opc, S_L,
|
hp2 := taicpu.Op_Reg_Reg(opc, S_L,
|
||||||
@ -1759,7 +1751,7 @@ begin
|
|||||||
regloads[regcounter] := hp2;
|
regloads[regcounter] := hp2;
|
||||||
reguses[reginfo.new2oldreg[regcounter]] := hp2;
|
reguses[reginfo.new2oldreg[regcounter]] := hp2;
|
||||||
new(ptaiprop(hp2.optinfo));
|
new(ptaiprop(hp2.optinfo));
|
||||||
ptaiprop(hp2.optinfo)^ := ptaiprop(insertoptinfo.optinfo)^;
|
ptaiprop(hp2.optinfo)^ := ptaiprop(insertpos.optinfo)^;
|
||||||
ptaiprop(hp2.optinfo)^.canBeRemoved := false;
|
ptaiprop(hp2.optinfo)^.canBeRemoved := false;
|
||||||
InsertLLItem(asml, insertpos.previous, insertpos, hp2);
|
InsertLLItem(asml, insertpos.previous, insertpos, hp2);
|
||||||
hp := Tai_Marker.Create(mark_NoPropInfoEnd);
|
hp := Tai_Marker.Create(mark_NoPropInfoEnd);
|
||||||
|
Loading…
Reference in New Issue
Block a user