Browse Source

* don't generate IMUL reg,1

peter 21 years ago
parent
commit
d28412f40b
1 changed files with 10 additions and 4 deletions
  1. 10 4
      compiler/ncgmem.pas

+ 10 - 4
compiler/ncgmem.pas

@@ -476,12 +476,14 @@ implementation
        begin
        begin
          if location.reference.base=NR_NO then
          if location.reference.base=NR_NO then
           begin
           begin
-            cg.a_op_const_reg(exprasmlist,OP_IMUL,OS_ADDR,l,reg);
+            if l<>1 then
+              cg.a_op_const_reg(exprasmlist,OP_IMUL,OS_ADDR,l,reg);
             location.reference.base:=reg;
             location.reference.base:=reg;
           end
           end
          else if location.reference.index=NR_NO then
          else if location.reference.index=NR_NO then
           begin
           begin
-            cg.a_op_const_reg(exprasmlist,OP_IMUL,OS_ADDR,l,reg);
+            if l<>1 then
+              cg.a_op_const_reg(exprasmlist,OP_IMUL,OS_ADDR,l,reg);
             location.reference.index:=reg;
             location.reference.index:=reg;
           end
           end
          else
          else
@@ -491,7 +493,8 @@ implementation
             cg.a_loadaddr_ref_reg(exprasmlist,location.reference,hreg);
             cg.a_loadaddr_ref_reg(exprasmlist,location.reference,hreg);
             reference_reset_base(location.reference,hreg,0);
             reference_reset_base(location.reference,hreg,0);
             { insert new index register }
             { insert new index register }
-            cg.a_op_const_reg(exprasmlist,OP_IMUL,OS_ADDR,l,reg);
+            if l<>1 then
+              cg.a_op_const_reg(exprasmlist,OP_IMUL,OS_ADDR,l,reg);
             location.reference.index:=reg;
             location.reference.index:=reg;
           end;
           end;
        end;
        end;
@@ -878,7 +881,10 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.83  2003-12-06 01:15:22  florian
+  Revision 1.84  2004-01-12 16:38:50  peter
+    * don't generate IMUL reg,1
+
+  Revision 1.83  2003/12/06 01:15:22  florian
     * reverted Peter's alloctemp patch; hopefully properly
     * reverted Peter's alloctemp patch; hopefully properly
 
 
   Revision 1.82  2003/12/03 23:13:20  peter
   Revision 1.82  2003/12/03 23:13:20  peter