From 09de3f8d5bac631b84e0d43dc8f08db359f73d0b Mon Sep 17 00:00:00 2001 From: Jonas Maebe Date: Mon, 24 Jun 2002 12:43:00 +0000 Subject: [PATCH] * fixed errors found with new -CR code from Peter when cycling with -O2p3r --- compiler/i386/daopt386.pas | 7 +++++-- compiler/i386/n386mem.pas | 7 +++++-- compiler/nbas.pas | 11 +++++++---- compiler/regvars.pas | 9 ++++++--- 4 files changed, 23 insertions(+), 11 deletions(-) diff --git a/compiler/i386/daopt386.pas b/compiler/i386/daopt386.pas index 1f4fa94ad1..ac54dca6b0 100644 --- a/compiler/i386/daopt386.pas +++ b/compiler/i386/daopt386.pas @@ -1477,7 +1477,7 @@ var Begin {checks whether two Taicpu instructions are equal} If Assigned(p1) And Assigned(p2) And (Tai(p1).typ = ait_instruction) And - (Tai(p1).typ = ait_instruction) And + (Tai(p2).typ = ait_instruction) And opscompatible(Taicpu(p1),Taicpu(p2)) and (Taicpu(p1).oper[0].typ = Taicpu(p2).oper[0].typ) And (Taicpu(p1).oper[1].typ = Taicpu(p2).oper[1].typ) And @@ -2591,7 +2591,10 @@ End. { $Log$ - Revision 1.39 2002-06-09 12:56:04 jonas + Revision 1.40 2002-06-24 12:43:00 jonas + * fixed errors found with new -CR code from Peter when cycling with -O2p3r + + Revision 1.39 2002/06/09 12:56:04 jonas * IDIV reads edx too (but now the div/mod optimization fails :/ ) Revision 1.38 2002/05/18 13:34:22 peter diff --git a/compiler/i386/n386mem.pas b/compiler/i386/n386mem.pas index 21aacd4616..fe691402eb 100644 --- a/compiler/i386/n386mem.pas +++ b/compiler/i386/n386mem.pas @@ -347,7 +347,7 @@ implementation right.free; right:=t; end - else if tordconstnode(taddnode(right).left).nodetype=ordconstn then + else if taddnode(right).left.nodetype=ordconstn then begin extraoffset:=tordconstnode(taddnode(right).left).value; t:=taddnode(right).right; @@ -519,7 +519,10 @@ begin end. { $Log$ - Revision 1.33 2002-05-18 13:34:25 peter + Revision 1.34 2002-06-24 12:43:01 jonas + * fixed errors found with new -CR code from Peter when cycling with -O2p3r + + Revision 1.33 2002/05/18 13:34:25 peter * readded missing revisions Revision 1.32 2002/05/16 19:46:51 carl diff --git a/compiler/nbas.pas b/compiler/nbas.pas index 3ac756a97b..0fc294e008 100644 --- a/compiler/nbas.pas +++ b/compiler/nbas.pas @@ -160,7 +160,7 @@ implementation verbose,globals,globtype,systems, symconst,symdef,symsym,types, pass_1, - ncal,nflw,rgobj,cgbase + nld,ncal,nflw,rgobj,cgbase ; @@ -380,8 +380,8 @@ implementation CGMessage(cg_n_inefficient_code) else begin - texitnode(tstatementnode(hp.left).right).left:=tstatementnode(hp.right).right; - tstatementnode(hp.right).right:=nil; + texitnode(tstatementnode(hp.left).right).left:=tassignmentnode(hp.right).right; + tassignmentnode(hp.right).right:=nil; hp.right.free; hp.right:=nil; end; @@ -675,7 +675,10 @@ begin end. { $Log$ - Revision 1.25 2002-05-18 13:34:09 peter + Revision 1.26 2002-06-24 12:43:00 jonas + * fixed errors found with new -CR code from Peter when cycling with -O2p3r + + Revision 1.25 2002/05/18 13:34:09 peter * readded missing revisions Revision 1.24 2002/05/16 19:46:37 carl diff --git a/compiler/regvars.pas b/compiler/regvars.pas index 4a258c590b..8c6cdda48d 100644 --- a/compiler/regvars.pas +++ b/compiler/regvars.pas @@ -184,13 +184,13 @@ implementation end else if (regvarinfo^.regvars[i].vartype.def.deftype in [orddef,enumdef]) and - (torddef(regvarinfo^.regvars[i].vartype.def).size=1) then + (regvarinfo^.regvars[i].vartype.def.size=1) then begin regvarinfo^.regvars[i].reg:=rg.makeregsize(varregs[i],OS_8); end else if (regvarinfo^.regvars[i].vartype.def.deftype in [orddef,enumdef]) and - (torddef(regvarinfo^.regvars[i].vartype.def).size=2) then + (regvarinfo^.regvars[i].vartype.def.size=2) then begin regvarinfo^.regvars[i].reg:=rg.makeregsize(varregs[i],OS_16); end @@ -464,7 +464,10 @@ end. { $Log$ - Revision 1.33 2002-05-18 13:34:17 peter + Revision 1.34 2002-06-24 12:43:00 jonas + * fixed errors found with new -CR code from Peter when cycling with -O2p3r + + Revision 1.33 2002/05/18 13:34:17 peter * readded missing revisions Revision 1.32 2002/05/16 19:46:44 carl