- reverted previous fix, is wrong

git-svn-id: trunk@3819 -
This commit is contained in:
Jonas Maebe 2006-06-07 20:52:45 +00:00
parent d9c1078793
commit 9e57973566

View File

@ -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);