Browse Source

* fixed errors found with new -CR code from Peter when cycling with -O2p3r

Jonas Maebe 23 years ago
parent
commit
09de3f8d5b
4 changed files with 23 additions and 11 deletions
  1. 5 2
      compiler/i386/daopt386.pas
  2. 5 2
      compiler/i386/n386mem.pas
  3. 7 4
      compiler/nbas.pas
  4. 6 3
      compiler/regvars.pas

+ 5 - 2
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

+ 5 - 2
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

+ 7 - 4
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

+ 6 - 3
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