Bladeren bron

* changeregsize -> rg.makeregsize

carl 23 jaren geleden
bovenliggende
commit
fb605f11b0

+ 11 - 8
compiler/i386/cga.pas

@@ -207,7 +207,7 @@ implementation
 
     function def_getreg(p1:tdef):tregister;
       begin
-        def_getreg:=changeregsize(rg.getregisterint(exprasmlist),def_opsize(p1));
+        def_getreg:=rg.makeregsize(rg.getregisterint(exprasmlist),int_cgsize(p1.size));
       end;
 
 
@@ -357,9 +357,9 @@ implementation
           LOC_REGISTER,
          LOC_CREGISTER : begin
                            if aktalignment.paraalign=4 then
-                             exprasmList.concat(Taicpu.Op_reg(A_PUSH,S_L,changeregsize(t.register,S_L)))
+                             exprasmList.concat(Taicpu.Op_reg(A_PUSH,S_L,rg.makeregsize(t.register,OS_32)))
                            else
-                             exprasmList.concat(Taicpu.Op_reg(A_PUSH,S_W,changeregsize(t.register,S_W)));
+                             exprasmList.concat(Taicpu.Op_reg(A_PUSH,S_W,rg.makeregsize(t.register,OS_16)));
                          end;
          LOC_CONSTANT : begin
                            if aktalignment.paraalign=4 then
@@ -655,10 +655,10 @@ implementation
                 begin
                    { and now look for an 8 bit register }
                    swap:=false;
-                   if R_EAX in rg.unusedregsint then reg8:=changeregsize(rg.getexplicitregisterint(exprasmlist,R_EAX),S_B)
-                   else if R_EDX in rg.unusedregsint then reg8:=changeregsize(rg.getexplicitregisterint(exprasmlist,R_EDX),S_B)
-                   else if R_EBX in rg.unusedregsint then reg8:=changeregsize(rg.getexplicitregisterint(exprasmlist,R_EBX),S_B)
-                   else if R_ECX in rg.unusedregsint then reg8:=changeregsize(rg.getexplicitregisterint(exprasmlist,R_ECX),S_B)
+                   if R_EAX in rg.unusedregsint then reg8:=rg.makeregsize(rg.getexplicitregisterint(exprasmlist,R_EAX),OS_8)
+                   else if R_EDX in rg.unusedregsint then reg8:=rg.makeregsize(rg.getexplicitregisterint(exprasmlist,R_EDX),OS_8)
+                   else if R_EBX in rg.unusedregsint then reg8:=rg.makeregsize(rg.getexplicitregisterint(exprasmlist,R_EBX),OS_8)
+                   else if R_ECX in rg.unusedregsint then reg8:=rg.makeregsize(rg.getexplicitregisterint(exprasmlist,R_ECX),OS_8)
                    else
                       begin
                          swap:=true;
