From 9e57973566339b420588f5ecdcad6c6b9ed415bb Mon Sep 17 00:00:00 2001 From: Jonas Maebe Date: Wed, 7 Jun 2006 20:52:45 +0000 Subject: [PATCH] - reverted previous fix, is wrong git-svn-id: trunk@3819 - --- compiler/i386/csopt386.pas | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/compiler/i386/csopt386.pas b/compiler/i386/csopt386.pas index 1882c85d20..c1673ae0c4 100644 --- a/compiler/i386/csopt386.pas +++ b/compiler/i386/csopt386.pas @@ -1687,7 +1687,7 @@ var regloads, reguses: array[RS_EAX..RS_EDI] of tai; regcounter, substreg: tsuperregister; hp, hp2: tai; - insertpos, insertoptinfo, prevseq_next: tai; + insertpos, prevseq_next: tai; i: longint; opc: tasmop; begin @@ -1727,22 +1727,14 @@ begin getLastInstruction(curseqend,hp); opc := A_MOV; insertpos := prevseq_next; - insertoptinfo := prevseqstart; if assigned(reguses[regcounter]) then if assigned(regloads[reginfo.new2oldreg[regcounter]]) then opc := A_XCHG else - begin - insertoptinfo := reguses[regcounter]; - insertpos := tai(insertoptinfo.next) - end + insertpos := tai(reguses[regcounter].next) else if assigned(regloads[reginfo.new2oldreg[regcounter]]) then - begin - insertpos := regloads[reginfo.new2oldreg[regcounter]]; - if not getlastinstruction(insertpos,insertoptinfo) then - internalerror(2006060701); - end; + insertpos := regloads[reginfo.new2oldreg[regcounter]]; hp := Tai_Marker.Create(mark_NoPropInfoStart); InsertLLItem(asml, insertpos.previous,insertpos, hp); hp2 := taicpu.Op_Reg_Reg(opc, S_L, @@ -1759,7 +1751,7 @@ begin regloads[regcounter] := hp2; reguses[reginfo.new2oldreg[regcounter]] := hp2; new(ptaiprop(hp2.optinfo)); - ptaiprop(hp2.optinfo)^ := ptaiprop(insertoptinfo.optinfo)^; + ptaiprop(hp2.optinfo)^ := ptaiprop(insertpos.optinfo)^; ptaiprop(hp2.optinfo)^.canBeRemoved := false; InsertLLItem(asml, insertpos.previous, insertpos, hp2); hp := Tai_Marker.Create(mark_NoPropInfoEnd);