@@ -2301,7 +2301,10 @@ implementation
 end.
 {
   $Log$
-  Revision 1.25  2002-04-20 21:37:07  carl
+  Revision 1.26  2002-04-21 15:29:53  carl
+  * changeregsize -> rg.makeregsize
+
+  Revision 1.25  2002/04/20 21:37:07  carl
   + generic FPC_CHECKPOINTER
   + first parameter offset in stack now portable
   * rename some constants

+ 10 - 7
compiler/i386/csopt386.pas

@@ -822,11 +822,11 @@ begin
   if reg = newReg then
     reg := orgReg
   else if (reg in regset8bit) and
-          (reg = Changeregsize(newReg,S_B)) then
-    reg := Changeregsize(orgReg,S_B)
+          (reg = rg.makeregsize(newReg,OS_8)) then
+    reg := rg.makeregsize(orgReg,OS_8)
   else if (reg in regset16bit) and
-          (reg = Changeregsize(newReg,S_W)) then
-    reg := Changeregsize(orgReg,S_W)
+          (reg = rg.makeregsize(newReg,OS_16)) then
+    reg := rg.makeregsize(orgReg,OS_16)
   else
     changeReg := false;
 end;
@@ -1385,9 +1385,9 @@ begin
             begin
               case t.opsize of
                 S_B,S_BW,S_BL:
-                  memtoreg := Changeregsize(regcounter,S_B);
+                  memtoreg := rg.makeregsize(regcounter,OS_8);
                 S_W,S_WL:
-                  memtoreg := Changeregsize(regcounter,S_W);
+                  memtoreg := rg.makeregsize(regcounter,OS_16);
                 S_L:
                   memtoreg := regcounter;
               end;
@@ -1984,7 +1984,10 @@ End.
 
 {
   $Log$
-  Revision 1.31  2002-04-20 21:37:07  carl
+  Revision 1.32  2002-04-21 15:32:59  carl
+  * changeregsize -> rg.makeregsize
+
+  Revision 1.31  2002/04/20 21:37:07  carl
   + generic FPC_CHECKPOINTER
   + first parameter offset in stack now portable
   * rename some constants

+ 25 - 21
compiler/i386/daopt386.pas

@@ -226,7 +226,8 @@ Var
 Implementation
 
 Uses
-  globals, systems, verbose, cgbase, symconst, symsym, tainst, cginfo, rgobj;
+  globals, systems, verbose, cgbase, symconst, symsym, tainst, cginfo, cgobj, 
+   rgobj;
 
 Type
   TRefCompare = function(const r1, r2: TReference): Boolean;
@@ -586,10 +587,10 @@ Begin
   If (Reg >= R_AX)
     Then
       If (Reg <= R_DI)
-        Then Reg32 := ChangeRegsize(Reg,S_L)
+        Then Reg32 := rg.makeregsize(Reg,OS_INT)
         Else
           If (Reg <= R_BL)
-            Then Reg32 := ChangeRegsize(Reg,S_L);
+            Then Reg32 := rg.makeregsize(Reg,OS_INT);
 End;
 
 { inserts new_one between prev and foll }
@@ -641,37 +642,37 @@ Begin
       Case OldReg Of
         R_EAX..R_EDI:
           Begin
-            NewRegsEncountered := NewRegsEncountered + [ChangeRegsize(NewReg,S_W)];
-            OldRegsEncountered := OldRegsEncountered + [ChangeRegsize(OldReg,S_W)];
-            New2OldReg[Changeregsize(NewReg,S_W)] := Changeregsize(OldReg,S_W);
+            NewRegsEncountered := NewRegsEncountered + [rg.makeregsize(NewReg,OS_16)];
+            OldRegsEncountered := OldRegsEncountered + [rg.makeregsize(OldReg,OS_16)];
+            New2OldReg[rg.makeregsize(NewReg,OS_16)] := rg.makeregsize(OldReg,OS_16);
             If (NewReg in [R_EAX..R_EBX]) And
                (OldReg in [R_EAX..R_EBX]) Then
               Begin
-                NewRegsEncountered := NewRegsEncountered + [Changeregsize(NewReg,S_B)];
-                OldRegsEncountered := OldRegsEncountered + [Changeregsize(OldReg,S_B)];
-                New2OldReg[Changeregsize(NewReg,S_B)] := Changeregsize(OldReg,S_B);
+                NewRegsEncountered := NewRegsEncountered + [rg.makeregsize(NewReg,OS_8)];
+                OldRegsEncountered := OldRegsEncountered + [rg.makeregsize(OldReg,OS_8)];
+                New2OldReg[rg.makeregsize(NewReg,OS_8)] := rg.makeregsize(OldReg,OS_8);
               End;
           End;
         R_AX..R_DI:
           Begin
-            NewRegsEncountered := NewRegsEncountered + [Changeregsize(NewReg,S_L)];
-            OldRegsEncountered := OldRegsEncountered + [Changeregsize(OldReg,S_L)];
-            New2OldReg[Changeregsize(NewReg,S_L)] := Changeregsize(OldReg,S_L);
+            NewRegsEncountered := NewRegsEncountered + [rg.makeregsize(NewReg,OS_32)];
+            OldRegsEncountered := OldRegsEncountered + [rg.makeregsize(OldReg,OS_32)];
+            New2OldReg[rg.makeregsize(NewReg,OS_32)] := rg.makeregsize(OldReg,OS_32);
             If (NewReg in [R_AX..R_BX]) And
                (OldReg in [R_AX..R_BX]) Then
               Begin
-                NewRegsEncountered := NewRegsEncountered + [Changeregsize(NewReg,S_B)];
-                OldRegsEncountered := OldRegsEncountered + [Changeregsize(OldReg,S_B)];
-                New2OldReg[Changeregsize(NewReg,S_B)] := Changeregsize(OldReg,S_B);
+                NewRegsEncountered := NewRegsEncountered + [rg.makeregsize(NewReg,OS_8)];
+                OldRegsEncountered := OldRegsEncountered + [rg.makeregsize(OldReg,OS_8)];
+                New2OldReg[rg.makeregsize(NewReg,OS_8)] := rg.makeregsize(OldReg,OS_8);
               End;
           End;
         R_AL..R_BL:
           Begin
-            NewRegsEncountered := NewRegsEncountered + [Changeregsize(NewReg,S_L)]
-                               + [Changeregsize(NewReg,S_W)];
-            OldRegsEncountered := OldRegsEncountered + [Changeregsize(OldReg,S_L)]
-                               + [Changeregsize(OldReg,S_B)];
-            New2OldReg[Changeregsize(NewReg,S_L)] := Changeregsize(OldReg,S_L);
+            NewRegsEncountered := NewRegsEncountered + [rg.makeregsize(NewReg,OS_32)]
+                               + [rg.makeregsize(NewReg,OS_16)];
+            OldRegsEncountered := OldRegsEncountered + [rg.makeregsize(OldReg,OS_32)]
+                               + [rg.makeregsize(OldReg,OS_8)];
+            New2OldReg[rg.makeregsize(NewReg,OS_32)] := rg.makeregsize(OldReg,OS_32);
           End;
       End;
     End;
@@ -2586,7 +2587,10 @@ End.
 
 {
   $Log$
-  Revision 1.32  2002-04-20 21:37:07  carl
+  Revision 1.33  2002-04-21 15:32:59  carl
+  * changeregsize -> rg.makeregsize
+
+  Revision 1.32  2002/04/20 21:37:07  carl
   + generic FPC_CHECKPOINTER
   + first parameter offset in stack now portable
   * rename some constants

+ 7 - 4
compiler/i386/n386cal.pas

@@ -1204,8 +1204,8 @@ implementation
                          else
                           begin
                             location.register:=rg.getexplicitregisterint(exprasmlist,accumulator);
-                            hregister:=changeregsize(accumulator,TCGSize2Opsize[cgsize]);
-                            location.register:=changeregsize(location.register,TCGSize2Opsize[cgsize]);
+                            hregister:=rg.makeregsize(accumulator,cgsize);
+                            location.register:=rg.makeregsize(location.register,cgsize);
                             cg.a_load_reg_reg(exprasmlist,cgsize,hregister,location.register);
                           end;
                        end;
@@ -1343,7 +1343,7 @@ implementation
                   for i := 1 to maxvarregs do
                     if assigned(regvars[i]) then
                       begin
-                        tmpreg:=changeregsize(regvars[i].reg,S_L);
+                        tmpreg:=rg.makeregsize(regvars[i].reg,OS_INT);
                         rg.makeregvar(tmpreg);
                       end;
             end;
@@ -1477,7 +1477,10 @@ begin
 end.
 {
   $Log$
-  Revision 1.45  2002-04-15 19:44:21  peter
+  Revision 1.46  2002-04-21 15:34:25  carl
+  * changeregsize -> rg.makeregsize
+
+  Revision 1.45  2002/04/15 19:44:21  peter
     * fixed stackcheck that would be called recursively when a stack
       error was found
     * generic changeregsize(reg,size) for i386 register resizing

+ 5 - 2
compiler/i386/n386cnv.pas

@@ -257,7 +257,7 @@ implementation
                 getlabel(hlabel);
                 cg.a_label(exprasmlist,truelabel);
                 cg.a_load_const_reg(exprasmlist,OS_INT,1,hregister);
-                cg.a_jmp_cond(exprasmlist,OC_NONE,hlabel);
+                cg.a_jmp_always(exprasmlist,hlabel);
                 cg.a_label(exprasmlist,falselabel);
                 cg.a_load_const_reg(exprasmlist,OS_INT,0,hregister);
                 cg.a_label(exprasmlist,hlabel);
@@ -364,7 +364,10 @@ begin
 end.
 {
   $Log$
-  Revision 1.35  2002-04-19 15:39:35  peter
+  Revision 1.36  2002-04-21 15:35:23  carl
+  * changeregsize -> rg.makeregsize
+
+  Revision 1.35  2002/04/19 15:39:35  peter
     * removed some more routines from cga
     * moved location_force_reg/mem to ncgutil
     * moved arrayconstructnode secondpass to ncgld

+ 5 - 2
compiler/i386/n386inl.pas

@@ -467,7 +467,7 @@ implementation
                         { need a cmp and jmp, but this should be done by the         }
                         { type cast code which does range checking if necessary (FK) }
                         begin
-                          hregister := changeregsize(tcallparanode(tcallparanode(left).right).left.location.register,S_L);
+                          hregister := rg.makeregsize(tcallparanode(tcallparanode(left).right).left.location.register,OS_INT);
                         end
                       else
                         begin
@@ -591,7 +591,10 @@ begin
 end.
 {
   $Log$
-  Revision 1.37  2002-04-19 15:39:35  peter
+  Revision 1.38  2002-04-21 15:35:54  carl
+  * changeregsize -> rg.makeregsize
+
+  Revision 1.37  2002/04/19 15:39:35  peter
     * removed some more routines from cga
     * moved location_force_reg/mem to ncgutil
     * moved arrayconstructnode secondpass to ncgld

+ 8 - 5
compiler/i386/n386ld.pas

@@ -149,13 +149,13 @@ implementation
                                    location.register:=tvarsym(symtableentry).reg;
                                 end
                               else
-                                if not(changeregsize(tvarsym(symtableentry).reg,S_L) in [R_EAX..R_EBX]) or
-                                   rg.regvar_loaded[changeregsize(tvarsym(symtableentry).reg,S_L)] then
+                                if not(rg.makeregsize(tvarsym(symtableentry).reg,OS_INT) in [R_EAX..R_EBX]) or
+                                   rg.regvar_loaded[rg.makeregsize(tvarsym(symtableentry).reg,OS_INT)] then
                                 begin
                                    location_reset(location,LOC_CREGISTER,
                                        cg.reg_cgsize(tvarsym(symtableentry).reg));
                                    location.register:=tvarsym(symtableentry).reg;
-                                   exclude(rg.unusedregsint,changeregsize(tvarsym(symtableentry).reg,S_L));
+                                   exclude(rg.unusedregsint,rg.makeregsize(tvarsym(symtableentry).reg,OS_INT));
                                 end
                               else
                                 begin
@@ -163,7 +163,7 @@ implementation
                                   location_reset(location,LOC_CREGISTER,
                                       cg.reg_cgsize(tvarsym(symtableentry).reg));
                                   location.register:=tvarsym(symtableentry).reg;
-                                  exclude(rg.unusedregsint,changeregsize(tvarsym(symtableentry).reg,S_L));
+                                  exclude(rg.unusedregsint,rg.makeregsize(tvarsym(symtableentry).reg,OS_INT));
                                 end
                            end
                          else
@@ -777,7 +777,10 @@ begin
 end.
 {
   $Log$
-  Revision 1.36  2002-04-19 15:39:35  peter
+  Revision 1.37  2002-04-21 15:36:13  carl
+  * changeregsize -> rg.makeregsize
+
+  Revision 1.36  2002/04/19 15:39:35  peter
     * removed some more routines from cga
     * moved location_force_reg/mem to ncgutil
     * moved arrayconstructnode secondpass to ncgld

+ 8 - 5
compiler/i386/n386opt.pas

@@ -41,7 +41,7 @@ type
 
 implementation
 
-uses pass_1, types, htypechk, cgbase, cpubase, cga,
+uses pass_1, types, htypechk, cginfo, cgbase, cpubase, cga,
      tgobj, aasm, ncnv, ncon, pass_2, symdef, rgobj;
 
 
@@ -117,7 +117,7 @@ begin
         { free the registers of right }
         reference_release(exprasmlist,right.location.reference);
         { get register for the char }
-        hreg := changeregsize(rg.getregisterint(exprasmlist),S_B);
+        hreg := rg.makeregsize(rg.getregisterint(exprasmlist),OS_8);
         emit_ref_reg(A_MOV,S_B,right.location.reference,hreg);
        { I don't think a temp char exists, but it won't hurt (JM) }
        tg.ungetiftemp(exprasmlist,right.location.reference);
@@ -181,8 +181,8 @@ begin
   else
     emit_const_ref(A_MOV,S_B,tordconstnode(right).value,href2);
   { increase the string length }
-  emit_reg(A_INC,S_B,changeregsize(lengthreg,S_B));
-  emit_reg_ref(A_MOV,S_B,changeregsize(lengthreg,S_B),left.location.reference);
+  emit_reg(A_INC,S_B,rg.makeregsize(lengthreg,OS_8));
+  emit_reg_ref(A_MOV,S_B,rg.makeregsize(lengthreg,OS_8),left.location.reference);
   rg.ungetregisterint(exprasmlist,lengthreg);
   if checklength then
     emitlab(l);
@@ -242,7 +242,10 @@ end.
 
 {
   $Log$
-  Revision 1.10  2002-04-15 19:44:21  peter
+  Revision 1.11  2002-04-21 15:36:40  carl
+  * changeregsize -> rg.makeregsize
+
+  Revision 1.10  2002/04/15 19:44:21  peter
     * fixed stackcheck that would be called recursively when a stack
       error was found
     * generic changeregsize(reg,size) for i386 register resizing

+ 15 - 12
compiler/i386/n386set.pas

@@ -220,7 +220,7 @@ implementation
                { use the register as base in a reference (JM)                }
                if ranges then
                  begin
-                   pleftreg:=changeregsize(left.location.register,S_L);
+                   pleftreg:=rg.makeregsize(left.location.register,OS_INT);
                    cg.a_load_reg_reg(exprasmlist,left.location.size,left.location.register,pleftreg);
                    if opsize <> S_L then
                      emit_const_reg(A_AND,S_L,255,pleftreg);
@@ -230,7 +230,7 @@ implementation
                  { otherwise simply use the lower 8 bits (no "and" }
                  { necessary this way) (JM)                        }
                  begin
-                   pleftreg:=changeregsize(left.location.register,S_B);
+                   pleftreg:=rg.makeregsize(left.location.register,OS_8);
                    opsize := S_B;
                  end;
              end
@@ -382,7 +382,7 @@ implementation
                      LOC_REGISTER,
                      LOC_CREGISTER:
                        begin
-                          hr:=changeregsize(left.location.register,S_L);
+                          hr:=rg.makeregsize(left.location.register,OS_INT);
                           cg.a_load_reg_reg(exprasmlist,left.location.size,left.location.register,hr);
                        end;
                   else
@@ -451,7 +451,7 @@ implementation
                      LOC_REGISTER,
                      LOC_CREGISTER:
                        begin
-                          hr:=changeregsize(left.location.register,S_L);
+                          hr:=rg.makeregsize(left.location.register,OS_INT);
                           cg.a_load_reg_reg(exprasmlist,left.location.size,left.location.register,hr);
                           emit_const_reg(A_CMP,S_L,31,hr);
                           emitjmp(C_NA,l);
@@ -523,7 +523,7 @@ implementation
                     end
                   else
                     begin
-                      pleftreg := changeregsize(left.location.register,S_L);
+                      pleftreg := rg.makeregsize(left.location.register,OS_INT);
                       opsize := def2def_opsize(left.resulttype.def,u32bittype.def);
                       if opsize <> S_L then
                        begin
@@ -817,21 +817,21 @@ implementation
              begin
                 if with_sign then
                   emit_reg_reg(A_MOVSX,S_WL,hregister,
-                    changeregsize(hregister,S_L))
+                    rg.makeregsize(hregister,OS_INT))
                 else
                   emit_reg_reg(A_MOVZX,S_WL,hregister,
-                    changeregsize(hregister,S_L));
-                hregister:=changeregsize(hregister,S_L);
+                    rg.makeregsize(hregister,OS_INT));
+                hregister:=rg.makeregsize(hregister,OS_INT);
              end
            else if opsize=S_B then
              begin
                 if with_sign then
                   emit_reg_reg(A_MOVSX,S_BL,hregister,
-                    changeregsize(hregister,S_L))
+                    rg.makeregsize(hregister,OS_INT))
                 else
                   emit_reg_reg(A_MOVZX,S_BL,hregister,
-                    changeregsize(hregister,S_L));
-                hregister:=changeregsize(hregister,S_L);
+                    rg.makeregsize(hregister,OS_INT));
+                hregister:=rg.makeregsize(hregister,OS_INT);
              end;
            reference_reset_symbol(href,table,0);
            href.offset:=(-longint(min_))*4;
@@ -1030,7 +1030,10 @@ begin
 end.
 {
   $Log$
-  Revision 1.23  2002-04-19 15:39:35  peter
+  Revision 1.24  2002-04-21 15:37:26  carl
+  * changeregsize -> rg.makeregsize
+
+  Revision 1.23  2002/04/19 15:39:35  peter
     * removed some more routines from cga
     * moved location_force_reg/mem to ncgutil
     * moved arrayconstructnode secondpass to ncgld

+ 8 - 7
compiler/i386/n386util.pas

@@ -319,9 +319,9 @@ implementation
              LOC_CREGISTER :
                begin
                  if aktalignment.paraalign=4 then
-                   exprasmList.concat(Taicpu.Op_reg(A_PUSH,S_L,changeregsize(p.location.register,S_W)))
+                   exprasmList.concat(Taicpu.Op_reg(A_PUSH,S_L,rg.makeregsize(p.location.register,OS_16)))
                  else
-                   exprasmList.concat(Taicpu.Op_reg(A_PUSH,S_W,changeregsize(p.location.register,S_L)));
+                   exprasmList.concat(Taicpu.Op_reg(A_PUSH,S_W,rg.makeregsize(p.location.register,OS_32)));
                  rg.ungetregisterint(exprasmlist,p.location.register);
                end;
            else
@@ -382,9 +382,7 @@ implementation
                          cgsize:=OS_32;
                       end;
                   end;
-{$ifdef i386}
-                  p.location.register:=changeregsize(p.location.register,TCGSize2Opsize[cgsize]);
-{$endif i386}
+                  p.location.register:=rg.makeregsize(p.location.register,cgsize);
                   inc(pushedparasize,alignment);
                   if inlined then
                    begin
@@ -936,7 +934,7 @@ implementation
                            href := dest.location.reference;
                            emit_const_ref(A_MOV,S_B,1,href);
                            inc(href.offset,1);
-                           emit_reg_ref(A_MOV,S_B,changeregsize(source.location.register,S_B),href);
+                           emit_reg_ref(A_MOV,S_B,rg.makeregsize(source.location.register,OS_8),href);
                         end
                       else
                       { not so elegant (goes better with extra register    }
@@ -1112,7 +1110,10 @@ implementation
 end.
 {
   $Log$
-  Revision 1.33  2002-04-20 21:37:07  carl
+  Revision 1.34  2002-04-21 15:39:41  carl
+  * changeregsize -> rg.makeregsize
+
+  Revision 1.33  2002/04/20 21:37:07  carl
   + generic FPC_CHECKPOINTER
   + first parameter offset in stack now portable
   * rename some constants

+ 14 - 11
compiler/i386/popt386.pas

@@ -1213,7 +1213,7 @@ Begin
                       Case Taicpu(p).opsize of
                         S_BW:
                           Begin
-                            If (Taicpu(p).oper[0].reg = Changeregsize(Taicpu(p).oper[1].reg,S_B)) And
+                            If (Taicpu(p).oper[0].reg = rg.makeregsize(Taicpu(p).oper[1].reg,OS_8)) And
                                Not(CS_LittleSize In aktglobalswitches)
                               Then
                                 {Change "movzbw %al, %ax" to "andw $0x0ffh, %ax"}
@@ -1235,13 +1235,13 @@ Begin
                                     Begin
                                       Taicpu(p).opcode := A_MOV;
                                       Taicpu(p).changeopsize(S_W);
-                                      Taicpu(p).LoadReg(0,Changeregsize(Taicpu(p).oper[0].reg,S_W));
+                                      Taicpu(p).LoadReg(0,rg.makeregsize(Taicpu(p).oper[0].reg,OS_16));
                                       Taicpu(hp1).LoadConst(0,Taicpu(hp1).oper[0].val And $ff);
                                     End;
                           End;
                         S_BL:
                           Begin
-                            If (Taicpu(p).oper[0].reg = Changeregsize(Taicpu(p).oper[1].reg,S_B)) And
+                            If (Taicpu(p).oper[0].reg = rg.makeregsize(Taicpu(p).oper[1].reg,OS_8)) And
                                Not(CS_LittleSize in aktglobalswitches)
                               Then
                                 {Change "movzbl %al, %eax" to "andl $0x0ffh, %eax"}
@@ -1263,13 +1263,13 @@ Begin
                                     Begin
                                       Taicpu(p).opcode := A_MOV;
                                       Taicpu(p).changeopsize(S_L);
-                                      Taicpu(p).LoadReg(0,Changeregsize(Taicpu(p).oper[0].reg,S_L));
+                                      Taicpu(p).LoadReg(0,rg.makeregsize(Taicpu(p).oper[0].reg,OS_32));
                                       Taicpu(hp1).LoadConst(0,Taicpu(hp1).oper[0].val And $ff);
                                     End
                           End;
                         S_WL:
                           Begin
-                            If (Taicpu(p).oper[0].reg = Changeregsize(Taicpu(p).oper[1].reg,S_W)) And
+                            If (Taicpu(p).oper[0].reg = rg.makeregsize(Taicpu(p).oper[1].reg,OS_16)) And
                                Not(CS_LittleSize In aktglobalswitches)
                               Then
                                {Change "movzwl %ax, %eax" to "andl $0x0ffffh, %eax"}
@@ -1291,7 +1291,7 @@ Begin
                                     Begin
                                       Taicpu(p).opcode := A_MOV;
                                       Taicpu(p).changeopsize(S_L);
-                                      Taicpu(p).LoadReg(0,Changeregsize(Taicpu(p).oper[0].reg,S_L));
+                                      Taicpu(p).LoadReg(0,rg.makeregsize(Taicpu(p).oper[0].reg,OS_32));
                                       Taicpu(hp1).LoadConst(0,Taicpu(hp1).oper[0].val And $ffff);
                                     End;
                           End;
@@ -1596,7 +1596,7 @@ Begin
                             Begin
                               Taicpu(hp1).changeopsize(S_L);
                               if Taicpu(hp1).oper[0].typ=top_reg then
-                                Taicpu(hp1).LoadReg(0,Changeregsize(Taicpu(hp1).oper[0].reg,S_L));
+                                Taicpu(hp1).LoadReg(0,rg.makeregsize(Taicpu(hp1).oper[0].reg,OS_32));
                               hp1 := Tai(p.next);
                               asml.Remove(p);
                               p.free;
@@ -1955,7 +1955,7 @@ Begin
                                     InsertLLItem(AsmL,p.previous, p, hp1);
                                     Taicpu(p).opcode := A_MOV;
                                     Taicpu(p).changeopsize(S_B);
-                                    Taicpu(p).LoadReg(1,Changeregsize(Taicpu(p).oper[1].reg,S_B));
+                                    Taicpu(p).LoadReg(1,rg.makeregsize(Taicpu(p).oper[1].reg,OS_8));
                                   End;
                             End;
                         End
@@ -1975,7 +1975,7 @@ Begin
                                          Taicpu(p).oper[1].reg);
                               Taicpu(p).opcode := A_MOV;
                               Taicpu(p).changeopsize(S_B);
-                              Taicpu(p).LoadReg(1,Changeregsize(Taicpu(p).oper[1].reg,S_B));
+                              Taicpu(p).LoadReg(1,rg.makeregsize(Taicpu(p).oper[1].reg,OS_8));
                               InsertLLItem(AsmL,p.previous, p, hp1);
                             End;
                  End;
@@ -2040,7 +2040,10 @@ End.
 
 {
   $Log$
-  Revision 1.22  2002-04-20 21:37:07  carl
+  Revision 1.23  2002-04-21 15:40:49  carl
+  * changeregsize -> rg.makeregsize
+
+  Revision 1.22  2002/04/20 21:37:07  carl
   + generic FPC_CHECKPOINTER
   + first parameter offset in stack now portable
   * rename some constants
@@ -2053,7 +2056,7 @@ End.
   Revision 1.21  2002/04/15 19:44:21  peter
     * fixed stackcheck that would be called recursively when a stack
       error was found
-    * generic changeregsize(reg,size) for i386 register resizing
+    * generic rg.makeregsize(reg,size) for i386 register resizing
     * removed some more routines from cga unit
     * fixed returnvalue handling
     * fixed default stacksize of linux and go32v2, 8kb was a bit small :-)

+ 12 - 9
compiler/i386/rropt386.pas

@@ -81,17 +81,17 @@ begin
     reg := reg1
   else if (reg in regset8bit) then
     begin
-      if (reg = Changeregsize(reg1,S_B)) then
-        reg := Changeregsize(reg2,S_B)
-      else if reg = Changeregsize(reg2,S_B) then
-        reg := Changeregsize(reg1,S_B);
+      if (reg = rg.makeregsize(reg1,OS_8)) then
+        reg := rg.makeregsize(reg2,OS_8)
+      else if reg = rg.makeregsize(reg2,OS_8) then
+        reg := rg.makeregsize(reg1,OS_8);
     end
   else if (reg in regset16bit) then
     begin
-      if reg = Changeregsize(reg1,S_W) then
-        reg := Changeregsize(reg2,S_W)
-      else if reg = Changeregsize(reg2,S_W) then
-        reg := Changeregsize(reg1,S_W);
+      if reg = rg.makeregsize(reg1,OS_16) then
+        reg := rg.makeregsize(reg2,OS_16)
+      else if reg = rg.makeregsize(reg2,OS_16) then
+        reg := rg.makeregsize(reg1,OS_16);
     end;
 end;
 
@@ -350,7 +350,10 @@ End.
 
 {
   $Log$
-  Revision 1.12  2002-04-20 21:37:08  carl
+  Revision 1.13  2002-04-21 15:42:17  carl
+  * changeregsize -> rg.makeregsize
+
+  Revision 1.12  2002/04/20 21:37:08  carl
   + generic FPC_CHECKPOINTER
   + first parameter offset in stack now portable
   * rename some constants