Sfoglia il codice sorgente

* old logs removed and tabs fixed

peter 23 anni fa
parent
commit
dcd9e0107c
92 ha cambiato i file con 665 aggiunte e 2361 eliminazioni
  1. 1 1
      compiler/Makefile.fpc
  2. 5 14
      compiler/alpha/agas.pas
  3. 5 11
      compiler/alpha/aoptcpu.pas
  4. 4 10
      compiler/alpha/aoptcpub.pas
  5. 5 11
      compiler/alpha/aoptcpuc.pas
  6. 4 10
      compiler/alpha/aoptcpud.pas
  7. 5 44
      compiler/alpha/cgcpu.pas
  8. 6 24
      compiler/alpha/cpuasm.pas
  9. 5 63
      compiler/alpha/cpubase.pas
  10. 2 2
      compiler/alpha/cpuinfo.pas
  11. 6 18
      compiler/alpha/tgcpu.pas
  12. 9 6
      compiler/browlog.pas
  13. 16 45
      compiler/cg64f32.pas
  14. 7 4
      compiler/cg64f64.pas
  15. 4 4
      compiler/cgbase.pas
  16. 6 3
      compiler/cginfo.pas
  17. 4 151
      compiler/cgobj.pas
  18. 4 9
      compiler/charset.pas
  19. 4 8
      compiler/defbase.pas
  20. 5 2
      compiler/fpcdefs.inc
  21. 4 21
      compiler/i386/cgcpu.pas
  22. 13 10
      compiler/i386/cpuinfo.pas
  23. 1 1
      compiler/i386/i386ins.dat
  24. 4 57
      compiler/i386/n386cal.pas
  25. 27 24
      compiler/i386/n386inl.pas
  26. 5 2
      compiler/i386/n386mat.pas
  27. 4 24
      compiler/i386/n386mem.pas
  28. 4 7
      compiler/ia64/cpuasm.pas
  29. 11 25
      compiler/ia64/cpubase.pas
  30. 7 11
      compiler/ia64/cpuinfo.pas
  31. 6 3
      compiler/link.pas
  32. 6 3
      compiler/m68k/aasmcpu.pas
  33. 10 7
      compiler/m68k/agcpugas.pas
  34. 129 126
      compiler/m68k/cgcpu.pas
  35. 3 9
      compiler/m68k/cpuasm.pas
  36. 10 7
      compiler/m68k/cpuinfo.pas
  37. 8 5
      compiler/m68k/n68kcnv.pas
  38. 5 2
      compiler/m68k/n68kmat.pas
  39. 6 3
      compiler/m68k/radirect.pas
  40. 14 63
      compiler/m68k/rasm.pas
  41. 15 12
      compiler/m68k/rgcpu.pas
  42. 13 13
      compiler/nadd.pas
  43. 4 112
      compiler/ncal.pas
  44. 4 3
      compiler/ncgcal.pas
  45. 4 36
      compiler/ncgcnv.pas
  46. 4 91
      compiler/ncgflw.pas
  47. 4 46
      compiler/ncgld.pas
  48. 4 29
      compiler/ncgmem.pas
  49. 4 135
      compiler/ncgutil.pas
  50. 4 60
      compiler/ncnv.pas
  51. 8 5
      compiler/ncon.pas
  52. 2 14
      compiler/new/README
  53. 2 14
      compiler/new/agatt.pas
  54. 3 28
      compiler/new/aopt.pas
  55. 3 25
      compiler/new/aoptbase.pas
  56. 4 29
      compiler/new/aoptcs.pas
  57. 4 20
      compiler/new/aoptda.pas
  58. 3 37
      compiler/new/aoptobj.pas
  59. 3 28
      compiler/new/i386/aoptcpu.pas
  60. 2 33
      compiler/new/i386/aoptcpub.pas
  61. 3 19
      compiler/new/i386/aoptcpuc.pas
  62. 2 27
      compiler/new/i386/aoptcpud.pas
  63. 4 35
      compiler/nflw.pas
  64. 4 42
      compiler/nld.pas
  65. 4 4
      compiler/node.pas
  66. 44 41
      compiler/nstate.pas
  67. 10 7
      compiler/oglx.pas
  68. 4 20
      compiler/pdecsub.pas
  69. 4 17
      compiler/pexpr.pas
  70. 4 31
      compiler/pmodules.pas
  71. 5 80
      compiler/powerpc/cgcpu.pas
  72. 4 12
      compiler/powerpc/cpubase.pas
  73. 9 6
      compiler/powerpc/cpuinfo.pas
  74. 5 2
      compiler/powerpc/nppcmat.pas
  75. 4 9
      compiler/ppc.dpr
  76. 4 60
      compiler/pstatmnt.pas
  77. 4 67
      compiler/psub.pas
  78. 2 2
      compiler/sparc/cpubase.pas
  79. 2 2
      compiler/sparc/cpuinfo.pas
  80. 4 53
      compiler/sparc/cpuswtch.pas
  81. 4 7
      compiler/sparc/cputarg.pas
  82. 4 4
      compiler/sparc/ncpucnv.pas
  83. 4 54
      compiler/sparc/tgcpu.pas
  84. 4 61
      compiler/symdef.pas
  85. 4 56
      compiler/symsym.pas
  86. 5 2
      compiler/systems/i_wdosx.pas
  87. 5 2
      compiler/systems/i_win32.pas
  88. 8 3
      compiler/utils/fixlog.pp
  89. 5 2
      compiler/version.pas
  90. 6 3
      compiler/x86_64/cpuinfo.pas
  91. 4 6
      compiler/x86_64/cputarg.pas
  92. 8 5
      compiler/x86_64/rasm.pas

+ 1 - 1
compiler/Makefile.fpc

@@ -540,4 +540,4 @@ localmake:=$(strip $(wildcard makefile.loc))
 
 
 ifdef localmake
 ifdef localmake
 include ./$(localmake)
 include ./$(localmake)
-endif
+endif

+ 5 - 14
compiler/alpha/agas.pas

@@ -113,19 +113,10 @@ end.
 
 
 {
 {
   $Log$
   $Log$
-  Revision 1.1  2002-08-18 09:06:54  florian
-    * alpha files moved compiler/alpha
-
-  Revision 1.1  2000/07/13 06:30:09  michael
-  + Initial import
-
-  Revision 1.5  2000/01/07 01:14:55  peter
-    * updated copyright to 2000
+  Revision 1.2  2002-09-07 15:25:10  peter
+    * old logs removed and tabs fixed
 
 
-  Revision 1.4  1999/08/25 12:00:16  jonas
-    * changed pai386, paippc and paiapha (same for tai*) to paicpu (taicpu)
-
-  Revision 1.3  1999/08/05 15:50:31  michael
-  * more changes
+  Revision 1.1  2002/08/18 09:06:54  florian
+    * alpha files moved compiler/alpha
 
 
-}
+}

+ 5 - 11
compiler/alpha/aoptcpu.pas

@@ -39,16 +39,10 @@ Implementation
 End.
 End.
 {
 {
  $Log$
  $Log$
- Revision 1.1  2002-08-18 09:06:54  florian
-   * alpha files moved compiler/alpha
-
- Revision 1.1  2000/07/13 06:30:10  michael
- + Initial import
-
- Revision 1.2  2000/01/07 01:14:55  peter
-   * updated copyright to 2000
+ Revision 1.2  2002-09-07 15:25:10  peter
+   * old logs removed and tabs fixed
 
 
- Revision 1.1  1999/12/24 22:49:23  jonas
-   + dummy to allow compiling
+ Revision 1.1  2002/08/18 09:06:54  florian
+   * alpha files moved compiler/alpha
 
 
-}
+}

+ 4 - 10
compiler/alpha/aoptcpub.pas

@@ -117,16 +117,10 @@ End.
 
 
 {
 {
  $Log$
  $Log$
- Revision 1.1  2002-08-18 09:06:54  florian
-   * alpha files moved compiler/alpha
-
- Revision 1.1  2000/07/13 06:30:10  michael
- + Initial import
+ Revision 1.2  2002-09-07 15:25:10  peter
+   * old logs removed and tabs fixed
 
 
- Revision 1.2  2000/01/07 01:14:55  peter
-   * updated copyright to 2000
-
- Revision 1.1  1999/11/09 22:57:09  peter
-   * compiles again both i386,alpha both with optimizer
+ Revision 1.1  2002/08/18 09:06:54  florian
+   * alpha files moved compiler/alpha
 
 
 }
 }

+ 5 - 11
compiler/alpha/aoptcpuc.pas

@@ -39,16 +39,10 @@ Implementation
 End.
 End.
 {
 {
   $Log$
   $Log$
-  Revision 1.1  2002-08-18 09:06:54  florian
-    * alpha files moved compiler/alpha
-
-  Revision 1.1  2000/07/13 06:30:10  michael
-  + Initial import
-
-  Revision 1.2  2000/01/07 01:14:55  peter
-    * updated copyright to 2000
+  Revision 1.2  2002-09-07 15:25:10  peter
+    * old logs removed and tabs fixed
 
 
-  Revision 1.1  1999/11/09 22:57:09  peter
-    * compiles again both i386,alpha both with optimizer
+  Revision 1.1  2002/08/18 09:06:54  florian
+    * alpha files moved compiler/alpha
 
 
-}
+}

+ 4 - 10
compiler/alpha/aoptcpud.pas

@@ -41,16 +41,10 @@ End.
 
 
 {
 {
   $Log$
   $Log$
-  Revision 1.1  2002-08-18 09:06:54  florian
-    * alpha files moved compiler/alpha
-
-  Revision 1.1  2000/07/13 06:30:10  michael
-  + Initial import
+  Revision 1.2  2002-09-07 15:25:10  peter
+    * old logs removed and tabs fixed
 
 
-  Revision 1.2  2000/01/07 01:14:56  peter
-    * updated copyright to 2000
-
-  Revision 1.1  1999/11/09 22:57:09  peter
-    * compiles again both i386,alpha both with optimizer
+  Revision 1.1  2002/08/18 09:06:54  florian
+    * alpha files moved compiler/alpha
 
 
 }
 }

+ 5 - 44
compiler/alpha/cgcpu.pas

@@ -67,7 +67,7 @@ constructor tcgalpha.init;
 procedure tcgalpha.g_stackframe_entry(list : paasmoutput;localsize : longint);
 procedure tcgalpha.g_stackframe_entry(list : paasmoutput;localsize : longint);
 
 
 begin
 begin
-  With List^ do 
+  With List^ do
     begin
     begin
     concat(new(paicpu,op_reg_ref(A_LDGP,Global_pointer,new_reference(R_27,0))));
     concat(new(paicpu,op_reg_ref(A_LDGP,Global_pointer,new_reference(R_27,0))));
     concat(new(paicpu,op_reg_ref(A_LDA,Stack_Pointer,new_reference(Stack_pointer,-LocalSize))));
     concat(new(paicpu,op_reg_ref(A_LDA,Stack_Pointer,new_reference(Stack_pointer,-LocalSize))));
@@ -200,49 +200,10 @@ end;
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.1  2002-08-18 09:06:54  florian
-    * alpha files moved compiler/alpha
-
-  Revision 1.1  2000/07/13 06:30:10  michael
-  + Initial import
-
-  Revision 1.9  2000/01/07 01:14:56  peter
-    * updated copyright to 2000
-
-  Revision 1.8  1999/09/15 20:35:47  florian
-    * small fix to operator overloading when in MMX mode
-    + the compiler uses now fldz and fld1 if possible
-    + some fixes to floating point registers
-    + some math. functions (arctan, ln, sin, cos, sqrt, sqr, pi) are now inlined
-    * .... ???
-
-  Revision 1.7  1999/08/25 12:00:17  jonas
-    * changed pai386, paippc and paiapha (same for tai*) to paicpu (taicpu)
-
-  Revision 1.6  1999/08/06 18:05:57  florian
-    * implemented some stuff for assignments
+  Revision 1.2  2002-09-07 15:25:10  peter
+    * old logs removed and tabs fixed
 
 
-  Revision 1.5  1999/08/06 14:15:53  florian
-    * made the alpha version compilable
-
-  Revision 1.4  1999/08/06 13:53:54  michael
-  Empty Virtual methods inserted
-
-  Revision 1.3  1999/08/05 15:50:32  michael
-  * more changes
-
-  Revision 1.2  1999/08/04 00:24:00  florian
-    * renamed i386asm and i386base to cpuasm and cpubase
-
-  Revision 1.1  1999/08/03 22:39:46  florian
-    * initial revision
-
-  Revision 1.2  1999/08/01 23:19:59  florian
-    + make a new makefile using the old compiler makefile
-
-  Revision 1.1  1999/08/01 23:11:24  florian
-    + renamed ot tp cgcpu.pas
+  Revision 1.1  2002/08/18 09:06:54  florian
+    * alpha files moved compiler/alpha
 
 
-  Revision 1.1  1999/08/01 22:08:26  florian
-    * reorganisation of directory structure
 }
 }

+ 6 - 24
compiler/alpha/cpuasm.pas

@@ -275,7 +275,7 @@ implementation
     end;
     end;
 
 
     Constructor taient.Init (ProcName : String);
     Constructor taient.Init (ProcName : String);
-    
+
     begin
     begin
       Inherited init;
       Inherited init;
       typ:=ait_ent;
       typ:=ait_ent;
@@ -285,28 +285,10 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.1  2002-08-18 09:06:54  florian
-    * alpha files moved compiler/alpha
-
-  Revision 1.1  2000/07/13 06:30:10  michael
-  + Initial import
-
-  Revision 1.6  2000/01/07 01:14:56  peter
-    * updated copyright to 2000
-
-  Revision 1.5  1999/08/25 12:00:18  jonas
-    * changed pai386, paippc and paiapha (same for tai*) to paicpu (taicpu)
+  Revision 1.2  2002-09-07 15:25:10  peter
+    * old logs removed and tabs fixed
 
 
-  Revision 1.4  1999/08/06 16:04:07  michael
-  + introduced tainstruction
-
-  Revision 1.3  1999/08/06 14:15:54  florian
-    * made the alpha version compilable
-
-  Revision 1.2  1999/08/05 15:50:33  michael
-  * more changes
-
-  Revision 1.1  1999/08/03 00:24:01  michael
-  + Initial implementation
+  Revision 1.1  2002/08/18 09:06:54  florian
+    * alpha files moved compiler/alpha
 
 
-}
+}

+ 5 - 63
compiler/alpha/cpubase.pas

@@ -303,68 +303,10 @@ end;
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.1  2002-08-18 09:06:54  florian
-    * alpha files moved compiler/alpha
-
-  Revision 1.1  2000/07/13 06:30:10  michael
-  + Initial import
-
-  Revision 1.17  2000/03/01 15:36:13  florian
-    * some new stuff for the new cg
-
-  Revision 1.16  2000/01/07 01:14:56  peter
-    * updated copyright to 2000
-
-  Revision 1.15  1999/11/09 22:57:09  peter
-    * compiles again both i386,alpha both with optimizer
-
-  Revision 1.14  1999/08/23 23:27:55  pierre
-   + dummy InitCpu/DoneCpu
-
-  Revision 1.13  1999/08/06 16:41:10  jonas
-    * PowerPC compiles again, several routines implemented in cgcpu.pas
-    * added constant to cpubase of alpha and powerpc for maximum
-      number of operands
-
-  Revision 1.12  1999/08/06 16:04:08  michael
-  + introduced tainstruction
-
-  Revision 1.11  1999/08/06 15:53:52  florian
-    * made the alpha version compilable
-
-  Revision 1.10  1999/08/06 14:15:55  florian
-    * made the alpha version compilable
-
-  Revision 1.9  1999/08/06 13:26:53  florian
-    * more changes ...
+  Revision 1.2  2002-09-07 15:25:10  peter
+    * old logs removed and tabs fixed
 
 
-  Revision 1.8  1999/08/05 17:10:58  florian
-    * some more additions, especially procedure
-      exit code generation
-
-  Revision 1.7  1999/08/05 15:50:34  michael
-  * more changes
-
-  Revision 1.6  1999/08/05 14:58:17  florian
-    * some fixes for the floating point registers
-    * more things for the new code generator
-
-  Revision 1.5  1999/08/03 17:09:48  florian
-    * the alpha compiler can be compiled now
-
-  Revision 1.4  1999/08/03 15:52:40  michael
-  * Additional changes
-
-  Revision 1.3  1999/08/03 00:35:54  michael
-  + Added varregs
-
-  Revision 1.2  1999/08/02 17:16:44  michael
-  + Changes for alpha
-
-  Revision 1.1  1999/08/01 23:18:36  michael
-  + Fixes for new code generator
-
-  Revision 1.2  1998/09/09 20:14:00  peter
-    - dup files already used elsewhere
+  Revision 1.1  2002/08/18 09:06:54  florian
+    * alpha files moved compiler/alpha
 
 
-}
+}

+ 2 - 2
compiler/alpha/cpuinfo.pas

@@ -29,7 +29,7 @@ Type
 Const
 Const
    { Size of native extended type }
    { Size of native extended type }
    extended_size = 16;
    extended_size = 16;
-   
+
 Implementation
 Implementation
 
 
-end.
+end.

+ 6 - 18
compiler/alpha/tgcpu.pas

@@ -28,7 +28,7 @@ unit tgcpu;
        tgobj;
        tgobj;
 
 
     type
     type
-    
+
        ttgalpha = Object(ttgobj)
        ttgalpha = Object(ttgobj)
        end;
        end;
 
 
@@ -42,22 +42,10 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.1  2002-08-18 09:06:54  florian
-    * alpha files moved compiler/alpha
-
-  Revision 1.1  2000/07/13 06:30:10  michael
-  + Initial import
-
-  Revision 1.4  2000/01/07 01:14:56  peter
-    * updated copyright to 2000
+  Revision 1.2  2002-09-07 15:25:10  peter
+    * old logs removed and tabs fixed
 
 
-  Revision 1.3  1999/08/03 00:28:24  florian
-    - removed the stuff of the last commit :)
-
-  Revision 1.2  1999/08/03 00:25:28  florian
-    * added reg var stuff
-
-  Revision 1.1  1999/08/03 00:24:01  michael
-  + Initial implementation
+  Revision 1.1  2002/08/18 09:06:54  florian
+    * alpha files moved compiler/alpha
 
 
-}
+}

+ 9 - 6
compiler/browlog.pas

@@ -415,15 +415,15 @@ implementation
 
 
     begin
     begin
         if assigned(p.defref) then
         if assigned(p.defref) then
-	    begin
-        	browserlog.AddLog('***'+p.mangledname);
+            begin
+                browserlog.AddLog('***'+p.mangledname);
                 browserlog.AddLogRefs(p.defref);
                 browserlog.AddLogRefs(p.defref);
                 if (current_module.flags and uf_local_browser)<>0 then
                 if (current_module.flags and uf_local_browser)<>0 then
                     begin
                     begin
                         if assigned(p.parast) then
                         if assigned(p.parast) then
-                    	    writesymtable(p.parast);
+                            writesymtable(p.parast);
                         if assigned(p.localst) then
                         if assigned(p.localst) then
-                    	    writesymtable(p.localst);
+                            writesymtable(p.localst);
                     end;
                     end;
              end;
              end;
     end;
     end;
@@ -464,7 +464,7 @@ implementation
                       writesymtable(tobjectdef(ttypesym(hp).restype.def).symtable);
                       writesymtable(tobjectdef(ttypesym(hp).restype.def).symtable);
                   end;
                   end;
                 procsym :
                 procsym :
-		    Tprocsym(hp).foreach_procdef_static({$IFDEF FPCPROCVAR}@{$ENDIF}writelocalsymtables,nil);
+                    Tprocsym(hp).foreach_procdef_static({$IFDEF FPCPROCVAR}@{$ENDIF}writelocalsymtables,nil);
               end;
               end;
               hp:=tstoredsym(hp.indexnext);
               hp:=tstoredsym(hp.indexnext);
             end;
             end;
@@ -515,7 +515,10 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.15  2002-08-20 10:31:26  daniel
+  Revision 1.16  2002-09-07 15:25:00  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.15  2002/08/20 10:31:26  daniel
    * Tcallnode.det_resulttype rewritten
    * Tcallnode.det_resulttype rewritten
 
 
   Revision 1.14  2002/07/23 09:51:22  daniel
   Revision 1.14  2002/07/23 09:51:22  daniel

+ 16 - 45
compiler/cg64f32.pas

@@ -76,7 +76,7 @@ unit cg64f32;
            removing superfluous opcodes. Returns TRUE if normal processing
            removing superfluous opcodes. Returns TRUE if normal processing
            must continue in op64_const_reg, otherwise, everything is processed
            must continue in op64_const_reg, otherwise, everything is processed
            entirely in this routine, by emitting the appropriate 32-bit opcodes.
            entirely in this routine, by emitting the appropriate 32-bit opcodes.
-        }   
+        }
         function optimize64_op_const_reg(list: taasmoutput; var op: topcg; var a : qword; var reg: tregister64): boolean;override;
         function optimize64_op_const_reg(list: taasmoutput; var op: topcg; var a : qword; var reg: tregister64): boolean;override;
 
 
         procedure g_rangecheck64(list: taasmoutput; const p: tnode;
         procedure g_rangecheck64(list: taasmoutput; const p: tnode;
@@ -639,7 +639,7 @@ unit cg64f32;
         case op of
         case op of
         OP_ADD:
         OP_ADD:
            begin
            begin
-             if a = 0 then 
+             if a = 0 then
                 exit;
                 exit;
            end;
            end;
         OP_AND:
         OP_AND:
@@ -648,7 +648,7 @@ unit cg64f32;
                 cg.a_op_const_reg(list,op,lowvalue,reg.reglo);
                 cg.a_op_const_reg(list,op,lowvalue,reg.reglo);
               if highvalue <> high(cardinal) then
               if highvalue <> high(cardinal) then
                 cg.a_op_const_reg(list,op,highvalue,reg.reghi);
                 cg.a_op_const_reg(list,op,highvalue,reg.reghi);
-              { already emitted correctly }  
+              { already emitted correctly }
               exit;
               exit;
            end;
            end;
         OP_OR:
         OP_OR:
@@ -657,12 +657,12 @@ unit cg64f32;
                 cg.a_op_const_reg(list,op,lowvalue,reg.reglo);
                 cg.a_op_const_reg(list,op,lowvalue,reg.reglo);
               if highvalue <> 0 then
               if highvalue <> 0 then
                 cg.a_op_const_reg(list,op,highvalue,reg.reghi);
                 cg.a_op_const_reg(list,op,highvalue,reg.reghi);
-              { already emitted correctly }  
+              { already emitted correctly }
               exit;
               exit;
            end;
            end;
         OP_SUB:
         OP_SUB:
            begin
            begin
-             if a = 0 then 
+             if a = 0 then
                 exit;
                 exit;
            end;
            end;
         OP_XOR:
         OP_XOR:
@@ -670,9 +670,9 @@ unit cg64f32;
            end;
            end;
         OP_SHL:
         OP_SHL:
            begin
            begin
-             if a = 0 then 
+             if a = 0 then
                  exit;
                  exit;
-             { simply clear low-register 
+             { simply clear low-register
                and shift the rest and swap
                and shift the rest and swap
                registers.
                registers.
              }
              }
@@ -683,14 +683,14 @@ unit cg64f32;
                  { swap the registers }
                  { swap the registers }
                  hreg := reg.reghi;
                  hreg := reg.reghi;
                  reg.reghi := reg.reglo;
                  reg.reghi := reg.reglo;
-                 reg.reglo := hreg; 
+                 reg.reglo := hreg;
                  exit;
                  exit;
                end;
                end;
            end;
            end;
-        OP_SHR:   
+        OP_SHR:
            begin
            begin
              if a = 0 then exit;
              if a = 0 then exit;
-             { simply clear high-register 
+             { simply clear high-register
                and shift the rest and swap
                and shift the rest and swap
                registers.
                registers.
              }
              }
@@ -701,7 +701,7 @@ unit cg64f32;
                  { swap the registers }
                  { swap the registers }
                  hreg := reg.reghi;
                  hreg := reg.reghi;
                  reg.reghi := reg.reglo;
                  reg.reghi := reg.reglo;
-                 reg.reglo := hreg; 
+                 reg.reglo := hreg;
                  exit;
                  exit;
                end;
                end;
            end;
            end;
@@ -715,7 +715,7 @@ unit cg64f32;
             end;
             end;
         else
         else
            internalerror(20020817);
            internalerror(20020817);
-        end;   
+        end;
         optimize64_op_const_reg := false;
         optimize64_op_const_reg := false;
       end;
       end;
 
 
@@ -732,7 +732,10 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.27  2002-08-19 18:17:47  carl
+  Revision 1.28  2002-09-07 15:25:00  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.27  2002/08/19 18:17:47  carl
     + optimize64_op_const_reg implemented (optimizes 64-bit constant opcodes)
     + optimize64_op_const_reg implemented (optimizes 64-bit constant opcodes)
     * more fixes to m68k for 64-bit operations
     * more fixes to m68k for 64-bit operations
 
 
@@ -829,36 +832,4 @@ end.
   Revision 1.7  2002/04/07 13:21:18  carl
   Revision 1.7  2002/04/07 13:21:18  carl
   + more documentation
   + more documentation
 
 
-  Revision 1.6  2002/04/03 10:41:35  jonas
-    + a_load64_const_loc method
-
-  Revision 1.5  2002/04/02 17:11:27  peter
-    * tlocation,treference update
-    * LOC_CONSTANT added for better constant handling
-    * secondadd splitted in multiple routines
-    * location_force_reg added for loading a location to a register
-      of a specified size
-    * secondassignment parses now first the right and then the left node
-      (this is compatible with Kylix). This saves a lot of push/pop especially
-      with string operations
-    * adapted some routines to use the new cg methods
-
-  Revision 1.4  2002/03/04 19:10:11  peter
-    * removed compiler warnings
-
-  Revision 1.3  2002/01/24 12:33:52  jonas
-    * adapted ranges of native types to int64 (e.g. high cardinal is no
-      longer longint($ffffffff), but just $fffffff in psystem)
-    * small additional fix in 64bit rangecheck code generation for 32 bit
-      processors
-    * adaption of ranges required the matching talgorithm used for selecting
-      which overloaded procedure to call to be adapted. It should now always
-      select the closest match for ordinal parameters.
-    + inttostr(qword) in sysstr.inc/sysstrh.inc
-    + abs(int64), sqr(int64), sqr(qword) in systemh.inc/generic.inc (previous
-      fixes were required to be able to add them)
-    * is_in_limit() moved from ncal to types unit, should always be used
-      instead of direct comparisons of low/high values of orddefs because
-      qword is a special case
-
 }
 }

+ 7 - 4
compiler/cg64f64.pas

@@ -173,12 +173,12 @@ unit cg64f64;
       const todef: tdef);
       const todef: tdef);
       begin
       begin
       end;
       end;
-      
+
     function tcg64f64.optimize64_op_const_reg(list: taasmoutput; var op: topcg; var a : qword; var reg: tregister64): boolean;
     function tcg64f64.optimize64_op_const_reg(list: taasmoutput; var op: topcg; var a : qword; var reg: tregister64): boolean;
      begin
      begin
-       { this should be the same routine as optimize_const_reg!!!!!!!! } 
+       { this should be the same routine as optimize_const_reg!!!!!!!! }
      end;
      end;
-      
+
 
 
     procedure tcg.a_reg_alloc(list : taasmoutput;r : tregister64);
     procedure tcg.a_reg_alloc(list : taasmoutput;r : tregister64);
 
 
@@ -196,7 +196,10 @@ unit cg64f64;
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.4  2002-08-19 18:17:48  carl
+  Revision 1.5  2002-09-07 15:25:00  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.4  2002/08/19 18:17:48  carl
     + optimize64_op_const_reg implemented (optimizes 64-bit constant opcodes)
     + optimize64_op_const_reg implemented (optimizes 64-bit constant opcodes)
     * more fixes to m68k for 64-bit operations
     * more fixes to m68k for 64-bit operations
 
 

+ 4 - 4
compiler/cgbase.pas

@@ -655,7 +655,10 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.27  2002-09-05 19:29:42  peter
+  Revision 1.28  2002-09-07 15:25:01  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.27  2002/09/05 19:29:42  peter
     * memdebug enhancements
     * memdebug enhancements
 
 
   Revision 1.26  2002/08/18 20:06:23  peter
   Revision 1.26  2002/08/18 20:06:23  peter
@@ -764,7 +767,4 @@ end.
     - list field removed of the tnode class because it's not used currently
     - list field removed of the tnode class because it's not used currently
       and can cause hard-to-find bugs
       and can cause hard-to-find bugs
 
 
-  Revision 1.6  2002/03/04 19:10:11  peter
-    * removed compiler warnings
-
 }
 }

+ 6 - 3
compiler/cginfo.pas

@@ -30,8 +30,8 @@ interface
   uses cpuinfo,symconst;
   uses cpuinfo,symconst;
 
 
     type
     type
-       {# Generic opcodes, which must be supported by all processors 
-       }   
+       {# Generic opcodes, which must be supported by all processors
+       }
        topcg =
        topcg =
        (
        (
           OP_NONE,
           OP_NONE,
@@ -107,7 +107,10 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.15  2002-08-05 18:27:48  carl
+  Revision 1.16  2002-09-07 15:25:01  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.15  2002/08/05 18:27:48  carl
     + more more more documentation
     + more more more documentation
     + first version include/exclude (can't test though, not enough scratch for i386 :()...
     + first version include/exclude (can't test though, not enough scratch for i386 :()...
 
 

+ 4 - 151
compiler/cgobj.pas

@@ -1585,7 +1585,10 @@ finalization
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.56  2002-09-01 21:04:47  florian
+  Revision 1.57  2002-09-07 15:25:01  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.56  2002/09/01 21:04:47  florian
     * several powerpc related stuff fixed
     * several powerpc related stuff fixed
 
 
   Revision 1.55  2002/09/01 17:05:43  florian
   Revision 1.55  2002/09/01 17:05:43  florian
@@ -1666,154 +1669,4 @@ end.
       unit so this would conflicts if D6 programms are compiled
       unit so this would conflicts if D6 programms are compiled
     + Willamette/SSE2 instructions to assembler added
     + Willamette/SSE2 instructions to assembler added
 
 
-  Revision 1.36  2002/07/11 14:41:27  florian
-    * start of the new generic parameter handling
-
-  Revision 1.35  2002/07/07 10:16:29  florian
-    * problems with last commit fixed
-
-  Revision 1.33  2002/07/07 09:52:32  florian
-    * powerpc target fixed, very simple units can be compiled
-    * some basic stuff for better callparanode handling, far from being finished
-
-  Revision 1.32  2002/07/06 20:09:10  carl
-  * updated generic constructor / destructor calling
-
-  Revision 1.31  2002/07/02 11:40:00  jonas
-    * fixed cg64 memory leak
-
-  Revision 1.30  2002/07/01 18:46:22  peter
-    * internal linker
-    * reorganized aasm layer
-
-  Revision 1.29  2002/07/01 16:23:52  peter
-    * cg64 patch
-    * basics for currency
-    * asnode updates for class and interface (not finished)
-
-  Revision 1.28  2002/06/06 18:53:17  jonas
-    * fixed internalerror(10) with -Or for i386 (a_load_ref_ref now saves
-      a general purpose register if it needs one but none are available)
-
-  Revision 1.27  2002/05/22 19:02:16  carl
-  + generic FPC_HELP_FAIL
-  + generic FPC_HELP_DESTRUCTOR instated (original from Pierre)
-  + generic FPC_DISPOSE_CLASS
-  + TEST_GENERIC define
-
-  Revision 1.26  2002/05/20 13:30:40  carl
-  * bugfix of hdisponen (base must be set, not index)
-  * more portability fixes
-
-  Revision 1.25  2002/05/18 13:34:05  peter
-    * readded missing revisions
-
-  Revision 1.24  2002/05/16 19:46:35  carl
-  + defines.inc -> fpcdefs.inc to avoid conflicts if compiling by hand
-  + try to fix temp allocation (still in ifdef)
-  + generic constructor calls
-  + start of tassembler / tmodulebase class cleanup
-
-  Revision 1.23  2002/05/14 19:34:40  peter
-    * removed old logs and updated copyright year
-
-  Revision 1.22  2002/05/13 19:54:36  peter
-    * removed n386ld and n386util units
-    * maybe_save/maybe_restore added instead of the old maybe_push
-
-  Revision 1.21  2002/05/12 19:57:16  carl
-  * maybe_loadself portable
-
-  Revision 1.20  2002/05/12 16:53:04  peter
-    * moved entry and exitcode to ncgutil and cgobj
-    * foreach gets extra argument for passing local data to the
-      iterator function
-    * -CR checks also class typecasts at runtime by changing them
-      into as
-    * fixed compiler to cycle with the -CR option
-    * fixed stabs with elf writer, finally the global variables can
-      be watched
-    * removed a lot of routines from cga unit and replaced them by
-      calls to cgobj
-    * u32bit-s32bit updates for and,or,xor nodes. When one element is
-      u32bit then the other is typecasted also to u32bit without giving
-      a rangecheck warning/error.
-    * fixed pascal calling method with reversing also the high tree in
-      the parast, detected by tcalcst3 test
-
-  Revision 1.19  2002/04/26 15:19:04  peter
-    * use saveregisters for incr routines, saves also problems with
-      the optimizer
-
-  Revision 1.18  2002/04/25 20:16:38  peter
-    * moved more routines from cga/n386util
-
-  Revision 1.17  2002/04/22 16:30:05  peter
-    * fixed @methodpointer
-
-  Revision 1.16  2002/04/21 15:25:30  carl
-  + a_jmp_cond -> a_jmp_always (a_jmp_cond is NOT portable)
-  + changeregsize -> rg.makeregsize
-
-  Revision 1.15  2002/04/20 21:32:23  carl
-  + generic FPC_CHECKPOINTER
-  + first parameter offset in stack now portable
-  * rename some constants
-  + move some cpu stuff to other units
-  - remove unused constents
-  * fix stacksize for some targets
-  * fix generic size problems which depend now on EXTEND_SIZE constant
-
-  Revision 1.14  2002/04/15 19:44:18  peter
-    * fixed stackcheck that would be called recursively when a stack
-      error was found
-    * generic changeregsize(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 :-)
-
-  Revision 1.13  2002/04/07 13:22:11  carl
-  + more documentation
-
-  Revision 1.12  2002/04/07 09:12:46  carl
-  + documentation
-
-  Revision 1.11  2002/04/06 18:10:42  jonas
-    * several powerpc-related additions and fixes
-
-  Revision 1.10  2002/04/04 19:05:54  peter
-    * removed unused units
-    * use tlocation.size in cg.a_*loc*() routines
-
-  Revision 1.9  2002/04/02 17:11:27  peter
-    * tlocation,treference update
-    * LOC_CONSTANT added for better constant handling
-    * secondadd splitted in multiple routines
-    * location_force_reg added for loading a location to a register
-      of a specified size
-    * secondassignment parses now first the right and then the left node
-      (this is compatible with Kylix). This saves a lot of push/pop especially
-      with string operations
-    * adapted some routines to use the new cg methods
-
-  Revision 1.8  2002/03/31 20:26:33  jonas
-    + a_loadfpu_* and a_loadmm_* methods in tcg
-    * register allocation is now handled by a class and is mostly processor
-      independent (+rgobj.pas and i386/rgcpu.pas)
-    * temp allocation is now handled by a class (+tgobj.pas, -i386\tgcpu.pas)
-    * some small improvements and fixes to the optimizer
-    * some register allocation fixes
-    * some fpuvaroffset fixes in the unary minus node
-    * push/popusedregisters is now called rg.save/restoreusedregisters and
-      (for i386) uses temps instead of push/pop's when using -Op3 (that code is
-      also better optimizable)
-    * fixed and optimized register saving/restoring for new/dispose nodes
-    * LOC_FPU locations now also require their "register" field to be set to
-      R_ST, not R_ST0 (the latter is used for LOC_CFPUREGISTER locations only)
-    - list field removed of the tnode class because it's not used currently
-      and can cause hard-to-find bugs
-
-  Revision 1.7  2002/03/04 19:10:11  peter
-    * removed compiler warnings
-
 }
 }

+ 4 - 9
compiler/charset.pas

@@ -252,15 +252,10 @@ finalization
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.1  2002-07-20 17:11:48  florian
-    + source code page support
+  Revision 1.2  2002-09-07 15:25:02  peter
+    * old logs removed and tabs fixed
 
 
-  Revision 1.2  2000/10/21 18:20:17  florian
-    * a lot of small changes:
-       - setlength is internal
-       - win32 graph unit extended
-       ....
+  Revision 1.1  2002/07/20 17:11:48  florian
+    + source code page support
 
 
-  Revision 1.1  2000/08/17 07:29:39  florian
-    + initial revision
 }
 }

+ 4 - 8
compiler/defbase.pas

@@ -1908,7 +1908,10 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.8  2002-09-07 09:16:55  carl
+  Revision 1.9  2002-09-07 15:25:02  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.8  2002/09/07 09:16:55  carl
     * fix my stupid copy and paste bug
     * fix my stupid copy and paste bug
 
 
   Revision 1.7  2002/09/06 19:58:31  carl
   Revision 1.7  2002/09/06 19:58:31  carl
@@ -2018,11 +2021,4 @@ end.
       instead of direct comparisons of low/high values of orddefs because
       instead of direct comparisons of low/high values of orddefs because
       qword is a special case
       qword is a special case
 
 
-  Revision 1.62  2002/01/06 21:50:44  peter
-    * proc_to_procvar_equal fixed for procvar-procvar
-
-  Revision 1.61  2002/01/06 12:08:16  peter
-    * removed uauto from orddef, use new range_to_basetype generating
-      the correct ordinal type for a range
-
 }
 }

+ 5 - 2
compiler/fpcdefs.inc

@@ -29,7 +29,7 @@
 
 
 {$ifdef i386}
 {$ifdef i386}
   {$define x86}
   {$define x86}
-{$else}  
+{$else}
   {$define oldset}
   {$define oldset}
 {$endif i386}
 {$endif i386}
 {$ifdef x86_64}
 {$ifdef x86_64}
@@ -37,7 +37,10 @@
 {$endif x86_64}
 {$endif x86_64}
 {
 {
   $Log$
   $Log$
-  Revision 1.8  2002-08-30 13:42:29  mazen
+  Revision 1.9  2002-09-07 15:25:02  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.8  2002/08/30 13:42:29  mazen
   - undefining win32 when SPARC defined removed, no more needed.
   - undefining win32 when SPARC defined removed, no more needed.
 
 
 
 

+ 4 - 21
compiler/i386/cgcpu.pas

@@ -170,7 +170,10 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.29  2002-07-20 19:28:47  florian
+  Revision 1.30  2002-09-07 15:25:10  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.29  2002/07/20 19:28:47  florian
     * splitting of i386\cgcpu.pas into x86\cgx86.pas and i386\cgcpu.pas
     * splitting of i386\cgcpu.pas into x86\cgx86.pas and i386\cgcpu.pas
       cgx86.pas will contain the common code for i386 and x86_64
       cgx86.pas will contain the common code for i386 and x86_64
 
 
@@ -275,24 +278,4 @@ end.
       with string operations
       with string operations
     * adapted some routines to use the new cg methods
     * adapted some routines to use the new cg methods
 
 
-  Revision 1.8  2002/03/31 20:26:37  jonas
-    + a_loadfpu_* and a_loadmm_* methods in tcg
-    * register allocation is now handled by a class and is mostly processor
-      independent (+rgobj.pas and i386/rgcpu.pas)
-    * temp allocation is now handled by a class (+tgobj.pas, -i386\tgcpu.pas)
-    * some small improvements and fixes to the optimizer
-    * some register allocation fixes
-    * some fpuvaroffset fixes in the unary minus node
-    * push/popusedregisters is now called rg.save/restoreusedregisters and
-      (for i386) uses temps instead of push/pop's when using -Op3 (that code is
-      also better optimizable)
-    * fixed and optimized register saving/restoring for new/dispose nodes
-    * LOC_FPU locations now also require their "register" field to be set to
-      R_ST, not R_ST0 (the latter is used for LOC_CFPUREGISTER locations only)
-    - list field removed of the tnode class because it's not used currently
-      and can cause hard-to-find bugs
-
-  Revision 1.7  2002/03/04 19:10:12  peter
-    * removed compiler warnings
-
 }
 }

+ 13 - 10
compiler/i386/cpuinfo.pas

@@ -37,23 +37,23 @@ Type
    { $fffffffffffffff on a 32bit machine if the compiler uses     }
    { $fffffffffffffff on a 32bit machine if the compiler uses     }
    { int64 constants internally (JM)                              }
    { int64 constants internally (JM)                              }
    TConstPtrUInt = cardinal;
    TConstPtrUInt = cardinal;
-   
+
    bestreal = extended;
    bestreal = extended;
    ts32real = single;
    ts32real = single;
    ts64real = double;
    ts64real = double;
    ts80real = extended;
    ts80real = extended;
    ts64comp = extended;
    ts64comp = extended;
-   
+
    pbestreal=^bestreal;
    pbestreal=^bestreal;
-   
+
    { possible supported processors for this target }
    { possible supported processors for this target }
-   tprocessors = 
+   tprocessors =
       (no_processor,
       (no_processor,
        Class386,
        Class386,
        ClassP5,
        ClassP5,
        ClassP6
        ClassP6
-      ); 
-   
+      );
+
 
 
 Const
 Const
    {# Size of native extended floating point type }
    {# Size of native extended floating point type }
@@ -65,19 +65,22 @@ Const
 
 
    { target cpu string (used by compiler options) }
    { target cpu string (used by compiler options) }
    target_cpu_string = 'i386';
    target_cpu_string = 'i386';
-   { size of the buffer used for setjump/longjmp  
+   { size of the buffer used for setjump/longjmp
      the size of this buffer is deduced from the
      the size of this buffer is deduced from the
-     jmp_buf structure in setjumph.inc file 
+     jmp_buf structure in setjumph.inc file
    }
    }
    jmp_buf_size = 24;
    jmp_buf_size = 24;
-   
+
 
 
 Implementation
 Implementation
 
 
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.13  2002-08-15 15:15:55  carl
+  Revision 1.14  2002-09-07 15:25:10  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.13  2002/08/15 15:15:55  carl
     * jmpbuf size allocation for exceptions is now cpu specific (as it should)
     * jmpbuf size allocation for exceptions is now cpu specific (as it should)
     * more generic nodes for maths
     * more generic nodes for maths
     * several fixes for better m68k support
     * several fixes for better m68k support

+ 1 - 1
compiler/i386/i386ins.dat

@@ -3316,4 +3316,4 @@ xmmreg,mem              \301\3\x66\x0F\x14\110          WILLAMETTE,SSE2,SM
 [XORPD]
 [XORPD]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 xmmreg,xmmreg           \3\x66\x0F\x57\110              WILLAMETTE,SSE2
 xmmreg,xmmreg           \3\x66\x0F\x57\110              WILLAMETTE,SSE2
-xmmreg,mem              \301\3\x66\x0F\x57\110          WILLAMETTE,SSE2,SM
+xmmreg,mem              \301\3\x66\x0F\x57\110          WILLAMETTE,SSE2,SM

+ 4 - 57
compiler/i386/n386cal.pas

@@ -1307,7 +1307,10 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.69  2002-09-01 18:43:27  peter
+  Revision 1.70  2002-09-07 15:25:10  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.69  2002/09/01 18:43:27  peter
     * include accumulator in regs_to_push list
     * include accumulator in regs_to_push list
 
 
   Revision 1.68  2002/09/01 12:13:00  peter
   Revision 1.68  2002/09/01 12:13:00  peter
@@ -1414,60 +1417,4 @@ end.
     * fixed pascal calling method with reversing also the high tree in
     * fixed pascal calling method with reversing also the high tree in
       the parast, detected by tcalcst3 test
       the parast, detected by tcalcst3 test
 
 
-  Revision 1.48  2002/04/25 20:16:40  peter
-    * moved more routines from cga/n386util
-
-  Revision 1.47  2002/04/21 19:02:07  peter
-    * removed newn and disposen nodes, the code is now directly
-      inlined from pexpr
-    * -an option that will write the secondpass nodes to the .s file, this
-      requires EXTDEBUG define to actually write the info
-    * fixed various internal errors and crashes due recent code changes
-
-  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
-    * removed some more routines from cga unit
-    * fixed returnvalue handling
-    * fixed default stacksize of linux and go32v2, 8kb was a bit small :-)
-
-  Revision 1.44  2002/04/04 19:06:10  peter
-    * removed unused units
-    * use tlocation.size in cg.a_*loc*() routines
-
-  Revision 1.43  2002/04/02 17:11:35  peter
-    * tlocation,treference update
-    * LOC_CONSTANT added for better constant handling
-    * secondadd splitted in multiple routines
-    * location_force_reg added for loading a location to a register
-      of a specified size
-    * secondassignment parses now first the right and then the left node
-      (this is compatible with Kylix). This saves a lot of push/pop especially
-      with string operations
-    * adapted some routines to use the new cg methods
-
-  Revision 1.42  2002/03/31 20:26:38  jonas
-    + a_loadfpu_* and a_loadmm_* methods in tcg
-    * register allocation is now handled by a class and is mostly processor
-      independent (+rgobj.pas and i386/rgcpu.pas)
-    * temp allocation is now handled by a class (+tgobj.pas, -i386\tgcpu.pas)
-    * some small improvements and fixes to the optimizer
-    * some register allocation fixes
-    * some fpuvaroffset fixes in the unary minus node
-    * push/popusedregisters is now called rg.save/restoreusedregisters and
-      (for i386) uses temps instead of push/pop's when using -Op3 (that code is
-      also better optimizable)
-    * fixed and optimized register saving/restoring for new/dispose nodes
-    * LOC_FPU locations now also require their "register" field to be set to
-      R_ST, not R_ST0 (the latter is used for LOC_CFPUREGISTER locations only)
-    - list field removed of the tnode class because it's not used currently
-      and can cause hard-to-find bugs
-
-  Revision 1.41  2002/03/04 19:10:13  peter
-    * removed compiler warnings
-
 }
 }

+ 27 - 24
compiler/i386/n386inl.pas

@@ -31,7 +31,7 @@ interface
 
 
     type
     type
        ti386inlinenode = class(tcginlinenode)
        ti386inlinenode = class(tcginlinenode)
-          { first pass override 
+          { first pass override
             so that the code generator will actually generate
             so that the code generator will actually generate
             these nodes.
             these nodes.
           }
           }
@@ -80,8 +80,8 @@ implementation
         registersfpu:=1;
         registersfpu:=1;
         first_pi := nil;
         first_pi := nil;
       end;
       end;
-      
-      
+
+
      function ti386inlinenode.first_arctan_real : tnode;
      function ti386inlinenode.first_arctan_real : tnode;
       begin
       begin
         location.loc:=LOC_FPUREGISTER;
         location.loc:=LOC_FPUREGISTER;
@@ -92,7 +92,7 @@ implementation
 {$endif SUPPORT_MMX}
 {$endif SUPPORT_MMX}
         first_arctan_real := nil;
         first_arctan_real := nil;
       end;
       end;
-      
+
      function ti386inlinenode.first_abs_real : tnode;
      function ti386inlinenode.first_abs_real : tnode;
       begin
       begin
         location.loc:=LOC_FPUREGISTER;
         location.loc:=LOC_FPUREGISTER;
@@ -103,7 +103,7 @@ implementation
 {$endif SUPPORT_MMX}
 {$endif SUPPORT_MMX}
         first_abs_real := nil;
         first_abs_real := nil;
       end;
       end;
-      
+
      function ti386inlinenode.first_sqr_real : tnode;
      function ti386inlinenode.first_sqr_real : tnode;
       begin
       begin
         location.loc:=LOC_FPUREGISTER;
         location.loc:=LOC_FPUREGISTER;
@@ -114,7 +114,7 @@ implementation
 {$endif SUPPORT_MMX}
 {$endif SUPPORT_MMX}
         first_sqr_real := nil;
         first_sqr_real := nil;
       end;
       end;
-      
+
      function ti386inlinenode.first_sqrt_real : tnode;
      function ti386inlinenode.first_sqrt_real : tnode;
       begin
       begin
         location.loc:=LOC_FPUREGISTER;
         location.loc:=LOC_FPUREGISTER;
@@ -125,7 +125,7 @@ implementation
 {$endif SUPPORT_MMX}
 {$endif SUPPORT_MMX}
         first_sqrt_real := nil;
         first_sqrt_real := nil;
       end;
       end;
-      
+
      function ti386inlinenode.first_ln_real : tnode;
      function ti386inlinenode.first_ln_real : tnode;
       begin
       begin
         location.loc:=LOC_FPUREGISTER;
         location.loc:=LOC_FPUREGISTER;
@@ -136,7 +136,7 @@ implementation
 {$endif SUPPORT_MMX}
 {$endif SUPPORT_MMX}
         first_ln_real := nil;
         first_ln_real := nil;
       end;
       end;
-      
+
      function ti386inlinenode.first_cos_real : tnode;
      function ti386inlinenode.first_cos_real : tnode;
       begin
       begin
         location.loc:=LOC_FPUREGISTER;
         location.loc:=LOC_FPUREGISTER;
@@ -147,7 +147,7 @@ implementation
 {$endif SUPPORT_MMX}
 {$endif SUPPORT_MMX}
         first_cos_real := nil;
         first_cos_real := nil;
       end;
       end;
-      
+
      function ti386inlinenode.first_sin_real : tnode;
      function ti386inlinenode.first_sin_real : tnode;
       begin
       begin
         location.loc:=LOC_FPUREGISTER;
         location.loc:=LOC_FPUREGISTER;
@@ -159,16 +159,16 @@ implementation
         first_sin_real := nil;
         first_sin_real := nil;
       end;
       end;
 
 
- 
+
      procedure ti386inlinenode.second_Pi;
      procedure ti386inlinenode.second_Pi;
        begin
        begin
          location_reset(location,LOC_FPUREGISTER,def_cgsize(resulttype.def));
          location_reset(location,LOC_FPUREGISTER,def_cgsize(resulttype.def));
          emit_none(A_FLDPI,S_NO);
          emit_none(A_FLDPI,S_NO);
          inc(trgcpu(rg).fpuvaroffset);
          inc(trgcpu(rg).fpuvaroffset);
          location.register:=FPU_RESULT_REG;
          location.register:=FPU_RESULT_REG;
-         
+
        end;
        end;
-     
+
        { load the FPU into the an fpu register }
        { load the FPU into the an fpu register }
        procedure ti386inlinenode.load_fpu_location;
        procedure ti386inlinenode.load_fpu_location;
          begin
          begin
@@ -194,32 +194,32 @@ implementation
               internalerror(309991);
               internalerror(309991);
            end;
            end;
          end;
          end;
-       
+
      procedure ti386inlinenode.second_arctan_real;
      procedure ti386inlinenode.second_arctan_real;
        begin
        begin
          load_fpu_location;
          load_fpu_location;
          emit_none(A_FLD1,S_NO);
          emit_none(A_FLD1,S_NO);
          emit_none(A_FPATAN,S_NO);
          emit_none(A_FPATAN,S_NO);
        end;
        end;
-       
+
      procedure ti386inlinenode.second_abs_real;
      procedure ti386inlinenode.second_abs_real;
        begin
        begin
          load_fpu_location;
          load_fpu_location;
          emit_none(A_FABS,S_NO);
          emit_none(A_FABS,S_NO);
        end;
        end;
-       
+
      procedure ti386inlinenode.second_sqr_real;
      procedure ti386inlinenode.second_sqr_real;
        begin
        begin
          load_fpu_location;
          load_fpu_location;
          emit_reg_reg(A_FMUL,S_NO,R_ST0,R_ST0);
          emit_reg_reg(A_FMUL,S_NO,R_ST0,R_ST0);
        end;
        end;
-       
+
      procedure ti386inlinenode.second_sqrt_real;
      procedure ti386inlinenode.second_sqrt_real;
        begin
        begin
          load_fpu_location;
          load_fpu_location;
          emit_none(A_FSQRT,S_NO);
          emit_none(A_FSQRT,S_NO);
        end;
        end;
-       
+
      procedure ti386inlinenode.second_ln_real;
      procedure ti386inlinenode.second_ln_real;
        begin
        begin
          load_fpu_location;
          load_fpu_location;
@@ -227,13 +227,13 @@ implementation
          emit_none(A_FXCH,S_NO);
          emit_none(A_FXCH,S_NO);
          emit_none(A_FYL2X,S_NO);
          emit_none(A_FYL2X,S_NO);
        end;
        end;
-       
+
      procedure ti386inlinenode.second_cos_real;
      procedure ti386inlinenode.second_cos_real;
        begin
        begin
          load_fpu_location;
          load_fpu_location;
          emit_none(A_FCOS,S_NO);
          emit_none(A_FCOS,S_NO);
        end;
        end;
-       
+
      procedure ti386inlinenode.second_sin_real;
      procedure ti386inlinenode.second_sin_real;
        begin
        begin
          load_fpu_location;
          load_fpu_location;
@@ -250,7 +250,7 @@ implementation
          hregister : tregister;
          hregister : tregister;
          asmop : tasmop;
          asmop : tasmop;
          L : cardinal;
          L : cardinal;
-         pushedregs : TMaybesave;         
+         pushedregs : TMaybesave;
          cgop : topcg;
          cgop : topcg;
         begin
         begin
           location_copy(location,left.location);
           location_copy(location,left.location);
@@ -320,15 +320,18 @@ implementation
               if scratch_reg then
               if scratch_reg then
                 cg.free_scratch_reg(exprasmlist,hregister);
                 cg.free_scratch_reg(exprasmlist,hregister);
             end;
             end;
-        end;           
-     
-       
+        end;
+
+
 begin
 begin
    cinlinenode:=ti386inlinenode;
    cinlinenode:=ti386inlinenode;
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.52  2002-08-02 07:44:31  jonas
+  Revision 1.53  2002-09-07 15:25:10  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.52  2002/08/02 07:44:31  jonas
     * made assigned() handling generic
     * made assigned() handling generic
     * add nodes now can also evaluate constant expressions at compile time
     * add nodes now can also evaluate constant expressions at compile time
       that contain nil nodes
       that contain nil nodes

+ 5 - 2
compiler/i386/n386mat.pas

@@ -269,7 +269,7 @@ implementation
 *****************************************************************************}
 *****************************************************************************}
 
 
 
 
-    function ti386shlshrnode.first_shlshr64bitint: tnode; 
+    function ti386shlshrnode.first_shlshr64bitint: tnode;
       begin
       begin
         result := nil;
         result := nil;
       end;
       end;
@@ -838,7 +838,10 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.39  2002-08-15 15:15:55  carl
+  Revision 1.40  2002-09-07 15:25:10  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.39  2002/08/15 15:15:55  carl
     * jmpbuf size allocation for exceptions is now cpu specific (as it should)
     * jmpbuf size allocation for exceptions is now cpu specific (as it should)
     * more generic nodes for maths
     * more generic nodes for maths
     * several fixes for better m68k support
     * several fixes for better m68k support

+ 4 - 24
compiler/i386/n386mem.pas

@@ -156,7 +156,10 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.43  2002-09-01 19:27:35  peter
+  Revision 1.44  2002-09-07 15:25:11  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.43  2002/09/01 19:27:35  peter
     * use index register when available for generating a reference with
     * use index register when available for generating a reference with
       only a signle register. Using the base register could possibly
       only a signle register. Using the base register could possibly
       destroy the framepointer
       destroy the framepointer
@@ -277,27 +280,4 @@ end.
       with string operations
       with string operations
     * adapted some routines to use the new cg methods
     * adapted some routines to use the new cg methods
 
 
-  Revision 1.22  2002/04/01 09:44:04  jonas
-    * better fix for new/dispose bug with init/final data
-
-  Revision 1.21  2002/03/31 20:26:39  jonas
-    + a_loadfpu_* and a_loadmm_* methods in tcg
-    * register allocation is now handled by a class and is mostly processor
-      independent (+rgobj.pas and i386/rgcpu.pas)
-    * temp allocation is now handled by a class (+tgobj.pas, -i386\tgcpu.pas)
-    * some small improvements and fixes to the optimizer
-    * some register allocation fixes
-    * some fpuvaroffset fixes in the unary minus node
-    * push/popusedregisters is now called rg.save/restoreusedregisters and
-      (for i386) uses temps instead of push/pop's when using -Op3 (that code is
-      also better optimizable)
-    * fixed and optimized register saving/restoring for new/dispose nodes
-    * LOC_FPU locations now also require their "register" field to be set to
-      R_ST, not R_ST0 (the latter is used for LOC_CFPUREGISTER locations only)
-    - list field removed of the tnode class because it's not used currently
-      and can cause hard-to-find bugs
-
-  Revision 1.20  2002/03/04 19:10:14  peter
-    * removed compiler warnings
-
 }
 }

+ 4 - 7
compiler/ia64/cpuasm.pas

@@ -297,16 +297,13 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.3  2002-05-16 19:46:52  carl
+  Revision 1.4  2002-09-07 15:25:11  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.3  2002/05/16 19:46:52  carl
   + defines.inc -> fpcdefs.inc to avoid conflicts if compiling by hand
   + defines.inc -> fpcdefs.inc to avoid conflicts if compiling by hand
   + try to fix temp allocation (still in ifdef)
   + try to fix temp allocation (still in ifdef)
   + generic constructor calls
   + generic constructor calls
   + start of tassembler / tmodulebase class cleanup
   + start of tassembler / tmodulebase class cleanup
 
 
-  Revision 1.2  2001/01/05 17:36:58  florian
-  * the info about exception frames is stored now on the stack
-  instead on the heap
-
-  Revision 1.1  2000/12/31 16:54:19  florian
-    + initial revision
 }
 }

+ 11 - 25
compiler/ia64/cpubase.pas

@@ -128,7 +128,7 @@ Const
 
 
   varregs : Array [1..6] of Tregister =
   varregs : Array [1..6] of Tregister =
             (R_9,R_10,R_11,R_12,R_13,R_14);
             (R_9,R_10,R_11,R_12,R_13,R_14);
-            
+
 {*****************************************************************************
 {*****************************************************************************
                        GCC /ABI linking information
                        GCC /ABI linking information
 *****************************************************************************}
 *****************************************************************************}
@@ -136,20 +136,20 @@ Const
   {# Registers which must be saved when calling a routine declared as
   {# Registers which must be saved when calling a routine declared as
      cppdecl, cdecl, stdcall, safecall, palmossyscall. The registers
      cppdecl, cdecl, stdcall, safecall, palmossyscall. The registers
      saved should be the ones as defined in the target ABI and / or GCC.
      saved should be the ones as defined in the target ABI and / or GCC.
-     
+
      This value can be deduced from CALLED_USED_REGISTERS array in the
      This value can be deduced from CALLED_USED_REGISTERS array in the
      GCC source.
      GCC source.
   }
   }
   std_saved_registers = [R_9..R_14,R_F2..R_F9];
   std_saved_registers = [R_9..R_14,R_F2..R_F9];
   {# Required parameter alignment when calling a routine declared as
   {# Required parameter alignment when calling a routine declared as
      stdcall and cdecl. The alignment value should be the one defined
      stdcall and cdecl. The alignment value should be the one defined
-     by GCC or the target ABI. 
-     
-     The value of this constant is equal to the constant 
+     by GCC or the target ABI.
+
+     The value of this constant is equal to the constant
      PARM_BOUNDARY / BITS_PER_UNIT in the GCC source.
      PARM_BOUNDARY / BITS_PER_UNIT in the GCC source.
-  }     
+  }
   std_param_align = ???;
   std_param_align = ???;
-            
+
 
 
 Type
 Type
    TReference = record
    TReference = record
@@ -275,24 +275,10 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.3  2002-04-20 21:38:45  carl
-  * renamed some constants
+  Revision 1.4  2002-09-07 15:25:11  peter
+    * old logs removed and tabs fixed
 
 
-  Revision 1.2  2001/01/05 17:36:58  florian
-  * the info about exception frames is stored now on the stack
-  instead on the heap
-
-  Revision 1.1  2000/12/31 16:54:19  florian
-    + initial revision
-
-  Revision 1.1  2000/07/13 06:30:11  michael
-  + Initial import
-
-  Revision 1.1  2000/07/09 10:40:12  peter
-    * renamed to lowercase
-
-  Revision 1.1  2000/03/09 20:28:00  florian
-    * initial release derieved from the ALPHA cpubase.pas, the
-      file still contains some ALPHA stuff
+  Revision 1.3  2002/04/20 21:38:45  carl
+  * renamed some constants
 
 
 }
 }

+ 7 - 11
compiler/ia64/cpuinfo.pas

@@ -40,9 +40,9 @@ Type
    ts80real = extended;
    ts80real = extended;
    { on the ia64 comp will be mapped to int64 }
    { on the ia64 comp will be mapped to int64 }
    ts64comp = comp;
    ts64comp = comp;
-   
+
    pbestreal=^bestreal;
    pbestreal=^bestreal;
-   
+
 
 
 Const
 Const
    { Size of native extended type }
    { Size of native extended type }
@@ -52,7 +52,7 @@ Const
    c_countusableregsfpu = 95;
    c_countusableregsfpu = 95;
    c_countusableregsmm  = 0;
    c_countusableregsmm  = 0;
    c_countusableregsqp  = 48;
    c_countusableregsqp  = 48;
-   
+
    { target cpu string (used by compiler options) }
    { target cpu string (used by compiler options) }
    target_cpu_string = 'ia64';
    target_cpu_string = 'ia64';
 
 
@@ -61,7 +61,10 @@ Implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.6  2002-08-12 15:08:42  carl
+  Revision 1.7  2002-09-07 15:25:11  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.6  2002/08/12 15:08:42  carl
     + stab register indexes for powerpc (moved from gdb to cpubase)
     + stab register indexes for powerpc (moved from gdb to cpubase)
     + tprocessor enumeration moved to cpuinfo
     + tprocessor enumeration moved to cpuinfo
     + linker in target_info is now a class
     + linker in target_info is now a class
@@ -83,11 +86,4 @@ end.
   Revision 1.3  2002/04/07 13:42:40  carl
   Revision 1.3  2002/04/07 13:42:40  carl
   - moved type constant
   - moved type constant
 
 
-  Revision 1.2  2001/01/05 17:36:58  florian
-  * the info about exception frames is stored now on the stack
-  instead on the heap
-
-  Revision 1.1  2000/12/31 16:54:19  florian
-    + initial revision
-
 }
 }

+ 6 - 3
compiler/link.pas

@@ -614,12 +614,12 @@ end;
 *****************************************************************************}
 *****************************************************************************}
 
 
 procedure InitLinker;
 procedure InitLinker;
-var 
+var
  lk : TlinkerClass;
  lk : TlinkerClass;
 begin
 begin
   if (cs_link_internal in aktglobalswitches) and
   if (cs_link_internal in aktglobalswitches) and
      assigned(target_info.link) then
      assigned(target_info.link) then
-   begin  
+   begin
      lk:=TLinkerClass(target_info.link);
      lk:=TLinkerClass(target_info.link);
      linker:=lk.Create;
      linker:=lk.Create;
    end
    end
@@ -660,7 +660,10 @@ initialization
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.30  2002-08-12 15:08:39  carl
+  Revision 1.31  2002-09-07 15:25:02  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.30  2002/08/12 15:08:39  carl
     + stab register indexes for powerpc (moved from gdb to cpubase)
     + stab register indexes for powerpc (moved from gdb to cpubase)
     + tprocessor enumeration moved to cpuinfo
     + tprocessor enumeration moved to cpuinfo
     + linker in target_info is now a class
     + linker in target_info is now a class

+ 6 - 3
compiler/m68k/aasmcpu.pas

@@ -73,7 +73,7 @@ type
      { for DBxx opcodes }
      { for DBxx opcodes }
      constructor op_reg_sym(op: tasmop; _size : topsize; _op1: tregister; _op2 :tasmsymbol);
      constructor op_reg_sym(op: tasmop; _size : topsize; _op1: tregister; _op2 :tasmsymbol);
      constructor op_sym_ofs_reg(op : tasmop;_size : topsize;_op1 : tasmsymbol;_op1ofs:longint;_op2 : tregister);
      constructor op_sym_ofs_reg(op : tasmop;_size : topsize;_op1 : tasmsymbol;_op1ofs:longint;_op2 : tregister);
-     
+
      constructor op_sym_ofs(op : tasmop;_size : topsize;_op1 : tasmsymbol;_op1ofs:longint);
      constructor op_sym_ofs(op : tasmop;_size : topsize;_op1 : tasmsymbol;_op1ofs:longint);
      constructor op_sym_ofs_ref(op : tasmop;_size : topsize;_op1 : tasmsymbol;_op1ofs:longint;const _op2 : treference);
      constructor op_sym_ofs_ref(op : tasmop;_size : topsize;_op1 : tasmsymbol;_op1ofs:longint;const _op2 : treference);
 
 
@@ -86,7 +86,7 @@ type
   tai_align = class(tai_align_abstract)
   tai_align = class(tai_align_abstract)
         { nothing to add }
         { nothing to add }
   end;
   end;
-  
+
   procedure InitAsm;
   procedure InitAsm;
   procedure DoneAsm;
   procedure DoneAsm;
 
 
@@ -409,7 +409,10 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.4  2002-08-13 18:58:54  carl
+  Revision 1.5  2002-09-07 15:25:11  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.4  2002/08/13 18:58:54  carl
     + m68k problems with cvs fixed?()!
     + m68k problems with cvs fixed?()!
 
 
   Revision 1.2  2002/08/12 15:08:43  carl
   Revision 1.2  2002/08/12 15:08:43  carl

+ 10 - 7
compiler/m68k/agcpugas.pas

@@ -93,10 +93,10 @@ interface
        { Useful for assembly langage output }
        { Useful for assembly langage output }
        '','','','');
        '','','','');
 
 
-     gas_opsize2str : array[topsize] of string[2] = 
+     gas_opsize2str : array[topsize] of string[2] =
      ('','.b','.w','.l','.s','.d','.x',''
      ('','.b','.w','.l','.s','.d','.x',''
      );
      );
-     
+
      gas_reg2str : reg2strtable =
      gas_reg2str : reg2strtable =
       ('', '%d0','%d1','%d2','%d3','%d4','%d5','%d6','%d7',
       ('', '%d0','%d1','%d2','%d3','%d4','%d5','%d6','%d7',
        '%a0','%a1','%a2','%a3','%a4','%a5','%a6','%sp',
        '%a0','%a1','%a2','%a3','%a4','%a5','%a6','%sp',
@@ -104,7 +104,7 @@ interface
        '%ccr','%fp0','%fp1','%fp2','%fp3','%fp4','%fp5',
        '%ccr','%fp0','%fp1','%fp2','%fp3','%fp4','%fp5',
        '%fp6','%fp7','%fpcr','%sr','%ssp','%dfc',
        '%fp6','%fp7','%fpcr','%sr','%ssp','%dfc',
        '%sfc','%vbr','%fpsr');
        '%sfc','%vbr','%fpsr');
-     
+
 
 
   implementation
   implementation
 
 
@@ -170,10 +170,10 @@ interface
                   else
                   else
                     s:=s+'('+basestr+','+indexstr+'.l*'+tostr(scalefactor)+')';
                     s:=s+'('+basestr+','+indexstr+'.l*'+tostr(scalefactor)+')';
                 end;
                 end;
-          end;      
+          end;
          getreferencestring:=s;
          getreferencestring:=s;
       end;
       end;
-      
+
 
 
     function getopstr(const o:toper) : string;
     function getopstr(const o:toper) : string;
     var
     var
@@ -337,7 +337,7 @@ ait_labeled_instruction : begin
          s:=gas_op2str[op]+cond2str[taicpu(hp).condition]+gas_opsize2str[taicpu(hp).opsize]
          s:=gas_op2str[op]+cond2str[taicpu(hp).condition]+gas_opsize2str[taicpu(hp).opsize]
         else
         else
          s:=gas_op2str[op]+gas_opsize2str[taicpu(hp).opsize];
          s:=gas_op2str[op]+gas_opsize2str[taicpu(hp).opsize];
-        getopcodestring:=s; 
+        getopcodestring:=s;
       end;
       end;
 
 
     procedure TM68kAssembler. WriteInstruction(hp: tai);
     procedure TM68kAssembler. WriteInstruction(hp: tai);
@@ -417,7 +417,10 @@ initialization
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.2  2002-08-13 18:58:54  carl
+  Revision 1.3  2002-09-07 15:25:11  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.2  2002/08/13 18:58:54  carl
     + m68k problems with cvs fixed?()!
     + m68k problems with cvs fixed?()!
 
 
 }
 }

+ 129 - 126
compiler/m68k/cgcpu.pas

@@ -76,7 +76,7 @@ unit cgcpu;
           }
           }
           procedure sign_extend(list: taasmoutput;_oldsize : tcgsize; reg: tregister);
           procedure sign_extend(list: taasmoutput;_oldsize : tcgsize; reg: tregister);
           procedure a_jmp_cond(list : taasmoutput;cond : TOpCmp;l: tasmlabel);
           procedure a_jmp_cond(list : taasmoutput;cond : TOpCmp;l: tasmlabel);
-     
+
      end;
      end;
 
 
      tcg64f68k = class(tcg64f32)
      tcg64f68k = class(tcg64f32)
@@ -86,7 +86,7 @@ unit cgcpu;
 
 
      { This function returns true if the reference+offset is valid.
      { This function returns true if the reference+offset is valid.
        Otherwise extra code must be generated to solve the reference.
        Otherwise extra code must be generated to solve the reference.
-       
+
        On the m68k, this verifies that the reference is valid
        On the m68k, this verifies that the reference is valid
        (e.g : if index register is used, then the max displacement
        (e.g : if index register is used, then the max displacement
         is 256 bytes, if only base is used, then max displacement
         is 256 bytes, if only base is used, then max displacement
@@ -99,9 +99,9 @@ const
         (S_NO,S_B,S_W,S_L,S_L,S_B,S_W,S_L,S_L,
         (S_NO,S_B,S_W,S_L,S_L,S_B,S_W,S_L,S_L,
          S_FS,S_FD,S_FX,S_NO,
          S_FS,S_FD,S_FX,S_NO,
          S_NO,S_NO,S_NO,S_NO,S_NO,S_NO,S_NO,S_NO,S_NO,S_NO);
          S_NO,S_NO,S_NO,S_NO,S_NO,S_NO,S_NO,S_NO,S_NO,S_NO);
-         
-         
-         
+
+
+
 
 
 Implementation
 Implementation
 
 
@@ -110,12 +110,12 @@ Implementation
        symdef,symsym,defbase,paramgr,
        symdef,symsym,defbase,paramgr,
        rgobj,tgobj,rgcpu;
        rgobj,tgobj,rgcpu;
 
 
-         
-    const     
+
+    const
       { opcode table lookup }
       { opcode table lookup }
       topcg2tasmop: Array[topcg] of tasmop =
       topcg2tasmop: Array[topcg] of tasmop =
       (
       (
-       A_NONE, 
+       A_NONE,
        A_ADD,
        A_ADD,
        A_AND,
        A_AND,
        A_DIVU,
        A_DIVU,
@@ -131,9 +131,9 @@ Implementation
        A_SUB,
        A_SUB,
        A_EOR
        A_EOR
       );
       );
-       
-        
-      TOpCmp2AsmCond: Array[topcmp] of TAsmCond = 
+
+
+      TOpCmp2AsmCond: Array[topcmp] of TAsmCond =
       (
       (
        C_NONE,
        C_NONE,
        C_EQ,
        C_EQ,
@@ -147,7 +147,7 @@ Implementation
        C_CC,
        C_CC,
        C_HI
        C_HI
       );
       );
-       
+
 
 
      function isvalidrefoffset(const ref: treference): boolean;
      function isvalidrefoffset(const ref: treference): boolean;
       begin
       begin
@@ -165,7 +165,7 @@ Implementation
                 isvalidrefoffset := false;
                 isvalidrefoffset := false;
            end;
            end;
       end;
       end;
-      
+
 {****************************************************************************}
 {****************************************************************************}
 {                               TCG68K                                       }
 {                               TCG68K                                       }
 {****************************************************************************}
 {****************************************************************************}
@@ -179,7 +179,7 @@ Implementation
            begin
            begin
              if (ref.index <> R_NO) and assigned(ref.symbol) then
              if (ref.index <> R_NO) and assigned(ref.symbol) then
                 internalerror(20020814);
                 internalerror(20020814);
-             { base + reg }   
+             { base + reg }
              if ref.index <> R_NO then
              if ref.index <> R_NO then
                 begin
                 begin
                    { base + reg + offset }
                    { base + reg + offset }
@@ -202,7 +202,7 @@ Implementation
                end;
                end;
            end;
            end;
        end;
        end;
-      
+
 
 
 
 
     procedure tcg68k.a_call_name(list : taasmoutput;const s : string);
     procedure tcg68k.a_call_name(list : taasmoutput;const s : string);
@@ -217,7 +217,7 @@ Implementation
        href : treference;
        href : treference;
       begin
       begin
         href := ref;
         href := ref;
-        fixref(list,href); 
+        fixref(list,href);
         list.concat(taicpu.op_ref(A_JSR,S_NO,href));
         list.concat(taicpu.op_ref(A_JSR,S_NO,href));
       end;
       end;
 
 
@@ -235,21 +235,21 @@ Implementation
          begin
          begin
            if (longint(a) >= low(shortint)) and (longint(a) <= high(shortint)) then
            if (longint(a) >= low(shortint)) and (longint(a) <= high(shortint)) then
               list.concat(taicpu.op_const_reg(A_MOVEQ,S_L,a,register))
               list.concat(taicpu.op_const_reg(A_MOVEQ,S_L,a,register))
-           else   
+           else
               list.concat(taicpu.op_const_reg(A_MOVE,S_L,a,register))
               list.concat(taicpu.op_const_reg(A_MOVE,S_L,a,register))
          end;
          end;
       end;
       end;
-      
+
     procedure tcg68k.a_load_reg_ref(list : taasmoutput;size : tcgsize;register : tregister;const ref : treference);
     procedure tcg68k.a_load_reg_ref(list : taasmoutput;size : tcgsize;register : tregister;const ref : treference);
       var
       var
        href : treference;
        href : treference;
       begin
       begin
          href := ref;
          href := ref;
-         fixref(list,href); 
+         fixref(list,href);
          { move to destination reference }
          { move to destination reference }
          list.concat(taicpu.op_reg_ref(A_MOVE,TCGSize2OpSize[size],register,href));
          list.concat(taicpu.op_reg_ref(A_MOVE,TCGSize2OpSize[size],register,href));
       end;
       end;
-      
+
     procedure tcg68k.a_load_reg_reg(list : taasmoutput;size : tcgsize;reg1,reg2 : tregister);
     procedure tcg68k.a_load_reg_reg(list : taasmoutput;size : tcgsize;reg1,reg2 : tregister);
       begin
       begin
          { move to destination register }
          { move to destination register }
@@ -257,19 +257,19 @@ Implementation
          { zero/sign extend register to 32-bit }
          { zero/sign extend register to 32-bit }
          sign_extend(list, size, reg2);
          sign_extend(list, size, reg2);
       end;
       end;
-      
+
     procedure tcg68k.a_load_ref_reg(list : taasmoutput;size : tcgsize;const ref : treference;register : tregister);
     procedure tcg68k.a_load_ref_reg(list : taasmoutput;size : tcgsize;const ref : treference;register : tregister);
       var
       var
        href : treference;
        href : treference;
       begin
       begin
          href := ref;
          href := ref;
-         fixref(list,href); 
+         fixref(list,href);
          list.concat(taicpu.op_ref_reg(A_MOVE,TCGSize2OpSize[size],href,register));
          list.concat(taicpu.op_ref_reg(A_MOVE,TCGSize2OpSize[size],href,register));
          { extend the value in the register }
          { extend the value in the register }
          sign_extend(list, size, register);
          sign_extend(list, size, register);
       end;
       end;
-      
-      
+
+
     procedure tcg68k.a_loadaddr_ref_reg(list : taasmoutput;const ref : treference;r : tregister);
     procedure tcg68k.a_loadaddr_ref_reg(list : taasmoutput;const ref : treference;r : tregister);
      var
      var
        href : treference;
        href : treference;
@@ -278,12 +278,12 @@ Implementation
           begin
           begin
             internalerror(2002072901);
             internalerror(2002072901);
           end;
           end;
-        href:=ref;  
+        href:=ref;
         fixref(list, href);
         fixref(list, href);
         list.concat(taicpu.op_ref_reg(A_LEA,S_L,href,r));
         list.concat(taicpu.op_ref_reg(A_LEA,S_L,href,r));
       end;
       end;
-      
-    procedure tcg68k.a_loadfpu_reg_reg(list: taasmoutput; reg1, reg2: tregister); 
+
+    procedure tcg68k.a_loadfpu_reg_reg(list: taasmoutput; reg1, reg2: tregister);
       begin
       begin
         { in emulation mode, only 32-bit single is supported }
         { in emulation mode, only 32-bit single is supported }
         if cs_fp_emulation in aktmoduleswitches then
         if cs_fp_emulation in aktmoduleswitches then
@@ -291,30 +291,30 @@ Implementation
         else
         else
           list.concat(taicpu.op_reg_reg(A_FMOVE,S_FD,reg1,reg2));
           list.concat(taicpu.op_reg_reg(A_FMOVE,S_FD,reg1,reg2));
       end;
       end;
-      
 
 
-    procedure tcg68k.a_loadfpu_ref_reg(list: taasmoutput; size: tcgsize; const ref: treference; reg: tregister); 
+
+    procedure tcg68k.a_loadfpu_ref_reg(list: taasmoutput; size: tcgsize; const ref: treference; reg: tregister);
      var
      var
       opsize : topsize;
       opsize : topsize;
       href : treference;
       href : treference;
       begin
       begin
-        opsize := tcgsize2opsize[size];   
+        opsize := tcgsize2opsize[size];
         { extended is not supported, since it is not available on Coldfire }
         { extended is not supported, since it is not available on Coldfire }
         if opsize = S_FX then
         if opsize = S_FX then
           internalerror(20020729);
           internalerror(20020729);
-        fixref(list,href);    
+        fixref(list,href);
         { in emulation mode, only 32-bit single is supported }
         { in emulation mode, only 32-bit single is supported }
         if cs_fp_emulation in aktmoduleswitches then
         if cs_fp_emulation in aktmoduleswitches then
            list.concat(taicpu.op_ref_reg(A_MOVE,S_L,href,reg))
            list.concat(taicpu.op_ref_reg(A_MOVE,S_L,href,reg))
         else
         else
            list.concat(taicpu.op_ref_reg(A_FMOVE,opsize,href,reg));
            list.concat(taicpu.op_ref_reg(A_FMOVE,opsize,href,reg));
       end;
       end;
-      
-    procedure tcg68k.a_loadfpu_reg_ref(list: taasmoutput; size: tcgsize; reg: tregister; const ref: treference); 
+
+    procedure tcg68k.a_loadfpu_reg_ref(list: taasmoutput; size: tcgsize; reg: tregister; const ref: treference);
       var
       var
        opsize : topsize;
        opsize : topsize;
       begin
       begin
-        opsize := tcgsize2opsize[size];   
+        opsize := tcgsize2opsize[size];
         { extended is not supported, since it is not available on Coldfire }
         { extended is not supported, since it is not available on Coldfire }
         if opsize = S_FX then
         if opsize = S_FX then
           internalerror(20020729);
           internalerror(20020729);
@@ -324,29 +324,29 @@ Implementation
         else
         else
           list.concat(taicpu.op_reg_ref(A_FMOVE,opsize,reg, ref));
           list.concat(taicpu.op_reg_ref(A_FMOVE,opsize,reg, ref));
       end;
       end;
-      
-    procedure tcg68k.a_loadmm_reg_reg(list: taasmoutput; reg1, reg2: tregister); 
+
+    procedure tcg68k.a_loadmm_reg_reg(list: taasmoutput; reg1, reg2: tregister);
       begin
       begin
         internalerror(20020729);
         internalerror(20020729);
       end;
       end;
-      
-    procedure tcg68k.a_loadmm_ref_reg(list: taasmoutput; const ref: treference; reg: tregister); 
+
+    procedure tcg68k.a_loadmm_ref_reg(list: taasmoutput; const ref: treference; reg: tregister);
       begin
       begin
         internalerror(20020729);
         internalerror(20020729);
       end;
       end;
-      
-    procedure tcg68k.a_loadmm_reg_ref(list: taasmoutput; reg: tregister; const ref: treference); 
+
+    procedure tcg68k.a_loadmm_reg_ref(list: taasmoutput; reg: tregister; const ref: treference);
       begin
       begin
         internalerror(20020729);
         internalerror(20020729);
       end;
       end;
-      
-    procedure tcg68k.a_parammm_reg(list: taasmoutput; reg: tregister); 
+
+    procedure tcg68k.a_parammm_reg(list: taasmoutput; reg: tregister);
       begin
       begin
         internalerror(20020729);
         internalerror(20020729);
       end;
       end;
-      
 
 
-    procedure tcg68k.a_op_const_reg(list : taasmoutput; Op: TOpCG; a: AWord; reg: TRegister); 
+
+    procedure tcg68k.a_op_const_reg(list : taasmoutput; Op: TOpCG; a: AWord; reg: TRegister);
       var
       var
        scratch_reg : tregister;
        scratch_reg : tregister;
        scratch_reg2: tregister;
        scratch_reg2: tregister;
@@ -357,11 +357,11 @@ Implementation
            exit;
            exit;
         opcode := topcg2tasmop[op];
         opcode := topcg2tasmop[op];
         case op of
         case op of
-          OP_ADD : 
+          OP_ADD :
               Begin
               Begin
                 if (a >= 1) and (a <= 8) then
                 if (a >= 1) and (a <= 8) then
                     list.concat(taicpu.op_const_reg(A_ADDQ,S_L,a, reg))
                     list.concat(taicpu.op_const_reg(A_ADDQ,S_L,a, reg))
-                else  
+                else
                   begin
                   begin
                     { all others, including coldfire }
                     { all others, including coldfire }
                     list.concat(taicpu.op_const_reg(A_ADD,S_L,a, reg));
                     list.concat(taicpu.op_const_reg(A_ADD,S_L,a, reg));
@@ -369,7 +369,7 @@ Implementation
               end;
               end;
           OP_AND,
           OP_AND,
           OP_OR:
           OP_OR:
-              Begin  
+              Begin
                  list.concat(taicpu.op_const_reg(topcg2tasmop[op],S_L,a, reg));
                  list.concat(taicpu.op_const_reg(topcg2tasmop[op],S_L,a, reg));
               end;
               end;
           OP_DIV :
           OP_DIV :
@@ -434,12 +434,12 @@ Implementation
                          list.concat(taicpu.op_const_reg(A_MULU,S_L,a,reg));
                          list.concat(taicpu.op_const_reg(A_MULU,S_L,a,reg));
                     end;
                     end;
               end;
               end;
-          OP_SAR,    
+          OP_SAR,
           OP_SHL,
           OP_SHL,
           OP_SHR :
           OP_SHR :
               Begin
               Begin
                 if (a >= 1) and (a <= 8) then
                 if (a >= 1) and (a <= 8) then
-                 begin 
+                 begin
                    { now allowed to shift an address register }
                    { now allowed to shift an address register }
                    if (rg.isaddressregister(reg)) then
                    if (rg.isaddressregister(reg)) then
                      begin
                      begin
@@ -468,14 +468,14 @@ Implementation
                      end
                      end
                    else
                    else
                      list.concat(taicpu.op_reg_reg(opcode,S_L,scratch_reg, reg));
                      list.concat(taicpu.op_reg_reg(opcode,S_L,scratch_reg, reg));
-                   cg.free_scratch_reg(list,scratch_reg);  
+                   cg.free_scratch_reg(list,scratch_reg);
                  end;
                  end;
               end;
               end;
           OP_SUB :
           OP_SUB :
               Begin
               Begin
                 if (a >= 1) and (a <= 8) then
                 if (a >= 1) and (a <= 8) then
                     list.concat(taicpu.op_const_reg(A_SUBQ,S_L,a,reg))
                     list.concat(taicpu.op_const_reg(A_SUBQ,S_L,a,reg))
-                else  
+                else
                   begin
                   begin
                     { all others, including coldfire }
                     { all others, including coldfire }
                     list.concat(taicpu.op_const_reg(A_SUB,S_L,a, reg));
                     list.concat(taicpu.op_const_reg(A_SUB,S_L,a, reg));
@@ -487,15 +487,15 @@ Implementation
               end;
               end;
         else
         else
             internalerror(20020729);
             internalerror(20020729);
-         end;   
+         end;
       end;
       end;
-      
-    procedure tcg68k.a_op_reg_reg(list : taasmoutput; Op: TOpCG; size: TCGSize; reg1, reg2: TRegister); 
+
+    procedure tcg68k.a_op_reg_reg(list : taasmoutput; Op: TOpCG; size: TCGSize; reg1, reg2: TRegister);
       var
       var
        hreg1,hreg2: tregister;
        hreg1,hreg2: tregister;
       begin
       begin
         case op of
         case op of
-          OP_ADD : 
+          OP_ADD :
               Begin
               Begin
                  if aktoptprocessor = ColdFire then
                  if aktoptprocessor = ColdFire then
                   begin
                   begin
@@ -518,10 +518,10 @@ Implementation
                    begin
                    begin
                      hreg1 := cg.get_scratch_reg_int(list);
                      hreg1 := cg.get_scratch_reg_int(list);
                      list.concat(taicpu.op_reg_reg(A_MOVE,S_L,reg1,hreg1));
                      list.concat(taicpu.op_reg_reg(A_MOVE,S_L,reg1,hreg1));
-                   end  
+                   end
                  else
                  else
                    hreg1 := reg1;
                    hreg1 := reg1;
-                   
+
                  if (rg.isaddressregister(reg2))  then
                  if (rg.isaddressregister(reg2))  then
                    begin
                    begin
                       hreg2:= cg.get_scratch_reg_int(list);
                       hreg2:= cg.get_scratch_reg_int(list);
@@ -529,15 +529,15 @@ Implementation
                    end
                    end
                  else
                  else
                    hreg2 := reg2;
                    hreg2 := reg2;
-                 
+
                  if aktoptprocessor = ColdFire then
                  if aktoptprocessor = ColdFire then
                   begin
                   begin
                     { operation only allowed only a longword }
                     { operation only allowed only a longword }
                     {!***************************************
                     {!***************************************
-                      in the case of shifts, the value to 
+                      in the case of shifts, the value to
                       shift by, should already be valid, so
                       shift by, should already be valid, so
                       no need to sign extend the value
                       no need to sign extend the value
-                     ! 
+                     !
                     }
                     }
                     if op in [OP_AND,OP_OR,OP_SUB,OP_XOR] then
                     if op in [OP_AND,OP_OR,OP_SUB,OP_XOR] then
                        sign_extend(list, size, hreg1);
                        sign_extend(list, size, hreg1);
@@ -548,10 +548,10 @@ Implementation
                   begin
                   begin
                     list.concat(taicpu.op_reg_reg(topcg2tasmop[op],TCGSize2OpSize[size],hreg1, hreg2));
                     list.concat(taicpu.op_reg_reg(topcg2tasmop[op],TCGSize2OpSize[size],hreg1, hreg2));
                   end;
                   end;
-                  
+
                  if reg1 <> hreg1 then
                  if reg1 <> hreg1 then
                     cg.free_scratch_reg(list,hreg1);
                     cg.free_scratch_reg(list,hreg1);
-                 { move back result into destination register }   
+                 { move back result into destination register }
                  if reg2 <> hreg2 then
                  if reg2 <> hreg2 then
                    begin
                    begin
                       list.concat(taicpu.op_reg_reg(A_MOVE,S_L,hreg2,reg2));
                       list.concat(taicpu.op_reg_reg(A_MOVE,S_L,hreg2,reg2));
@@ -591,17 +591,17 @@ Implementation
                        hreg2:= cg.get_scratch_reg_int(list)
                        hreg2:= cg.get_scratch_reg_int(list)
                      else
                      else
                        hreg2 := reg2;
                        hreg2 := reg2;
-                 
+
                      if reg1 <> hreg1 then
                      if reg1 <> hreg1 then
                           list.concat(taicpu.op_reg_reg(A_MOVE,S_L,reg1,hreg1));
                           list.concat(taicpu.op_reg_reg(A_MOVE,S_L,reg1,hreg1));
                      if reg2 <> hreg2 then
                      if reg2 <> hreg2 then
                           list.concat(taicpu.op_reg_reg(A_MOVE,S_L,reg2,hreg2));
                           list.concat(taicpu.op_reg_reg(A_MOVE,S_L,reg2,hreg2));
-                    
+
                      list.concat(taicpu.op_reg_reg(A_MULS,S_L,reg1,reg2));
                      list.concat(taicpu.op_reg_reg(A_MULS,S_L,reg1,reg2));
-                         
+
                      if reg1 <> hreg1 then
                      if reg1 <> hreg1 then
                        cg.free_scratch_reg(list,hreg1);
                        cg.free_scratch_reg(list,hreg1);
-                     { move back result into destination register }   
+                     { move back result into destination register }
                      if reg2 <> hreg2 then
                      if reg2 <> hreg2 then
                        begin
                        begin
                           list.concat(taicpu.op_reg_reg(A_MOVE,S_L,hreg2,reg2));
                           list.concat(taicpu.op_reg_reg(A_MOVE,S_L,hreg2,reg2));
@@ -633,7 +633,7 @@ Implementation
                       end
                       end
                      else
                      else
                        hreg1 := reg1;
                        hreg1 := reg1;
-                       
+
                      if (rg.isaddressregister(reg2))  then
                      if (rg.isaddressregister(reg2))  then
                       begin
                       begin
                        hreg2:= cg.get_scratch_reg_int(list);
                        hreg2:= cg.get_scratch_reg_int(list);
@@ -641,13 +641,13 @@ Implementation
                       end
                       end
                      else
                      else
                        hreg2 := reg2;
                        hreg2 := reg2;
-                 
-                    
+
+
                      list.concat(taicpu.op_reg_reg(A_MULU,S_L,reg1,reg2));
                      list.concat(taicpu.op_reg_reg(A_MULU,S_L,reg1,reg2));
-                         
+
                      if reg1 <> hreg1 then
                      if reg1 <> hreg1 then
                        cg.free_scratch_reg(list,hreg1);
                        cg.free_scratch_reg(list,hreg1);
-                     { move back result into destination register }   
+                     { move back result into destination register }
                      if reg2 <> hreg2 then
                      if reg2 <> hreg2 then
                        begin
                        begin
                           list.concat(taicpu.op_reg_reg(A_MOVE,S_L,hreg2,reg2));
                           list.concat(taicpu.op_reg_reg(A_MOVE,S_L,hreg2,reg2));
@@ -660,7 +660,7 @@ Implementation
               Begin
               Begin
                 if reg1 <> R_NO then
                 if reg1 <> R_NO then
                   internalerror(200112291);
                   internalerror(200112291);
-              
+
                 if (rg.isaddressregister(reg2)) then
                 if (rg.isaddressregister(reg2)) then
                   begin
                   begin
                      hreg2 := cg.get_scratch_reg_int(list);
                      hreg2 := cg.get_scratch_reg_int(list);
@@ -685,15 +685,15 @@ Implementation
                     list.concat(taicpu.op_reg_reg(A_MOVE,S_L,hreg2,reg2));
                     list.concat(taicpu.op_reg_reg(A_MOVE,S_L,hreg2,reg2));
                     cg.free_scratch_reg(list,hreg2);
                     cg.free_scratch_reg(list,hreg2);
                   end;
                   end;
-                   
+
               end;
               end;
         else
         else
             internalerror(20020729);
             internalerror(20020729);
-         end;   
+         end;
       end;
       end;
-      
-      
-      
+
+
+
     procedure tcg68k.a_cmp_const_reg_label(list : taasmoutput;size : tcgsize;cmp_op : topcmp;a : aword;reg : tregister;
     procedure tcg68k.a_cmp_const_reg_label(list : taasmoutput;size : tcgsize;cmp_op : topcmp;a : aword;reg : tregister;
             l : tasmlabel);
             l : tasmlabel);
       var
       var
@@ -717,7 +717,7 @@ Implementation
                { sign/zero extend the register }
                { sign/zero extend the register }
                sign_extend(list, size,hregister);
                sign_extend(list, size,hregister);
                list.concat(taicpu.op_const_reg(A_CMPI,S_L,a,hregister));
                list.concat(taicpu.op_const_reg(A_CMPI,S_L,a,hregister));
-               cg.free_scratch_reg(list,hregister);  
+               cg.free_scratch_reg(list,hregister);
              end
              end
            else
            else
              begin
              begin
@@ -727,15 +727,15 @@ Implementation
          { emit the actual jump to the label }
          { emit the actual jump to the label }
          a_jmp_cond(list,cmp_op,l);
          a_jmp_cond(list,cmp_op,l);
       end;
       end;
-      
-    procedure tcg68k.a_cmp_reg_reg_label(list : taasmoutput;size : tcgsize;cmp_op : topcmp;reg1,reg2 : tregister;l : tasmlabel); 
+
+    procedure tcg68k.a_cmp_reg_reg_label(list : taasmoutput;size : tcgsize;cmp_op : topcmp;reg1,reg2 : tregister;l : tasmlabel);
       begin
       begin
          list.concat(taicpu.op_reg_reg(A_CMP,tcgsize2opsize[size],reg1,reg2));
          list.concat(taicpu.op_reg_reg(A_CMP,tcgsize2opsize[size],reg1,reg2));
          { emit the actual jump to the label }
          { emit the actual jump to the label }
          a_jmp_cond(list,cmp_op,l);
          a_jmp_cond(list,cmp_op,l);
       end;
       end;
-      
-    procedure tcg68k.a_jmp_always(list : taasmoutput;l: tasmlabel); 
+
+    procedure tcg68k.a_jmp_always(list : taasmoutput;l: tasmlabel);
       var
       var
        ai: taicpu;
        ai: taicpu;
       begin
       begin
@@ -743,8 +743,8 @@ Implementation
          ai.is_jmp := true;
          ai.is_jmp := true;
          list.concat(ai);
          list.concat(ai);
       end;
       end;
-      
-    procedure tcg68k.a_jmp_flags(list : taasmoutput;const f : TResFlags;l: tasmlabel); 
+
+    procedure tcg68k.a_jmp_flags(list : taasmoutput;const f : TResFlags;l: tasmlabel);
        var
        var
          ai : taicpu;
          ai : taicpu;
        begin
        begin
@@ -753,8 +753,8 @@ Implementation
          ai.is_jmp := true;
          ai.is_jmp := true;
          list.concat(ai);
          list.concat(ai);
        end;
        end;
-      
-    procedure tcg68k.g_flags2reg(list: taasmoutput; size: TCgSize; const f: tresflags; reg: TRegister); 
+
+    procedure tcg68k.g_flags2reg(list: taasmoutput; size: TCgSize; const f: tresflags; reg: TRegister);
        var
        var
          ai : taicpu;
          ai : taicpu;
          hreg : tregister;
          hreg : tregister;
@@ -767,11 +767,11 @@ Implementation
               ai:=Taicpu.Op_reg(A_Sxx,S_B,hreg);
               ai:=Taicpu.Op_reg(A_Sxx,S_B,hreg);
               ai.SetCondition(flags_to_cond(f));
               ai.SetCondition(flags_to_cond(f));
               list.concat(ai);
               list.concat(ai);
-              
+
               if (aktoptprocessor = ColdFire) then
               if (aktoptprocessor = ColdFire) then
                 begin
                 begin
-                 { neg.b does not exist on the Coldfire 
-                   so we need to sign extend the value 
+                 { neg.b does not exist on the Coldfire
+                   so we need to sign extend the value
                    before doing a neg.l
                    before doing a neg.l
                  }
                  }
                  list.concat(taicpu.op_reg(A_EXTB,S_L,hreg));
                  list.concat(taicpu.op_reg(A_EXTB,S_L,hreg));
@@ -784,17 +784,17 @@ Implementation
              list.concat(taicpu.op_reg_reg(A_MOVE,S_L,hreg,reg));
              list.concat(taicpu.op_reg_reg(A_MOVE,S_L,hreg,reg));
              free_scratch_reg(list,hreg);
              free_scratch_reg(list,hreg);
             end
             end
-          else  
+          else
           begin
           begin
             a_load_const_reg(list,size,0,reg);
             a_load_const_reg(list,size,0,reg);
             ai:=Taicpu.Op_reg(A_Sxx,S_B,reg);
             ai:=Taicpu.Op_reg(A_Sxx,S_B,reg);
             ai.SetCondition(flags_to_cond(f));
             ai.SetCondition(flags_to_cond(f));
             list.concat(ai);
             list.concat(ai);
-            
+
             if (aktoptprocessor = ColdFire) then
             if (aktoptprocessor = ColdFire) then
               begin
               begin
-                 { neg.b does not exist on the Coldfire 
-                   so we need to sign extend the value 
+                 { neg.b does not exist on the Coldfire
+                   so we need to sign extend the value
                    before doing a neg.l
                    before doing a neg.l
                  }
                  }
                  list.concat(taicpu.op_reg(A_EXTB,S_L,reg));
                  list.concat(taicpu.op_reg(A_EXTB,S_L,reg));
@@ -807,7 +807,7 @@ Implementation
           end;
           end;
        end;
        end;
 
 
-      
+
 
 
     procedure tcg68k.g_concatcopy(list : taasmoutput;const source,dest : treference;len : aword;delsource,loadref : boolean);
     procedure tcg68k.g_concatcopy(list : taasmoutput;const source,dest : treference;len : aword;delsource,loadref : boolean);
      var
      var
@@ -827,7 +827,7 @@ Implementation
 
 
       begin
       begin
          popaddress := false;
          popaddress := false;
-         
+
          { this should never occur }
          { this should never occur }
          if len > 65535 then
          if len > 65535 then
            internalerror(0);
            internalerror(0);
@@ -943,15 +943,15 @@ Implementation
 
 
            free_scratch_reg(list,hregister);
            free_scratch_reg(list,hregister);
     end;
     end;
-      
-    procedure tcg68k.g_overflowcheck(list: taasmoutput; const p: tnode); 
+
+    procedure tcg68k.g_overflowcheck(list: taasmoutput; const p: tnode);
       begin
       begin
       end;
       end;
-      
-    procedure tcg68k.g_copyvaluepara_openarray(list : taasmoutput;const ref:treference;elesize:integer); 
+
+    procedure tcg68k.g_copyvaluepara_openarray(list : taasmoutput;const ref:treference;elesize:integer);
       begin
       begin
       end;
       end;
-      
+
     procedure tcg68k.g_stackframe_entry(list : taasmoutput;localsize : longint);
     procedure tcg68k.g_stackframe_entry(list : taasmoutput;localsize : longint);
       begin
       begin
         if localsize<>0 then
         if localsize<>0 then
@@ -969,12 +969,12 @@ Implementation
              list.concat(taicpu.op_reg_reg(A_MOVE,S_L,stack_pointer_reg,frame_pointer_reg));
              list.concat(taicpu.op_reg_reg(A_MOVE,S_L,stack_pointer_reg,frame_pointer_reg));
            end;
            end;
       end;
       end;
-      
+
     procedure tcg68k.g_restore_frame_pointer(list : taasmoutput);
     procedure tcg68k.g_restore_frame_pointer(list : taasmoutput);
       begin
       begin
         list.concat(taicpu.op_reg(A_UNLK,S_NO,frame_pointer_reg));
         list.concat(taicpu.op_reg(A_UNLK,S_NO,frame_pointer_reg));
       end;
       end;
-      
+
     procedure tcg68k.g_return_from_proc(list : taasmoutput;parasize : aword);
     procedure tcg68k.g_return_from_proc(list : taasmoutput;parasize : aword);
       var
       var
        hregister : tregister;
        hregister : tregister;
@@ -1015,16 +1015,16 @@ Implementation
                    list.concat(taicpu.op_const_reg(A_ADDQ,S_L,parasize,R_SP))
                    list.concat(taicpu.op_const_reg(A_ADDQ,S_L,parasize,R_SP))
                 else { nope ... }
                 else { nope ... }
                    list.concat(taicpu.op_const_reg(A_ADD,S_L,parasize,R_SP));
                    list.concat(taicpu.op_const_reg(A_ADD,S_L,parasize,R_SP));
-                    
+
                 { restore the PC counter (push it on the stack)       }
                 { restore the PC counter (push it on the stack)       }
                 list.concat(taicpu.op_reg_reg(A_MOVE,S_L,hregister,R_SPPUSH));
                 list.concat(taicpu.op_reg_reg(A_MOVE,S_L,hregister,R_SPPUSH));
                 list.concat(taicpu.op_none(A_RTS,S_NO));
                 list.concat(taicpu.op_none(A_RTS,S_NO));
                 free_scratch_reg(list,hregister);
                 free_scratch_reg(list,hregister);
                end;
                end;
            end;
            end;
-      
+
       end;
       end;
-      
+
     procedure tcg68k.g_save_standard_registers(list : taasmoutput; usedinproc : tregisterset);
     procedure tcg68k.g_save_standard_registers(list : taasmoutput; usedinproc : tregisterset);
       var
       var
         tosave : tregisterlist;
         tosave : tregisterlist;
@@ -1035,7 +1035,7 @@ Implementation
          if tosave<>[] then
          if tosave<>[] then
            list.concat(taicpu.op_reglist_reg(A_MOVEM,S_L,tosave,R_SPPUSH));
            list.concat(taicpu.op_reglist_reg(A_MOVEM,S_L,tosave,R_SPPUSH));
       end;
       end;
-      
+
     procedure tcg68k.g_restore_standard_registers(list : taasmoutput; usedinproc : tregisterset);
     procedure tcg68k.g_restore_standard_registers(list : taasmoutput; usedinproc : tregisterset);
       var
       var
        torestore : tregisterset;
        torestore : tregisterset;
@@ -1046,15 +1046,15 @@ Implementation
          if torestore<>[] then
          if torestore<>[] then
            list.concat(taicpu.op_reg_reglist(A_MOVEM,S_L,R_SPPULL,torestore));
            list.concat(taicpu.op_reg_reglist(A_MOVEM,S_L,R_SPPULL,torestore));
       end;
       end;
-      
+
     procedure tcg68k.g_save_all_registers(list : taasmoutput);
     procedure tcg68k.g_save_all_registers(list : taasmoutput);
       begin
       begin
       end;
       end;
-      
+
     procedure tcg68k.g_restore_all_registers(list : taasmoutput;selfused,accused,acchiused:boolean);
     procedure tcg68k.g_restore_all_registers(list : taasmoutput;selfused,accused,acchiused:boolean);
       begin
       begin
       end;
       end;
-      
+
     procedure tcg68k.sign_extend(list: taasmoutput;_oldsize : tcgsize; reg: tregister);
     procedure tcg68k.sign_extend(list: taasmoutput;_oldsize : tcgsize; reg: tregister);
       begin
       begin
         case _oldsize of
         case _oldsize of
@@ -1122,7 +1122,7 @@ Implementation
   begin
   begin
     opcode := topcg2tasmop[op];
     opcode := topcg2tasmop[op];
     case op of
     case op of
-      OP_ADD :  
+      OP_ADD :
          begin
          begin
             { if one of these three registers is an address
             { if one of these three registers is an address
               register, we'll really get into problems!
               register, we'll really get into problems!
@@ -1147,8 +1147,8 @@ Implementation
             cg.a_op_reg_reg(list,op,OS_32,regsrc.reghi,regdst.reghi);
             cg.a_op_reg_reg(list,op,OS_32,regsrc.reghi,regdst.reghi);
           end;
           end;
       { this is handled in 1st pass for 32-bit cpu's (helper call) }
       { this is handled in 1st pass for 32-bit cpu's (helper call) }
-      OP_IDIV,OP_DIV, 
-      OP_IMUL,OP_MUL: internalerror(2002081701); 
+      OP_IDIV,OP_DIV,
+      OP_IMUL,OP_MUL: internalerror(2002081701);
       { this is also handled in 1st pass for 32-bit cpu's (helper call) }
       { this is also handled in 1st pass for 32-bit cpu's (helper call) }
       OP_SAR,OP_SHL,OP_SHR: internalerror(2002081702);
       OP_SAR,OP_SHL,OP_SHR: internalerror(2002081702);
       OP_SUB:
       OP_SUB:
@@ -1175,8 +1175,8 @@ Implementation
         end;
         end;
     end; { end case }
     end; { end case }
   end;
   end;
-  
-  
+
+
  procedure tcg64f68k.a_op64_const_reg(list : taasmoutput;op:TOpCG;value : qword;reg : tregister64);
  procedure tcg64f68k.a_op64_const_reg(list : taasmoutput;op:TOpCG;value : qword;reg : tregister64);
   var
   var
    lowvalue : cardinal;
    lowvalue : cardinal;
@@ -1185,16 +1185,16 @@ Implementation
     { is it optimized out ? }
     { is it optimized out ? }
     if optimize64_op_const_reg(list,op,value,reg) then
     if optimize64_op_const_reg(list,op,value,reg) then
        exit;
        exit;
-    
+
     lowvalue := cardinal(value);
     lowvalue := cardinal(value);
     highvalue:= value shr 32;
     highvalue:= value shr 32;
-    
+
    { the destination registers must be data registers }
    { the destination registers must be data registers }
    if  rg.isaddressregister(reg.reglo) or
    if  rg.isaddressregister(reg.reglo) or
        rg.isaddressregister(reg.reghi) then
        rg.isaddressregister(reg.reghi) then
          internalerror(20020817);
          internalerror(20020817);
-   case op of      
-      OP_ADD :  
+   case op of
+      OP_ADD :
          begin
          begin
             list.concat(taicpu.op_const_reg(A_ADD,S_L,lowvalue,reg.reglo));
             list.concat(taicpu.op_const_reg(A_ADD,S_L,lowvalue,reg.reglo));
             list.concat(taicpu.op_const_reg(A_ADDX,S_L,highvalue,reg.reglo));
             list.concat(taicpu.op_const_reg(A_ADDX,S_L,highvalue,reg.reglo));
@@ -1210,8 +1210,8 @@ Implementation
             internalerror(2002081802);
             internalerror(2002081802);
           end;
           end;
       { this is handled in 1st pass for 32-bit cpu's (helper call) }
       { this is handled in 1st pass for 32-bit cpu's (helper call) }
-      OP_IDIV,OP_DIV, 
-      OP_IMUL,OP_MUL: internalerror(2002081701); 
+      OP_IDIV,OP_DIV,
+      OP_IMUL,OP_MUL: internalerror(2002081701);
       { this is also handled in 1st pass for 32-bit cpu's (helper call) }
       { this is also handled in 1st pass for 32-bit cpu's (helper call) }
       OP_SAR,OP_SHL,OP_SHR: internalerror(2002081702);
       OP_SAR,OP_SHL,OP_SHR: internalerror(2002081702);
       OP_SUB:
       OP_SUB:
@@ -1224,17 +1224,20 @@ Implementation
             list.concat(taicpu.op_const_reg(A_EOR,S_L,lowvalue,reg.reglo));
             list.concat(taicpu.op_const_reg(A_EOR,S_L,lowvalue,reg.reglo));
             list.concat(taicpu.op_const_reg(A_EOR,S_L,highvalue,reg.reglo));
             list.concat(taicpu.op_const_reg(A_EOR,S_L,highvalue,reg.reglo));
         end;
         end;
-    end; { end case }    
+    end; { end case }
   end;
   end;
-  
+
 begin
 begin
   cg := tcg68k.create;
   cg := tcg68k.create;
   cg64 :=tcg64f68k.create;
   cg64 :=tcg64f68k.create;
 end.
 end.
 
 
-{ 
+{
   $Log$
   $Log$
-  Revision 1.5  2002-08-19 18:17:48  carl
+  Revision 1.6  2002-09-07 15:25:12  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.5  2002/08/19 18:17:48  carl
     + optimize64_op_const_reg implemented (optimizes 64-bit constant opcodes)
     + optimize64_op_const_reg implemented (optimizes 64-bit constant opcodes)
     * more fixes to m68k for 64-bit operations
     * more fixes to m68k for 64-bit operations
 
 
@@ -1273,6 +1276,6 @@ end.
   Revision 1.1  2002/07/29 17:51:32  carl
   Revision 1.1  2002/07/29 17:51:32  carl
     + restart m68k support
     + restart m68k support
 
 
-}  
-          
+}
+
 
 

+ 3 - 9
compiler/m68k/cpuasm.pas

@@ -27,13 +27,7 @@ unit cpuasm;
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.1  2000-07-13 06:30:05  michael
-  + Initial import
+  Revision 1.2  2002-09-07 15:25:13  peter
+    * old logs removed and tabs fixed
 
 
-  Revision 1.2  2000/01/07 01:14:50  peter
-    * updated copyright to 2000
-
-  Revision 1.1  1999/09/16 23:05:57  florian
-    * m68k compiler is again compilable (only gas writer, no assembler reader)
-
-}
+}

+ 10 - 7
compiler/m68k/cpuinfo.pas

@@ -36,16 +36,16 @@ Type
    ts64real = double;
    ts64real = double;
    ts80real = extended;
    ts80real = extended;
    ts64comp = extended;
    ts64comp = extended;
-   
+
    pbestreal=^bestreal;
    pbestreal=^bestreal;
-   
+
    { possible supported processors for this target }
    { possible supported processors for this target }
-   tprocessors = 
+   tprocessors =
       (no_processor,
       (no_processor,
        MC68000,
        MC68000,
        MC68020,
        MC68020,
        Coldfire
        Coldfire
-      ); 
+      );
 
 
 Const
 Const
    {# Size of native extended floating point type }
    {# Size of native extended floating point type }
@@ -54,9 +54,9 @@ Const
    pointer_size  = 4;
    pointer_size  = 4;
    {# Size of a multimedia register               }
    {# Size of a multimedia register               }
    mmreg_size = 16;
    mmreg_size = 16;
-   { size of the buffer used for setjump/longjmp  
+   { size of the buffer used for setjump/longjmp
      the size of this buffer is deduced from the
      the size of this buffer is deduced from the
-     jmp_buf structure in setjumph.inc file 
+     jmp_buf structure in setjumph.inc file
    }
    }
    jmp_buf_size = 28;
    jmp_buf_size = 28;
    { target cpu string (used by compiler options) }
    { target cpu string (used by compiler options) }
@@ -67,7 +67,10 @@ Implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.3  2002-08-15 15:15:55  carl
+  Revision 1.4  2002-09-07 15:25:13  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.3  2002/08/15 15:15:55  carl
     * jmpbuf size allocation for exceptions is now cpu specific (as it should)
     * jmpbuf size allocation for exceptions is now cpu specific (as it should)
     * more generic nodes for maths
     * more generic nodes for maths
     * several fixes for better m68k support
     * several fixes for better m68k support

+ 8 - 5
compiler/m68k/n68kcnv.pas

@@ -61,7 +61,7 @@ implementation
       begin
       begin
         { In case we are in emulation mode, we must
         { In case we are in emulation mode, we must
           always call the helpers
           always call the helpers
-        }  
+        }
         if (cs_fp_emulation in aktmoduleswitches) then
         if (cs_fp_emulation in aktmoduleswitches) then
           begin
           begin
             result := inherited first_int_to_real;
             result := inherited first_int_to_real;
@@ -87,8 +87,8 @@ implementation
             if is_signed(left.resulttype.def) then
             if is_signed(left.resulttype.def) then
               inserttypeconv(left,s32bittype)
               inserttypeconv(left,s32bittype)
             else
             else
-              { the fpu always considers 32-bit values as signed 
-                therefore we need to call the helper in case of 
+              { the fpu always considers 32-bit values as signed
+                therefore we need to call the helper in case of
                 a cardinal value.
                 a cardinal value.
               }
               }
               begin
               begin
@@ -134,7 +134,7 @@ implementation
         { has to be handled by a helper }
         { has to be handled by a helper }
         if not signed then
         if not signed then
            internalerror(20020814);
            internalerror(20020814);
-          
+
         location.register := rg.getregisterfpu(exprasmlist);
         location.register := rg.getregisterfpu(exprasmlist);
         case left.location.loc of
         case left.location.loc of
           LOC_REGISTER, LOC_CREGISTER:
           LOC_REGISTER, LOC_CREGISTER:
@@ -292,7 +292,10 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.2  2002-08-14 19:31:26  carl
+  Revision 1.3  2002-09-07 15:25:13  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.2  2002/08/14 19:31:26  carl
     * fix small compilation problem
     * fix small compilation problem
 
 
   Revision 1.1  2002/08/14 19:16:34  carl
   Revision 1.1  2002/08/14 19:16:34  carl

+ 5 - 2
compiler/m68k/n68kmat.pas

@@ -35,7 +35,7 @@ interface
       tm68knotnode = class(tnotnode)
       tm68knotnode = class(tnotnode)
          procedure pass_2;override;
          procedure pass_2;override;
       end;
       end;
-      
+
 
 
 implementation
 implementation
 
 
@@ -128,7 +128,10 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.3  2002-08-15 15:15:55  carl
+  Revision 1.4  2002-09-07 15:25:13  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.3  2002/08/15 15:15:55  carl
     * jmpbuf size allocation for exceptions is now cpu specific (as it should)
     * jmpbuf size allocation for exceptions is now cpu specific (as it should)
     * more generic nodes for maths
     * more generic nodes for maths
     * several fixes for better m68k support
     * several fixes for better m68k support

+ 6 - 3
compiler/m68k/radirect.pas

@@ -33,8 +33,8 @@ interface
      function assemble : tnode;
      function assemble : tnode;
 
 
   implementation
   implementation
-  
-  uses 
+
+  uses
     verbose;
     verbose;
 
 
 
 
@@ -52,7 +52,10 @@ interface
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.1  2002-08-13 18:01:52  carl
+  Revision 1.2  2002-09-07 15:25:13  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.1  2002/08/13 18:01:52  carl
     * rename swatoperands to swapoperands
     * rename swatoperands to swapoperands
     + m68k first compilable version (still needs a lot of testing):
     + m68k first compilable version (still needs a lot of testing):
         assembler generator, system information , inline
         assembler generator, system information , inline

+ 14 - 63
compiler/m68k/rasm.pas

@@ -1229,8 +1229,8 @@ type
     Until false;
     Until false;
   end;
   end;
 
 
-  
-  
+
+
   Procedure TM68kOperand.BuildReference;
   Procedure TM68kOperand.BuildReference;
   {*********************************************************************}
   {*********************************************************************}
   { PROCEDURE BuildBracketExpression                                    }
   { PROCEDURE BuildBracketExpression                                    }
@@ -1349,7 +1349,7 @@ type
        end;
        end;
      end; { end case }
      end; { end case }
   end;
   end;
-  
+
 
 
 
 
 
 
@@ -1411,7 +1411,7 @@ type
               Begin
               Begin
                  if actasmpattern = '@RESULT' then
                  if actasmpattern = '@RESULT' then
                     SetUpResult
                     SetUpResult
-                 else 
+                 else
                  if actasmpattern = 'SELF' then
                  if actasmpattern = 'SELF' then
                     SetUpSelf
                     SetUpSelf
                  else
                  else
@@ -1471,7 +1471,7 @@ type
                         end
                         end
                        else
                        else
                           Message1(sym_e_unknown_id,actasmpattern);
                           Message1(sym_e_unknown_id,actasmpattern);
-                   end;       
+                   end;
                    expr := actasmpattern;
                    expr := actasmpattern;
                    Consume(AS_ID);
                    Consume(AS_ID);
                    case actasmtoken of
                    case actasmtoken of
@@ -1863,17 +1863,17 @@ type
           p.concat((taicpu.op_none(opcode,S_NO)));
           p.concat((taicpu.op_none(opcode,S_NO)));
      1: Begin
      1: Begin
           case operands[1].opr.typ of
           case operands[1].opr.typ of
-           OPR_SYMBOL: 
+           OPR_SYMBOL:
               Begin
               Begin
                 p.concat((taicpu.op_sym_ofs(opcode,
                 p.concat((taicpu.op_sym_ofs(opcode,
                   opsize, operands[1].opr.symbol,operands[1].opr.symofs)));
                   opsize, operands[1].opr.symbol,operands[1].opr.symofs)));
               end;
               end;
-           OPR_CONSTANT: 
+           OPR_CONSTANT:
               Begin
               Begin
                 p.concat((taicpu.op_const(opcode,
                 p.concat((taicpu.op_const(opcode,
                   opsize, operands[1].opr.val)));
                   opsize, operands[1].opr.val)));
               end;
               end;
-           OPR_REGISTER:  
+           OPR_REGISTER:
               p.concat((taicpu.op_reg(opcode,opsize,operands[1].opr.reg)));
               p.concat((taicpu.op_reg(opcode,opsize,operands[1].opr.reg)));
            OPR_REFERENCE:
            OPR_REFERENCE:
               if opsize <> S_NO then
               if opsize <> S_NO then
@@ -1893,7 +1893,7 @@ type
                   else
                   else
                     Message(asmr_e_invalid_opcode_and_operand);
                     Message(asmr_e_invalid_opcode_and_operand);
                 end;
                 end;
-           OPR_NONE: 
+           OPR_NONE:
                 Message(asmr_e_invalid_opcode_and_operand);
                 Message(asmr_e_invalid_opcode_and_operand);
           else
           else
            Begin
            Begin
@@ -2177,7 +2177,7 @@ type
                     else
                     else
                       instr.ConcatInstruction(curlist);
                       instr.ConcatInstruction(curlist);
                     instr.Free;
                     instr.Free;
-{        
+{
                    instr.init;
                    instr.init;
                    BuildOpcode;
                    BuildOpcode;
                    instr.ops := operandnum;
                    instr.ops := operandnum;
@@ -2225,7 +2225,10 @@ Begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.7  2002-09-03 19:04:18  daniel
+  Revision 1.8  2002-09-07 15:25:13  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.7  2002/09/03 19:04:18  daniel
     * Fixed PowerPC & M68000 compilation
     * Fixed PowerPC & M68000 compilation
 
 
   Revision 1.6  2002/08/13 18:58:54  carl
   Revision 1.6  2002/08/13 18:58:54  carl
@@ -2253,57 +2256,5 @@ end.
   Revision 1.1  2002/08/06 15:15:42  carl
   Revision 1.1  2002/08/06 15:15:42  carl
     + more m68k fixes
     + more m68k fixes
 
 
-  Revision 1.1.2.7  2001/08/09 11:41:08  pierre
-   + add more errors
-
-  Revision 1.1.2.6  2001/08/08 12:21:49  pierre
-   * generate correct labeled instruction for DBRA
-   * improoved checking of operands
-   + support for OPR_SYMBOL in generic instructions like MOVE
-   + support for labels in constants like movel #datalabel + const,d0
-
-  Revision 1.1.2.5  2001/08/07 15:55:33  pierre
-   + new code for NetBSD, behaves like FreeBSD for now
-
-  Revision 1.1.2.4  2001/08/01 10:58:50  pierre
-   * avoid warning about supposed external in asm label is already known
-
-  Revision 1.1.2.3  2001/07/24 23:41:32  pierre
-   * firstreg and lastreg renamed firstasmreg and lastasmreg to aviod confusions
-
-  Revision 1.1.2.2  2001/04/24 11:58:37  carl
-  * correction of DBRA problems
-
-  Revision 1.1.2.1  2001/03/04 02:19:54  carl
-  - renamefest!
-
-  Revision 1.1.2.1  2001/02/25 01:32:56  carl
-  - imported from mian directory
-
-  Revision 1.1.2.2  2001/02/23 11:20:40  pierre
-   * fix an update problem
-
-  Revision 1.1.2.1  2001/02/23 10:05:19  pierre
-   * first bunch of m68k cpu updates
-
-  Revision 1.1  2000/07/13 06:29:56  michael
-  + Initial import
-
-  Revision 1.13  2000/02/09 13:23:02  peter
-    * log truncated
-
-  Revision 1.12  2000/01/07 01:14:37  peter
-    * updated copyright to 2000
-
-  Revision 1.11  1999/11/10 00:06:08  pierre
-   * adapted to procinfo as pointer
-
-  Revision 1.10  1999/11/09 23:06:46  peter
-    * esi_offset -> selfpointer_offset to be newcg compatible
-    * hcogegen -> cgbase fixes for newcg
-
-  Revision 1.9  1999/09/16 23:05:56  florian
-    * m68k compiler is again compilable (only gas writer, no assembler reader)
-
 }
 }
 
 

+ 15 - 12
compiler/m68k/rgcpu.pas

@@ -46,7 +46,7 @@ unit rgcpu;
              const saved : tpushedsaved);override;
              const saved : tpushedsaved);override;
           procedure saveusedregisters(list: taasmoutput;
           procedure saveusedregisters(list: taasmoutput;
         var saved : tpushedsaved; const s: tregisterset);override;
         var saved : tpushedsaved; const s: tregisterset);override;
-             
+
        end;
        end;
 
 
   implementation
   implementation
@@ -59,21 +59,21 @@ unit rgcpu;
          ungetregistergen(list,r,usableregsaddr,unusedregsaddr,
          ungetregistergen(list,r,usableregsaddr,unusedregsaddr,
            countunusedregsaddr);
            countunusedregsaddr);
        end;
        end;
-       
-       
-     function trgcpu.getaddressregister(list: taasmoutput): tregister; 
+
+
+     function trgcpu.getaddressregister(list: taasmoutput): tregister;
        begin
        begin
          result := getregistergen(list,firstsaveaddrreg,lastsaveaddrreg,
          result := getregistergen(list,firstsaveaddrreg,lastsaveaddrreg,
                    unusedregsaddr,countunusedregsaddr);
                    unusedregsaddr,countunusedregsaddr);
        end;
        end;
-       
+
 
 
      function trgcpu.isaddressregister(reg: tregister): boolean;
      function trgcpu.isaddressregister(reg: tregister): boolean;
        begin
        begin
          isaddressregister := reg in addrregs;
          isaddressregister := reg in addrregs;
        end;
        end;
-       
-       
+
+
     procedure trgcpu.resetusableregisters;
     procedure trgcpu.resetusableregisters;
 
 
       begin
       begin
@@ -82,8 +82,8 @@ unit rgcpu;
         countusableregsaddr := cpubase.c_countusableregsaddr;
         countusableregsaddr := cpubase.c_countusableregsaddr;
         usableregsaddr := cpubase.usableregsaddr;
         usableregsaddr := cpubase.usableregsaddr;
       end;
       end;
-       
-       
+
+
     procedure trgcpu.restoreusedregisters(list : taasmoutput;
     procedure trgcpu.restoreusedregisters(list : taasmoutput;
         const saved : tpushedsaved);
         const saved : tpushedsaved);
       var
       var
@@ -141,9 +141,9 @@ unit rgcpu;
                 inc(countunusedregsint);
                 inc(countunusedregsint);
               end;
               end;
           end;
           end;
-        
+
       end;
       end;
-         
+
 
 
 initialization
 initialization
   rg := trgcpu.create;
   rg := trgcpu.create;
@@ -151,7 +151,10 @@ end.
 
 
 {
 {
   $Log$
   $Log$
-  Revision 1.3  2002-08-23 16:14:50  peter
+  Revision 1.4  2002-09-07 15:25:14  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.3  2002/08/23 16:14:50  peter
     * tempgen cleanup
     * tempgen cleanup
     * tt_noreuse temp type added that will be used in genentrycode
     * tt_noreuse temp type added that will be used in genentrycode
 
 

+ 13 - 13
compiler/nadd.pas

@@ -50,7 +50,7 @@ interface
             where the emulation switches is on. Otherwise
             where the emulation switches is on. Otherwise
             returns nil, and everything must be done in
             returns nil, and everything must be done in
             the code generation phase.
             the code generation phase.
-          }  
+          }
           function first_addfloat : tnode; virtual;
           function first_addfloat : tnode; virtual;
        end;
        end;
        taddnodeclass = class of taddnode;
        taddnodeclass = class of taddnode;
@@ -1422,8 +1422,8 @@ implementation
         right := nil;
         right := nil;
         firstpass(result);
         firstpass(result);
       end;
       end;
-      
-      
+
+
     function taddnode.first_addfloat: tnode;
     function taddnode.first_addfloat: tnode;
       var
       var
         procname: string[31];
         procname: string[31];
@@ -1436,11 +1436,11 @@ implementation
         notnode := false;
         notnode := false;
         { In non-emulation mode, real opcodes are
         { In non-emulation mode, real opcodes are
           emitted for floating point values.
           emitted for floating point values.
-        }  
+        }
         if not (cs_fp_emulation in aktmoduleswitches) then
         if not (cs_fp_emulation in aktmoduleswitches) then
           exit;
           exit;
-          
-        procname := 'FPC_REAL_';  
+
+        procname := 'FPC_REAL_';
         case nodetype of
         case nodetype of
           addn : procname := procname + 'ADD';
           addn : procname := procname + 'ADD';
           muln : procname := procname + 'MUL';
           muln : procname := procname + 'MUL';
@@ -1448,7 +1448,7 @@ implementation
           slashn : procname := procname + 'DIV';
           slashn : procname := procname + 'DIV';
           ltn : procname := procname + 'LESS_THAN';
           ltn : procname := procname + 'LESS_THAN';
           lten: procname := procname + 'LESS_EQUAL_THAN';
           lten: procname := procname + 'LESS_EQUAL_THAN';
-          gtn: 
+          gtn:
             begin
             begin
              procname := procname + 'LESS_EQUAL_THAN';
              procname := procname + 'LESS_EQUAL_THAN';
              notnode := true;
              notnode := true;
@@ -1459,7 +1459,7 @@ implementation
               notnode := true;
               notnode := true;
             end;
             end;
           equaln: procname := procname + 'EQUAL';
           equaln: procname := procname + 'EQUAL';
-          unequaln : 
+          unequaln :
             begin
             begin
               procname := procname + 'EQUAL';
               procname := procname + 'EQUAL';
               notnode := true;
               notnode := true;
@@ -1478,7 +1478,7 @@ implementation
         right := nil;
         right := nil;
         firstpass(result);
         firstpass(result);
       end;
       end;
-      
+
 
 
     function taddnode.pass_1 : tnode;
     function taddnode.pass_1 : tnode;
       var
       var
@@ -1814,7 +1814,10 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.64  2002-09-07 12:16:05  carl
+  Revision 1.65  2002-09-07 15:25:02  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.64  2002/09/07 12:16:05  carl
     * second part bug report 1996 fix, testrange in cordconstnode
     * second part bug report 1996 fix, testrange in cordconstnode
       only called if option is set (also make parsing a tiny faster)
       only called if option is set (also make parsing a tiny faster)
 
 
@@ -1927,7 +1930,4 @@ end.
       with string operations
       with string operations
     * adapted some routines to use the new cg methods
     * adapted some routines to use the new cg methods
 
 
-  Revision 1.43  2002/03/30 23:12:09  carl
-  * avoid crash with procinfo ('merged')
-
 }
 }

+ 4 - 112
compiler/ncal.pas

@@ -2595,7 +2595,10 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.97  2002-09-07 12:16:05  carl
+  Revision 1.98  2002-09-07 15:25:02  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.97  2002/09/07 12:16:05  carl
     * second part bug report 1996 fix, testrange in cordconstnode
     * second part bug report 1996 fix, testrange in cordconstnode
       only called if option is set (also make parsing a tiny faster)
       only called if option is set (also make parsing a tiny faster)
 
 
@@ -2685,115 +2688,4 @@ end.
   Revision 1.78  2002/07/04 20:43:00  florian
   Revision 1.78  2002/07/04 20:43:00  florian
     * first x86-64 patches
     * first x86-64 patches
 
 
-  Revision 1.77  2002/07/01 16:23:52  peter
-    * cg64 patch
-    * basics for currency
-    * asnode updates for class and interface (not finished)
-
-  Revision 1.76  2002/05/18 13:34:09  peter
-    * readded missing revisions
-
-  Revision 1.75  2002/05/16 19:46:37  carl
-  + defines.inc -> fpcdefs.inc to avoid conflicts if compiling by hand
-  + try to fix temp allocation (still in ifdef)
-  + generic constructor calls
-  + start of tassembler / tmodulebase class cleanup
-
-  Revision 1.73  2002/05/12 16:53:06  peter
-    * moved entry and exitcode to ncgutil and cgobj
-    * foreach gets extra argument for passing local data to the
-      iterator function
-    * -CR checks also class typecasts at runtime by changing them
-      into as
-    * fixed compiler to cycle with the -CR option
-    * fixed stabs with elf writer, finally the global variables can
-      be watched
-    * removed a lot of routines from cga unit and replaced them by
-      calls to cgobj
-    * u32bit-s32bit updates for and,or,xor nodes. When one element is
-      u32bit then the other is typecasted also to u32bit without giving
-      a rangecheck warning/error.
-    * fixed pascal calling method with reversing also the high tree in
-      the parast, detected by tcalcst3 test
-
-  Revision 1.72  2002/04/25 20:16:38  peter
-    * moved more routines from cga/n386util
-
-  Revision 1.71  2002/04/20 21:32:23  carl
-  + generic FPC_CHECKPOINTER
-  + first parameter offset in stack now portable
-  * rename some constants
-  + move some cpu stuff to other units
-  - remove unused constents
-  * fix stacksize for some targets
-  * fix generic size problems which depend now on EXTEND_SIZE constant
-
-  Revision 1.70  2002/04/16 16:09:08  peter
-    * allow passing the address of a procedure to a formal parameter
-      in delphi mode
-
-  Revision 1.69  2002/04/15 19:44:19  peter
-    * fixed stackcheck that would be called recursively when a stack
-      error was found
-    * generic changeregsize(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 :-)
-
-  Revision 1.68  2002/04/15 18:57:22  carl
-  + target_info.size_of_pointer -> POINTER_SIZE
-
-  Revision 1.67  2002/04/02 17:11:28  peter
-    * tlocation,treference update
-    * LOC_CONSTANT added for better constant handling
-    * secondadd splitted in multiple routines
-    * location_force_reg added for loading a location to a register
-      of a specified size
-    * secondassignment parses now first the right and then the left node
-      (this is compatible with Kylix). This saves a lot of push/pop especially
-      with string operations
-    * adapted some routines to use the new cg methods
-
-  Revision 1.66  2002/03/31 20:26:33  jonas
-    + a_loadfpu_* and a_loadmm_* methods in tcg
-    * register allocation is now handled by a class and is mostly processor
-      independent (+rgobj.pas and i386/rgcpu.pas)
-    * temp allocation is now handled by a class (+tgobj.pas, -i386\tgcpu.pas)
-    * some small improvements and fixes to the optimizer
-    * some register allocation fixes
-    * some fpuvaroffset fixes in the unary minus node
-    * push/popusedregisters is now called rg.save/restoreusedregisters and
-      (for i386) uses temps instead of push/pop's when using -Op3 (that code is
-      also better optimizable)
-    * fixed and optimized register saving/restoring for new/dispose nodes
-    * LOC_FPU locations now also require their "register" field to be set to
-      R_ST, not R_ST0 (the latter is used for LOC_CFPUREGISTER locations only)
-    - list field removed of the tnode class because it's not used currently
-      and can cause hard-to-find bugs
-
-  Revision 1.65  2002/03/30 23:02:42  carl
-  * avoid crash with inline routines
-
-  Revision 1.64  2002/01/24 18:25:48  peter
-   * implicit result variable generation for assembler routines
-   * removed m_tp modeswitch, use m_tp7 or not(m_fpc) instead
-
-  Revision 1.63  2002/01/24 12:33:52  jonas
-    * adapted ranges of native types to int64 (e.g. high cardinal is no
-      longer longint($ffffffff), but just $fffffff in psystem)
-    * small additional fix in 64bit rangecheck code generation for 32 bit
-      processors
-    * adaption of ranges required the matching talgorithm used for selecting
-      which overloaded procedure to call to be adapted. It should now always
-      select the closest match for ordinal parameters.
-    + inttostr(qword) in sysstr.inc/sysstrh.inc
-    + abs(int64), sqr(int64), sqr(qword) in systemh.inc/generic.inc (previous
-      fixes were required to be able to add them)
-    * is_in_limit() moved from ncal to types unit, should always be used
-      instead of direct comparisons of low/high values of orddefs because
-      qword is a special case
-
-  Revision 1.62  2002/01/19 11:57:05  peter
-    * fixed path appending for lib
-
 }
 }

+ 4 - 3
compiler/ncgcal.pas

@@ -1483,7 +1483,10 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.21  2002-09-07 11:50:02  jonas
+  Revision 1.22  2002-09-07 15:25:02  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.21  2002/09/07 11:50:02  jonas
     * fixed small regalloction info bug
     * fixed small regalloction info bug
 
 
   Revision 1.20  2002/09/02 11:25:20  florian
   Revision 1.20  2002/09/02 11:25:20  florian
@@ -1575,6 +1578,4 @@ end.
   Revision 1.2  2002/07/13 19:38:43  florian
   Revision 1.2  2002/07/13 19:38:43  florian
     * some more generic calling stuff fixed
     * some more generic calling stuff fixed
 
 
-  Revision 1.1  2002/07/11 14:41:28  florian
-    * start of the new generic parameter handling
 }
 }

+ 4 - 36
compiler/ncgcnv.pas

@@ -496,7 +496,10 @@ end.
 
 
 {
 {
   $Log$
   $Log$
-  Revision 1.29  2002-09-02 18:46:00  peter
+  Revision 1.30  2002-09-07 15:25:02  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.29  2002/09/02 18:46:00  peter
     * reuse a reference when resizing ordinal values to smaller sizes,
     * reuse a reference when resizing ordinal values to smaller sizes,
       this is required for constructions like byte(w):=1 that are
       this is required for constructions like byte(w):=1 that are
       allowed in tp mode only
       allowed in tp mode only
@@ -604,39 +607,4 @@ end.
     * fixed returnvalue handling
     * fixed returnvalue handling
     * fixed default stacksize of linux and go32v2, 8kb was a bit small :-)
     * fixed default stacksize of linux and go32v2, 8kb was a bit small :-)
 
 
-  Revision 1.8  2002/04/06 18:10:42  jonas
-    * several powerpc-related additions and fixes
-
-  Revision 1.7  2002/04/04 19:05:57  peter
-    * removed unused units
-    * use tlocation.size in cg.a_*loc*() routines
-
-  Revision 1.6  2002/04/02 17:11:28  peter
-    * tlocation,treference update
-    * LOC_CONSTANT added for better constant handling
-    * secondadd splitted in multiple routines
-    * location_force_reg added for loading a location to a register
-      of a specified size
-    * secondassignment parses now first the right and then the left node
-      (this is compatible with Kylix). This saves a lot of push/pop especially
-      with string operations
-    * adapted some routines to use the new cg methods
-
-  Revision 1.5  2002/03/31 20:26:34  jonas
-    + a_loadfpu_* and a_loadmm_* methods in tcg
-    * register allocation is now handled by a class and is mostly processor
-      independent (+rgobj.pas and i386/rgcpu.pas)
-    * temp allocation is now handled by a class (+tgobj.pas, -i386\tgcpu.pas)
-    * some small improvements and fixes to the optimizer
-    * some register allocation fixes
-    * some fpuvaroffset fixes in the unary minus node
-    * push/popusedregisters is now called rg.save/restoreusedregisters and
-      (for i386) uses temps instead of push/pop's when using -Op3 (that code is
-      also better optimizable)
-    * fixed and optimized register saving/restoring for new/dispose nodes
-    * LOC_FPU locations now also require their "register" field to be set to
-      R_ST, not R_ST0 (the latter is used for LOC_CFPUREGISTER locations only)
-    - list field removed of the tnode class because it's not used currently
-      and can cause hard-to-find bugs
-
 }
 }

+ 4 - 91
compiler/ncgflw.pas

@@ -1238,7 +1238,10 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.41  2002-09-01 18:47:00  peter
+  Revision 1.42  2002-09-07 15:25:02  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.41  2002/09/01 18:47:00  peter
     * assignn check in exitnode changed to use a separate boolean as the
     * assignn check in exitnode changed to use a separate boolean as the
       assignn can be changed to a calln
       assignn can be changed to a calln
 
 
@@ -1331,94 +1334,4 @@ end.
   Revision 1.22  2002/07/04 20:43:01  florian
   Revision 1.22  2002/07/04 20:43:01  florian
     * first x86-64 patches
     * first x86-64 patches
 
 
-  Revision 1.21  2002/07/01 18:46:22  peter
-    * internal linker
-    * reorganized aasm layer
-
-  Revision 1.20  2002/07/01 16:23:53  peter
-    * cg64 patch
-    * basics for currency
-    * asnode updates for class and interface (not finished)
-
-  Revision 1.19  2002/05/20 13:30:40  carl
-  * bugfix of hdisponen (base must be set, not index)
-  * more portability fixes
-
-  Revision 1.18  2002/05/18 13:34:09  peter
-    * readded missing revisions
-
-  Revision 1.17  2002/05/16 19:46:37  carl
-  + defines.inc -> fpcdefs.inc to avoid conflicts if compiling by hand
-  + try to fix temp allocation (still in ifdef)
-  + generic constructor calls
-  + start of tassembler / tmodulebase class cleanup
-
-  Revision 1.15  2002/05/13 19:54:37  peter
-    * removed n386ld and n386util units
-    * maybe_save/maybe_restore added instead of the old maybe_push
-
-  Revision 1.14  2002/05/12 16:53:07  peter
-    * moved entry and exitcode to ncgutil and cgobj
-    * foreach gets extra argument for passing local data to the
-      iterator function
-    * -CR checks also class typecasts at runtime by changing them
-      into as
-    * fixed compiler to cycle with the -CR option
-    * fixed stabs with elf writer, finally the global variables can
-      be watched
-    * removed a lot of routines from cga unit and replaced them by
-      calls to cgobj
-    * u32bit-s32bit updates for and,or,xor nodes. When one element is
-      u32bit then the other is typecasted also to u32bit without giving
-      a rangecheck warning/error.
-    * fixed pascal calling method with reversing also the high tree in
-      the parast, detected by tcalcst3 test
-
-  Revision 1.13  2002/04/21 15:24:38  carl
-  + a_jmp_cond -> a_jmp_always (a_jmp_cond is NOT portable)
-  + changeregsize -> rg.makeregsize
-
-  Revision 1.12  2002/04/15 19:44:19  peter
-    * fixed stackcheck that would be called recursively when a stack
-      error was found
-    * generic changeregsize(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 :-)
-
-  Revision 1.11  2002/04/04 19:05:57  peter
-    * removed unused units
-    * use tlocation.size in cg.a_*loc*() routines
-
-  Revision 1.10  2002/04/02 17:11:28  peter
-    * tlocation,treference update
-    * LOC_CONSTANT added for better constant handling
-    * secondadd splitted in multiple routines
-    * location_force_reg added for loading a location to a register
-      of a specified size
-    * secondassignment parses now first the right and then the left node
-      (this is compatible with Kylix). This saves a lot of push/pop especially
-      with string operations
-    * adapted some routines to use the new cg methods
-
-  Revision 1.9  2002/03/31 20:26:34  jonas
-    + a_loadfpu_* and a_loadmm_* methods in tcg
-    * register allocation is now handled by a class and is mostly processor
-      independent (+rgobj.pas and i386/rgcpu.pas)
-    * temp allocation is now handled by a class (+tgobj.pas, -i386\tgcpu.pas)
-    * some small improvements and fixes to the optimizer
-    * some register allocation fixes
-    * some fpuvaroffset fixes in the unary minus node
-    * push/popusedregisters is now called rg.save/restoreusedregisters and
-      (for i386) uses temps instead of push/pop's when using -Op3 (that code is
-      also better optimizable)
-    * fixed and optimized register saving/restoring for new/dispose nodes
-    * LOC_FPU locations now also require their "register" field to be set to
-      R_ST, not R_ST0 (the latter is used for LOC_CFPUREGISTER locations only)
-    - list field removed of the tnode class because it's not used currently
-      and can cause hard-to-find bugs
-
-  Revision 1.8  2002/03/04 19:10:11  peter
-    * removed compiler warnings
-
 }
 }

+ 4 - 46
compiler/ncgld.pas

@@ -946,7 +946,10 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.28  2002-09-01 19:26:32  peter
+  Revision 1.29  2002-09-07 15:25:03  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.28  2002/09/01 19:26:32  peter
     * fixed register variable loading from parasymtable, the call by
     * fixed register variable loading from parasymtable, the call by
       reference code was moved wrong
       reference code was moved wrong
 
 
@@ -1031,49 +1034,4 @@ end.
   * bugfix of hdisponen (base must be set, not index)
   * bugfix of hdisponen (base must be set, not index)
   * more portability fixes
   * more portability fixes
 
 
-  Revision 1.8  2002/05/18 13:34:09  peter
-    * readded missing revisions
-
-  Revision 1.7  2002/05/18 11:17:03  peter
-    * fixed internalerror due to releasing an not initialized register
-
-  Revision 1.6  2002/05/16 19:46:37  carl
-  + defines.inc -> fpcdefs.inc to avoid conflicts if compiling by hand
-  + try to fix temp allocation (still in ifdef)
-  + generic constructor calls
-  + start of tassembler / tmodulebase class cleanup
-
-  Revision 1.5  2002/05/14 19:34:42  peter
-    * removed old logs and updated copyright year
-
-  Revision 1.4  2002/05/13 19:54:37  peter
-    * removed n386ld and n386util units
-    * maybe_save/maybe_restore added instead of the old maybe_push
-
-  Revision 1.3  2002/05/12 16:53:07  peter
-    * moved entry and exitcode to ncgutil and cgobj
-    * foreach gets extra argument for passing local data to the
-      iterator function
-    * -CR checks also class typecasts at runtime by changing them
-      into as
-    * fixed compiler to cycle with the -CR option
-    * fixed stabs with elf writer, finally the global variables can
-      be watched
-    * removed a lot of routines from cga unit and replaced them by
-      calls to cgobj
-    * u32bit-s32bit updates for and,or,xor nodes. When one element is
-      u32bit then the other is typecasted also to u32bit without giving
-      a rangecheck warning/error.
-    * fixed pascal calling method with reversing also the high tree in
-      the parast, detected by tcalcst3 test
-
-  Revision 1.2  2002/04/21 15:24:38  carl
-  + a_jmp_cond -> a_jmp_always (a_jmp_cond is NOT portable)
-  + changeregsize -> rg.makeregsize
-
-  Revision 1.1  2002/04/19 15:39:34  peter
-    * removed some more routines from cga
-    * moved location_force_reg/mem to ncgutil
-    * moved arrayconstructnode secondpass to ncgld
-
 }
 }

+ 4 - 29
compiler/ncgmem.pas

@@ -864,7 +864,10 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.26  2002-09-01 18:46:01  peter
+  Revision 1.27  2002-09-07 15:25:03  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.26  2002/09/01 18:46:01  peter
     * fixed generic tcgvecnode
     * fixed generic tcgvecnode
     * move code that updates a reference with index register and multiplier
     * move code that updates a reference with index register and multiplier
       to separate method so it can be overriden for scaled indexing
       to separate method so it can be overriden for scaled indexing
@@ -968,32 +971,4 @@ end.
     * removed unused units
     * removed unused units
     * use tlocation.size in cg.a_*loc*() routines
     * use tlocation.size in cg.a_*loc*() routines
 
 
-  Revision 1.5  2002/04/02 17:11:28  peter
-    * tlocation,treference update
-    * LOC_CONSTANT added for better constant handling
-    * secondadd splitted in multiple routines
-    * location_force_reg added for loading a location to a register
-      of a specified size
-    * secondassignment parses now first the right and then the left node
-      (this is compatible with Kylix). This saves a lot of push/pop especially
-      with string operations
-    * adapted some routines to use the new cg methods
-
-  Revision 1.4  2002/03/31 20:26:34  jonas
-    + a_loadfpu_* and a_loadmm_* methods in tcg
-    * register allocation is now handled by a class and is mostly processor
-      independent (+rgobj.pas and i386/rgcpu.pas)
-    * temp allocation is now handled by a class (+tgobj.pas, -i386\tgcpu.pas)
-    * some small improvements and fixes to the optimizer
-    * some register allocation fixes
-    * some fpuvaroffset fixes in the unary minus node
-    * push/popusedregisters is now called rg.save/restoreusedregisters and
-      (for i386) uses temps instead of push/pop's when using -Op3 (that code is
-      also better optimizable)
-    * fixed and optimized register saving/restoring for new/dispose nodes
-    * LOC_FPU locations now also require their "register" field to be set to
-      R_ST, not R_ST0 (the latter is used for LOC_CFPUREGISTER locations only)
-    - list field removed of the tnode class because it's not used currently
-      and can cause hard-to-find bugs
-
 }
 }

+ 4 - 135
compiler/ncgutil.pas

@@ -1792,7 +1792,10 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.47  2002-09-02 18:44:48  peter
+  Revision 1.48  2002-09-07 15:25:03  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.47  2002/09/02 18:44:48  peter
     * fixed (not) pushing of empty parameters
     * fixed (not) pushing of empty parameters
     * fixed implicit initialization/finalization generation
     * fixed implicit initialization/finalization generation
     * fixed/optimized local copy of value arguments init/final
     * fixed/optimized local copy of value arguments init/final
@@ -1888,138 +1891,4 @@ end.
     * more fixes for the ppc
     * more fixes for the ppc
     + wrappers for the tcnvnode.first_* stuff introduced
     + wrappers for the tcnvnode.first_* stuff introduced
 
 
-  Revision 1.27  2002/07/28 15:59:57  jonas
-    * fixed bug in location_force_reg32() when converting smaller values to
-      64 bit locations
-    * use cg.op_const_reg_reg() instead of a move and then cg.op_const_reg()
-      in location_force_reg32()
-
-  Revision 1.26  2002/07/27 19:53:51  jonas
-    + generic implementation of tcg.g_flags2ref()
-    * tcg.flags2xxx() now also needs a size parameter
-
-  Revision 1.25  2002/07/26 21:15:38  florian
-    * rewrote the system handling
-
-  Revision 1.24  2002/07/25 17:58:24  carl
-    + FPURESULTREG -> FPU_RESULT_REG
-
-  Revision 1.23  2002/07/20 11:57:54  florian
-    * types.pas renamed to defbase.pas because D6 contains a types
-      unit so this would conflicts if D6 programms are compiled
-    + Willamette/SSE2 instructions to assembler added
-
-  Revision 1.22  2002/07/11 14:41:28  florian
-    * start of the new generic parameter handling
-
-  Revision 1.21  2002/07/11 07:33:25  jonas
-    * big-endian fixes for location_force_reg*()
-
-  Revision 1.20  2002/07/07 09:52:32  florian
-    * powerpc target fixed, very simple units can be compiled
-    * some basic stuff for better callparanode handling, far from being finished
-
-  Revision 1.19  2002/07/01 18:46:23  peter
-    * internal linker
-    * reorganized aasm layer
-
-  Revision 1.18  2002/07/01 16:23:53  peter
-    * cg64 patch
-    * basics for currency
-    * asnode updates for class and interface (not finished)
-
-  Revision 1.17  2002/05/20 13:30:40  carl
-  * bugfix of hdisponen (base must be set, not index)
-  * more portability fixes
-
-  Revision 1.16  2002/05/18 13:34:09  peter
-    * readded missing revisions
-
-  Revision 1.15  2002/05/16 19:46:37  carl
-  + defines.inc -> fpcdefs.inc to avoid conflicts if compiling by hand
-  + try to fix temp allocation (still in ifdef)
-  + generic constructor calls
-  + start of tassembler / tmodulebase class cleanup
-
-  Revision 1.13  2002/05/13 19:54:37  peter
-    * removed n386ld and n386util units
-    * maybe_save/maybe_restore added instead of the old maybe_push
-
-  Revision 1.12  2002/05/12 19:58:36  carl
-  * some small portability fixes
-
-  Revision 1.11  2002/05/12 16:53:07  peter
-    * moved entry and exitcode to ncgutil and cgobj
-    * foreach gets extra argument for passing local data to the
-      iterator function
-    * -CR checks also class typecasts at runtime by changing them
-      into as
-    * fixed compiler to cycle with the -CR option
-    * fixed stabs with elf writer, finally the global variables can
-      be watched
-    * removed a lot of routines from cga unit and replaced them by
-      calls to cgobj
-    * u32bit-s32bit updates for and,or,xor nodes. When one element is
-      u32bit then the other is typecasted also to u32bit without giving
-      a rangecheck warning/error.
-    * fixed pascal calling method with reversing also the high tree in
-      the parast, detected by tcalcst3 test
-
-  Revision 1.10  2002/04/21 19:02:03  peter
-    * removed newn and disposen nodes, the code is now directly
-      inlined from pexpr
-    * -an option that will write the secondpass nodes to the .s file, this
-      requires EXTDEBUG define to actually write the info
-    * fixed various internal errors and crashes due recent code changes
-
-  Revision 1.9  2002/04/21 15:24:38  carl
-  + a_jmp_cond -> a_jmp_always (a_jmp_cond is NOT portable)
-  + changeregsize -> rg.makeregsize
-
-  Revision 1.8  2002/04/19 15:39:34  peter
-    * removed some more routines from cga
-    * moved location_force_reg/mem to ncgutil
-    * moved arrayconstructnode secondpass to ncgld
-
-  Revision 1.7  2002/04/15 18:58:47  carl
-  + target_info.size_of_pointer -> pointer_Size
-
-  Revision 1.6  2002/04/06 18:10:42  jonas
-    * several powerpc-related additions and fixes
-
-  Revision 1.5  2002/04/04 19:05:57  peter
-    * removed unused units
-    * use tlocation.size in cg.a_*loc*() routines
-
-  Revision 1.4  2002/04/02 17:11:28  peter
-    * tlocation,treference update
-    * LOC_CONSTANT added for better constant handling
-    * secondadd splitted in multiple routines
-    * location_force_reg added for loading a location to a register
-      of a specified size
-    * secondassignment parses now first the right and then the left node
-      (this is compatible with Kylix). This saves a lot of push/pop especially
-      with string operations
-    * adapted some routines to use the new cg methods
-
-  Revision 1.3  2002/03/31 20:26:34  jonas
-    + a_loadfpu_* and a_loadmm_* methods in tcg
-    * register allocation is now handled by a class and is mostly processor
-      independent (+rgobj.pas and i386/rgcpu.pas)
-    * temp allocation is now handled by a class (+tgobj.pas, -i386\tgcpu.pas)
-    * some small improvements and fixes to the optimizer
-    * some register allocation fixes
-    * some fpuvaroffset fixes in the unary minus node
-    * push/popusedregisters is now called rg.save/restoreusedregisters and
-      (for i386) uses temps instead of push/pop's when using -Op3 (that code is
-      also better optimizable)
-    * fixed and optimized register saving/restoring for new/dispose nodes
-    * LOC_FPU locations now also require their "register" field to be set to
-      R_ST, not R_ST0 (the latter is used for LOC_CFPUREGISTER locations only)
-    - list field removed of the tnode class because it's not used currently
-      and can cause hard-to-find bugs
-
-  Revision 1.2  2002/03/04 19:10:11  peter
-    * removed compiler warnings
-
 }
 }

+ 4 - 60
compiler/ncnv.pas

@@ -2037,7 +2037,10 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.78  2002-09-07 12:16:04  carl
+  Revision 1.79  2002-09-07 15:25:03  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.78  2002/09/07 12:16:04  carl
     * second part bug report 1996 fix, testrange in cordconstnode
     * second part bug report 1996 fix, testrange in cordconstnode
       only called if option is set (also make parsing a tiny faster)
       only called if option is set (also make parsing a tiny faster)
 
 
@@ -2118,63 +2121,4 @@ end.
   Revision 1.58  2002/05/18 13:34:09  peter
   Revision 1.58  2002/05/18 13:34:09  peter
     * readded missing revisions
     * readded missing revisions
 
 
-  Revision 1.57  2002/05/16 19:46:37  carl
-  + defines.inc -> fpcdefs.inc to avoid conflicts if compiling by hand
-  + try to fix temp allocation (still in ifdef)
-  + generic constructor calls
-  + start of tassembler / tmodulebase class cleanup
-
-  Revision 1.55  2002/05/12 16:53:07  peter
-    * moved entry and exitcode to ncgutil and cgobj
-    * foreach gets extra argument for passing local data to the
-      iterator function
-    * -CR checks also class typecasts at runtime by changing them
-      into as
-    * fixed compiler to cycle with the -CR option
-    * fixed stabs with elf writer, finally the global variables can
-      be watched
-    * removed a lot of routines from cga unit and replaced them by
-      calls to cgobj
-    * u32bit-s32bit updates for and,or,xor nodes. When one element is
-      u32bit then the other is typecasted also to u32bit without giving
-      a rangecheck warning/error.
-    * fixed pascal calling method with reversing also the high tree in
-      the parast, detected by tcalcst3 test
-
-  Revision 1.54  2002/04/25 20:16:38  peter
-    * moved more routines from cga/n386util
-
-  Revision 1.53  2002/04/23 19:16:34  peter
-    * add pinline unit that inserts compiler supported functions using
-      one or more statements
-    * moved finalize and setlength from ninl to pinline
-
-  Revision 1.52  2002/04/21 19:02:03  peter
-    * removed newn and disposen nodes, the code is now directly
-      inlined from pexpr
-    * -an option that will write the secondpass nodes to the .s file, this
-      requires EXTDEBUG define to actually write the info
-    * fixed various internal errors and crashes due recent code changes
-
-  Revision 1.51  2002/04/06 18:10:42  jonas
-    * several powerpc-related additions and fixes
-
-  Revision 1.50  2002/04/04 19:05:58  peter
-    * removed unused units
-    * use tlocation.size in cg.a_*loc*() routines
-
-  Revision 1.49  2002/04/02 17:11:28  peter
-    * tlocation,treference update
-    * LOC_CONSTANT added for better constant handling
-    * secondadd splitted in multiple routines
-    * location_force_reg added for loading a location to a register
-      of a specified size
-    * secondassignment parses now first the right and then the left node
-      (this is compatible with Kylix). This saves a lot of push/pop especially
-      with string operations
-    * adapted some routines to use the new cg methods
-
-  Revision 1.48  2002/02/03 09:30:03  peter
-    * more fixes for protected handling
-
 }
 }

+ 8 - 5
compiler/ncon.pas

@@ -52,10 +52,10 @@ interface
           restype : ttype;
           restype : ttype;
           value : TConstExprInt;
           value : TConstExprInt;
           rangecheck : boolean;
           rangecheck : boolean;
-          { create an ordinal constant node of the specified type and value. 
+          { create an ordinal constant node of the specified type and value.
             _rangecheck determines if the value of the ordinal should be checked
             _rangecheck determines if the value of the ordinal should be checked
             against the ranges of the type definition.
             against the ranges of the type definition.
-          }  
+          }
           constructor create(v : tconstexprint;const t:ttype; _rangecheck : boolean);virtual;
           constructor create(v : tconstexprint;const t:ttype; _rangecheck : boolean);virtual;
           constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
           constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override;
           procedure ppuwrite(ppufile:tcompilerppufile);override;
           procedure ppuwrite(ppufile:tcompilerppufile);override;
@@ -430,9 +430,9 @@ implementation
         inherited ppuload(t,ppufile);
         inherited ppuload(t,ppufile);
         ppufile.gettype(restype);
         ppufile.gettype(restype);
         value:=ppufile.getexprint;
         value:=ppufile.getexprint;
-        { normally, the value is already compiled, so we don't need 
+        { normally, the value is already compiled, so we don't need
           to do once again a range check
           to do once again a range check
-        }  
+        }
         rangecheck := false;
         rangecheck := false;
       end;
       end;
 
 
@@ -924,7 +924,10 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.41  2002-09-07 12:16:04  carl
+  Revision 1.42  2002-09-07 15:25:03  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.41  2002/09/07 12:16:04  carl
     * second part bug report 1996 fix, testrange in cordconstnode
     * second part bug report 1996 fix, testrange in cordconstnode
       only called if option is set (also make parsing a tiny faster)
       only called if option is set (also make parsing a tiny faster)
 
 

+ 2 - 14
compiler/new/README

@@ -320,18 +320,6 @@ CVS Log
 -------
 -------
 
 
 $Log$
 $Log$
-Revision 1.2  2000-11-30 22:16:51  florian
-  * moved to i386
-
-Revision 1.1  2000/07/13 06:30:07  michael
-+ Initial import
-
-Revision 1.6  2000/03/02 03:22:16  carl
-  + More information and suggestions
-
-Revision 1.5  2000/03/01 15:36:12  florian
-  * some new stuff for the new cg
-
-Revision 1.4  1999/10/14 14:57:54  florian
-  - removed the hcodegen use in the new cg, use cgbase instead
+Revision 1.3  2002-09-07 15:25:14  peter
+  * old logs removed and tabs fixed
 
 

+ 2 - 14
compiler/new/agatt.pas

@@ -620,19 +620,7 @@ unit agatt;
 end.
 end.
 {
 {
  $Log$
  $Log$
- Revision 1.1  2000-07-13 06:30:07  michael
- + Initial import
-
- Revision 1.4  2000/05/01 11:03:32  jonas
-   * some fixes, does not yet compile
-
- Revision 1.3  2000/01/07 01:14:50  peter
-   * updated copyright to 2000
-
- Revision 1.2  1999/09/03 13:08:36  jonas
-   * defined some necessary virtual helper methods
-
- Revision 1.1  1999/08/03 13:48:50  michael
- + Initial implementation
+ Revision 1.2  2002-09-07 15:25:14  peter
+   * old logs removed and tabs fixed
 
 
 }
 }

+ 3 - 28
compiler/new/aopt.pas

@@ -241,32 +241,7 @@ End.
 
 
 {
 {
  $Log$
  $Log$
- Revision 1.1  2000-07-13 06:30:07  michael
- + Initial import
+ Revision 1.2  2002-09-07 15:25:14  peter
+   * old logs removed and tabs fixed
 
 
- Revision 1.5  2000/01/07 01:14:51  peter
-   * updated copyright to 2000
-
- Revision 1.4  1999/11/09 22:57:08  peter
-   * compiles again both i386,alpha both with optimizer
-
- Revision 1.3  1999/08/18 14:32:20  jonas
-   + compilable!
-   + dataflow analyzer finished
-   + start of CSE units
-   + aoptbase which contains a base object for all optimizer objects
-   * some constants and type definitions moved around to avoid circular
-     dependencies
-   * moved some methods from base objects to specialized objects because
-     they're not used anywhere else
-
- Revision 1.2  1999/08/09 14:07:22  jonas
- commit.msg
-
- Revision 1.1  1999/08/08 13:24:50  jonas
-   + added copyright header/GNU license info
-   * made the assembler optimizer almost completely OOP
-   * some code style clean up and extra comments
-   * moved from the new/aopt to the /new and /new/i386 dirs
-
-}
+}

+ 3 - 25
compiler/new/aoptbase.pas

@@ -263,29 +263,7 @@ End.
 
 
 {
 {
   $Log$
   $Log$
-  Revision 1.1  2000-07-13 06:30:07  michael
-  + Initial import
+  Revision 1.2  2002-09-07 15:25:14  peter
+    * old logs removed and tabs fixed
 
 
-  Revision 1.5  2000/01/07 01:14:51  peter
-    * updated copyright to 2000
-
-  Revision 1.4  1999/11/09 22:57:08  peter
-    * compiles again both i386,alpha both with optimizer
-
-  Revision 1.3  1999/09/08 15:01:31  jonas
-    * some small changes so the noew optimizer is again compilable
-
-  Revision 1.2  1999/08/23 14:41:12  jonas
-    + checksequence (processor independent)\n  + processor independent part of docse
-
-  Revision 1.1  1999/08/18 14:32:21  jonas
-    + compilable!
-    + dataflow analyzer finished
-    + start of CSE units
-    + aoptbase which contains a base object for all optimizer objects
-    * some constants and type definitions moved around to avoid circular
-      dependencies
-    * moved some methods from base objects to specialized objects because
-      they're not used anywhere else
-
-}
+}

+ 4 - 29
compiler/new/aoptcs.pas

@@ -850,32 +850,7 @@ End.
 
 
 {
 {
   $Log$
   $Log$
-  Revision 1.1  2000-07-13 06:30:07  michael
-  + Initial import
-
-  Revision 1.5  2000/02/28 17:23:58  daniel
-  * Current work of symtable integration committed. The symtable can be
-    activated by defining 'newst', but doesn't compile yet. Changes in type
-    checking and oop are completed. What is left is to write a new
-    symtablestack and adapt the parser to use it.
-
-  Revision 1.4  2000/01/07 01:14:51  peter
-    * updated copyright to 2000
-
-  Revision 1.3  1999/08/25 12:00:10  jonas
-    * changed pai386, paippc and paiapha (same for tai*) to paicpu (taicpu)
-
-  Revision 1.2  1999/08/23 14:41:13  jonas
-    + checksequence (processor independent)\n  + processor independent part of docse
-
-  Revision 1.1  1999/08/18 14:32:21  jonas
-    + compilable!
-    + dataflow analyzer finished
-    + start of CSE units
-    + aoptbase which contains a base object for all optimizer objects
-    * some constants and type definitions moved around to avoid circular
-      dependencies
-    * moved some methods from base objects to specialized objects because
-      they're not used anywhere else
-
-}
+  Revision 1.2  2002-09-07 15:25:14  peter
+    * old logs removed and tabs fixed
+
+}

+ 4 - 20
compiler/new/aoptda.pas

@@ -177,23 +177,7 @@ End.
 
 
 {
 {
   $Log$
   $Log$
-  Revision 1.1  2000-07-13 06:30:07  michael
-  + Initial import
-
-  Revision 1.6  2000/01/07 01:14:52  peter
-    * updated copyright to 2000
-
-  Revision 1.5  1999/11/09 22:57:08  peter
-    * compiles again both i386,alpha both with optimizer
-
-  Revision 1.4  1999/08/18 14:32:21  jonas
-    + compilable!
-    + dataflow analyzer finished
-    + start of CSE units
-    + aoptbase which contains a base object for all optimizer objects
-    * some constants and type definitions moved around to avoid circular
-      dependencies
-    * moved some methods from base objects to specialized objects because
-      they're not used anywhere else
-
-}
+  Revision 1.2  2002-09-07 15:25:14  peter
+    * old logs removed and tabs fixed
+
+}

+ 3 - 37
compiler/new/aoptobj.pas

@@ -787,41 +787,7 @@ End.
 
 
 {
 {
  $Log$
  $Log$
- Revision 1.2  2000-07-14 05:11:49  michael
- + Patch to 1.1
+ Revision 1.3  2002-09-07 15:25:14  peter
+   * old logs removed and tabs fixed
 
 
- Revision 1.1  2000/07/13 06:30:07  michael
- + Initial import
-
- Revision 1.8  2000/01/07 01:14:52  peter
-   * updated copyright to 2000
-
- Revision 1.7  1999/11/09 22:57:08  peter
-   * compiles again both i386,alpha both with optimizer
-
- Revision 1.6  1999/09/29 13:50:34  jonas
-   * fixes from daopt386.pas integrated
-
- Revision 1.5  1999/08/26 14:50:52  jonas
-   * fixed small type in TP conditional
-
- Revision 1.4  1999/08/18 14:32:22  jonas
-   + compilable!
-   + dataflow analyzer finished
-   + start of CSE units
-   + aoptbase which contains a base object for all optimizer objects
-   * some constants and type definitions moved around to avoid circular
-     dependencies
-   * moved some methods from base objects to specialized objects because
-     they're not used anywhere else
-
- Revision 1.2  1999/08/09 14:07:24  jonas
- commit.msg
-
- Revision 1.1  1999/08/08 13:24:50  jonas
-   + added copyright header/GNU license info
-   * made the assembler optimizer almost completely OOP
-   * some code style clean up and extra comments
-   * moved from the new/aopt to the /new and /new/i386 dirs
-
-}
+}

+ 3 - 28
compiler/new/i386/aoptcpu.pas

@@ -39,32 +39,7 @@ Implementation
 End.
 End.
 {
 {
  $Log$
  $Log$
- Revision 1.1  2000-07-13 06:30:10  michael
- + Initial import
+ Revision 1.2  2002-09-07 15:25:14  peter
+   * old logs removed and tabs fixed
 
 
- Revision 1.6  2000/01/07 01:14:56  peter
-   * updated copyright to 2000
-
- Revision 1.5  1999/08/18 14:32:24  jonas
-   + compilable!
-   + dataflow analyzer finished
-   + start of CSE units
-   + aoptbase which contains a base object for all optimizer objects
-   * some constants and type definitions moved around to avoid circular
-     dependencies
-   * moved some methods from base objects to specialized objects because
-     they're not used anywhere else
-
- Revision 1.4  1999/08/11 14:23:39  jonas
-   * some fixes to RegReadByInstr
-
- Revision 1.3  1999/08/10 12:40:20  jonas
-   + implemented RegReadByInstr
-
- Revision 1.1  1999/08/08 13:24:50  jonas
-   + added copyright header/GNU license info
-   * made the assembler optimizer almost completely OOP
-   * some code style clean up and extra comments
-   * moved from the new/aopt to the /new and /new/i386 dirs
-
-}
+}

+ 2 - 33
compiler/new/i386/aoptcpub.pas

@@ -214,38 +214,7 @@ End.
 
 
 {
 {
  $Log$
  $Log$
- Revision 1.1  2000-07-13 06:30:10  michael
- + Initial import
-
- Revision 1.8  2000/01/07 01:14:56  peter
-   * updated copyright to 2000
-
- Revision 1.7  1999/11/09 22:57:09  peter
-   * compiles again both i386,alpha both with optimizer
-
- Revision 1.6  1999/09/08 15:05:43  jonas
-   * some small changes so the new optimizer is again compilable
-
- Revision 1.5  1999/08/25 12:00:19  jonas
-   * changed pai386, paippc and paiapha (same for tai*) to paicpu (taicpu)
-
- Revision 1.4  1999/08/23 14:41:14  jonas
-   + checksequence (processor independent)\n  + processor independent part of docse
-
- Revision 1.3  1999/08/18 14:32:25  jonas
-   + compilable!
-   + dataflow analyzer finished
-   + start of CSE units
-   + aoptbase which contains a base object for all optimizer objects
-   * some constants and type definitions moved around to avoid circular
-     dependencies
-   * moved some methods from base objects to specialized objects because
-     they're not used anywhere else
-
- Revision 1.2  1999/08/11 14:24:38  jonas
-   - removed RefsHaveSymbol define (I think references on all processors can have a symbol)
-
- Revision 1.1  1999/08/09 14:07:28  jonas
- commit.msg
+ Revision 1.2  2002-09-07 15:25:14  peter
+   * old logs removed and tabs fixed
 
 
 }
 }

+ 3 - 19
compiler/new/i386/aoptcpuc.pas

@@ -85,23 +85,7 @@ End;
 End.
 End.
 {
 {
   $Log$
   $Log$
-  Revision 1.1  2000-07-13 06:30:10  michael
-  + Initial import
+  Revision 1.2  2002-09-07 15:25:14  peter
+    * old logs removed and tabs fixed
 
 
-  Revision 1.3  2000/01/07 01:14:57  peter
-    * updated copyright to 2000
-
-  Revision 1.2  1999/11/09 22:57:09  peter
-    * compiles again both i386,alpha both with optimizer
-
-  Revision 1.1  1999/08/18 14:32:26  jonas
-    + compilable!
-    + dataflow analyzer finished
-    + start of CSE units
-    + aoptbase which contains a base object for all optimizer objects
-    * some constants and type definitions moved around to avoid circular
-      dependencies
-    * moved some methods from base objects to specialized objects because
-      they're not used anywhere else
-
-}
+}

+ 2 - 27
compiler/new/i386/aoptcpud.pas

@@ -235,32 +235,7 @@ End.
 
 
 {
 {
   $Log$
   $Log$
-  Revision 1.2  2000-07-14 05:11:49  michael
-  + Patch to 1.1
-
-  Revision 1.1  2000/07/13 06:30:10  michael
-  + Initial import
-
-  Revision 1.5  2000/01/07 01:14:57  peter
-    * updated copyright to 2000
-
-  Revision 1.4  1999/11/09 22:57:09  peter
-    * compiles again both i386,alpha both with optimizer
-
-  Revision 1.3  1999/09/08 15:01:31  jonas
-    * some small changes so the noew optimizer is again compilable
-
-  Revision 1.2  1999/08/18 14:32:26  jonas
-    + compilable!
-    + dataflow analyzer finished
-    + start of CSE units
-    + aoptbase which contains a base object for all optimizer objects
-    * some constants and type definitions moved around to avoid circular
-      dependencies
-    * moved some methods from base objects to specialized objects because
-      they're not used anywhere else
-
-  Revision 1.1  1999/08/11 14:22:56  jonas
-    + first version, added TAsmDFACpu object and CpuDFA method
+  Revision 1.3  2002-09-07 15:25:14  peter
+    * old logs removed and tabs fixed
 
 
 }
 }

+ 4 - 35
compiler/nflw.pas

@@ -1405,7 +1405,10 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.51  2002-09-07 12:16:04  carl
+  Revision 1.52  2002-09-07 15:25:03  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.51  2002/09/07 12:16:04  carl
     * second part bug report 1996 fix, testrange in cordconstnode
     * second part bug report 1996 fix, testrange in cordconstnode
       only called if option is set (also make parsing a tiny faster)
       only called if option is set (also make parsing a tiny faster)
 
 
@@ -1495,38 +1498,4 @@ end.
   + generic constructor calls
   + generic constructor calls
   + start of tassembler / tmodulebase class cleanup
   + start of tassembler / tmodulebase class cleanup
 
 
-  Revision 1.29  2002/05/12 16:53:07  peter
-    * moved entry and exitcode to ncgutil and cgobj
-    * foreach gets extra argument for passing local data to the
-      iterator function
-    * -CR checks also class typecasts at runtime by changing them
-      into as
-    * fixed compiler to cycle with the -CR option
-    * fixed stabs with elf writer, finally the global variables can
-      be watched
-    * removed a lot of routines from cga unit and replaced them by
-      calls to cgobj
-    * u32bit-s32bit updates for and,or,xor nodes. When one element is
-      u32bit then the other is typecasted also to u32bit without giving
-      a rangecheck warning/error.
-    * fixed pascal calling method with reversing also the high tree in
-      the parast, detected by tcalcst3 test
-
-  Revision 1.28  2002/03/31 20:26:34  jonas
-    + a_loadfpu_* and a_loadmm_* methods in tcg
-    * register allocation is now handled by a class and is mostly processor
-      independent (+rgobj.pas and i386/rgcpu.pas)
-    * temp allocation is now handled by a class (+tgobj.pas, -i386\tgcpu.pas)
-    * some small improvements and fixes to the optimizer
-    * some register allocation fixes
-    * some fpuvaroffset fixes in the unary minus node
-    * push/popusedregisters is now called rg.save/restoreusedregisters and
-      (for i386) uses temps instead of push/pop's when using -Op3 (that code is
-      also better optimizable)
-    * fixed and optimized register saving/restoring for new/dispose nodes
-    * LOC_FPU locations now also require their "register" field to be set to
-      R_ST, not R_ST0 (the latter is used for LOC_CFPUREGISTER locations only)
-    - list field removed of the tnode class because it's not used currently
-      and can cause hard-to-find bugs
-
 }
 }

+ 4 - 42
compiler/nld.pas

@@ -1143,7 +1143,10 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.57  2002-09-03 16:26:26  daniel
+  Revision 1.58  2002-09-07 15:25:03  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.57  2002/09/03 16:26:26  daniel
     * Make Tprocdef.defs protected
     * Make Tprocdef.defs protected
 
 
   Revision 1.56  2002/09/01 13:28:37  daniel
   Revision 1.56  2002/09/01 13:28:37  daniel
@@ -1254,45 +1257,4 @@ end.
       one or more statements
       one or more statements
     * moved finalize and setlength from ninl to pinline
     * moved finalize and setlength from ninl to pinline
 
 
-  Revision 1.36  2002/04/22 16:30:06  peter
-    * fixed @methodpointer
-
-  Revision 1.35  2002/04/21 19:02:04  peter
-    * removed newn and disposen nodes, the code is now directly
-      inlined from pexpr
-    * -an option that will write the secondpass nodes to the .s file, this
-      requires EXTDEBUG define to actually write the info
-    * fixed various internal errors and crashes due recent code changes
-
-  Revision 1.34  2002/04/02 17:11:29  peter
-    * tlocation,treference update
-    * LOC_CONSTANT added for better constant handling
-    * secondadd splitted in multiple routines
-    * location_force_reg added for loading a location to a register
-      of a specified size
-    * secondassignment parses now first the right and then the left node
-      (this is compatible with Kylix). This saves a lot of push/pop especially
-      with string operations
-    * adapted some routines to use the new cg methods
-
-  Revision 1.33  2002/03/31 20:26:34  jonas
-    + a_loadfpu_* and a_loadmm_* methods in tcg
-    * register allocation is now handled by a class and is mostly processor
-      independent (+rgobj.pas and i386/rgcpu.pas)
-    * temp allocation is now handled by a class (+tgobj.pas, -i386\tgcpu.pas)
-    * some small improvements and fixes to the optimizer
-    * some register allocation fixes
-    * some fpuvaroffset fixes in the unary minus node
-    * push/popusedregisters is now called rg.save/restoreusedregisters and
-      (for i386) uses temps instead of push/pop's when using -Op3 (that code is
-      also better optimizable)
-    * fixed and optimized register saving/restoring for new/dispose nodes
-    * LOC_FPU locations now also require their "register" field to be set to
-      R_ST, not R_ST0 (the latter is used for LOC_CFPUREGISTER locations only)
-    - list field removed of the tnode class because it's not used currently
-      and can cause hard-to-find bugs
-
-  Revision 1.32  2002/01/19 11:52:32  peter
-    * dynarr:=nil support added
-
 }
 }

+ 4 - 4
compiler/node.pas

@@ -978,7 +978,10 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.42  2002-09-03 16:26:26  daniel
+  Revision 1.43  2002-09-07 15:25:03  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.42  2002/09/03 16:26:26  daniel
     * Make Tprocdef.defs protected
     * Make Tprocdef.defs protected
 
 
   Revision 1.41  2002/09/01 13:28:38  daniel
   Revision 1.41  2002/09/01 13:28:38  daniel
@@ -1085,7 +1088,4 @@ end.
     - list field removed of the tnode class because it's not used currently
     - list field removed of the tnode class because it's not used currently
       and can cause hard-to-find bugs
       and can cause hard-to-find bugs
 
 
-  Revision 1.21  2002/01/19 11:52:32  peter
-    * dynarr:=nil support added
-
 }
 }

+ 44 - 41
compiler/nstate.pas

@@ -27,23 +27,23 @@ unit nstate;
 
 
 interface
 interface
 
 
-uses	cclasses,node;
+uses    cclasses,node;
 
 
-type	Tstate_entry=class(Tlinkedlistitem)
-	    what:Tnode;
-	    value:Tnode;
-	    constructor create(w,v:Tnode);
-	end;
+type    Tstate_entry=class(Tlinkedlistitem)
+            what:Tnode;
+            value:Tnode;
+            constructor create(w,v:Tnode);
+        end;
 
 
-	Tstate_storage=class
-	    storage:Tlinkedlist;
-	    constructor create;
-	    procedure store_fact(w,v:Tnode);
-	    function find_fact(what:Tnode):Tnode;
-	    procedure delete_fact(what:Tnode);
-	end;
+        Tstate_storage=class
+            storage:Tlinkedlist;
+            constructor create;
+            procedure store_fact(w,v:Tnode);
+            function find_fact(what:Tnode):Tnode;
+            procedure delete_fact(what:Tnode);
+        end;
 
 
-var	aktstate:Tstate_storage;
+var     aktstate:Tstate_storage;
 
 
 implementation
 implementation
 
 
@@ -72,15 +72,15 @@ begin
     writenode(v);}
     writenode(v);}
     se:=Tstate_entry(storage.first);
     se:=Tstate_entry(storage.first);
     while assigned(se) do
     while assigned(se) do
-	begin
-	    if se.what.isequal(w) then
-		begin
-	    	    storage.remove(se);
-	    	    se.destroy;
-	    	    break;
-		end;
-	    se:=Tstate_entry(se.next);
-	end;
+        begin
+            if se.what.isequal(w) then
+                begin
+                    storage.remove(se);
+                    se.destroy;
+                    break;
+                end;
+            se:=Tstate_entry(se.next);
+        end;
     se:=Tstate_entry.create(w,v);
     se:=Tstate_entry.create(w,v);
     storage.concat(se);
     storage.concat(se);
 end;
 end;
@@ -93,14 +93,14 @@ begin
     find_fact:=nil;
     find_fact:=nil;
     se:=storage.first as Tstate_entry;
     se:=storage.first as Tstate_entry;
     while assigned(se) do
     while assigned(se) do
-	begin
-	    if se.what.isequal(what) then
-		begin
-		    find_fact:=se.value;
-		    break;
-		end;
-	    se:=se.next as Tstate_entry;
-	end;
+        begin
+            if se.what.isequal(what) then
+                begin
+                    find_fact:=se.value;
+                    break;
+                end;
+            se:=se.next as Tstate_entry;
+        end;
 end;
 end;
 
 
 procedure Tstate_storage.delete_fact(what:Tnode);
 procedure Tstate_storage.delete_fact(what:Tnode);
@@ -110,22 +110,25 @@ var se:Tstate_entry;
 begin
 begin
     se:=storage.first as Tstate_entry;
     se:=storage.first as Tstate_entry;
     while assigned(se) do
     while assigned(se) do
-	begin
-	    if se.what.isequal(what) then
-		begin
-		    storage.remove(se);
-		    se.destroy;
-		    break;
-		end;
-	    se:=se.next as Tstate_entry;
-	end;
+        begin
+            if se.what.isequal(what) then
+                begin
+                    storage.remove(se);
+                    se.destroy;
+                    break;
+                end;
+            se:=se.next as Tstate_entry;
+        end;
 end;
 end;
 
 
 end.
 end.
 
 
 {
 {
   $Log$
   $Log$
-  Revision 1.2  2002-07-15 18:03:15  florian
+  Revision 1.3  2002-09-07 15:25:05  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.2  2002/07/15 18:03:15  florian
     * readded removed changes
     * readded removed changes
 
 
   Revision 1.1  2002/07/14 18:00:44  daniel
   Revision 1.1  2002/07/14 18:00:44  daniel

+ 10 - 7
compiler/oglx.pas

@@ -43,12 +43,12 @@ uses
 
 
 { An LX executable is called a module; it can be either an executable
 { An LX executable is called a module; it can be either an executable
   or a DLL.
   or a DLL.
-  
+
   A module consists of objects. In other executable formats, these
   A module consists of objects. In other executable formats, these
   are usually called sections.
   are usually called sections.
-  
+
   Objects consist of pages.
   Objects consist of pages.
-  
+
   The objects are numbered, numbers do not have any special meaning. The
   The objects are numbered, numbers do not have any special meaning. The
   pages of the object are loaded into memory with the access rights specified
   pages of the object are loaded into memory with the access rights specified
   the object table entry. (DM)}
   the object table entry. (DM)}
@@ -115,12 +115,12 @@ type    Tlxheader = packed record
         inst_demand_count:cardinal;
         inst_demand_count:cardinal;
         heapsize:cardinal;          {Only used for 16-bit programs.}
         heapsize:cardinal;          {Only used for 16-bit programs.}
     end;
     end;
-    
+
     Tlxobject_flags = (ofreadable,ofwriteable,ofexecutable,ofresource,
     Tlxobject_flags = (ofreadable,ofwriteable,ofexecutable,ofresource,
                ofdiscardable,ofshared,ofpreload,ofinvalid,
                ofdiscardable,ofshared,ofpreload,ofinvalid,
                ofzerofilled);
                ofzerofilled);
     Tlxobject_flag_set = set of Tlxobject_flags;
     Tlxobject_flag_set = set of Tlxobject_flags;
-    
+
     Tlxobject_table_entry = packed record
     Tlxobject_table_entry = packed record
         virtual_size:cardinal;
         virtual_size:cardinal;
         reloc_base_addr:cardinal;
         reloc_base_addr:cardinal;
@@ -317,7 +317,7 @@ function gen_section_header(sec:Tsection;obj:cardinal):Tlxobject_table_entry;
 
 
 begin
 begin
     gen_section_header.virtual_size:=sections[sec.memsize];
     gen_section_header.virtual_size:=sections[sec.memsize];
-    
+
 end;
 end;
 
 
 function Tlxexeoutput.writedata:boolean;
 function Tlxexeoutput.writedata:boolean;
@@ -399,7 +399,10 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.4  2002-08-12 15:08:40  carl
+  Revision 1.5  2002-09-07 15:25:05  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.4  2002/08/12 15:08:40  carl
     + stab register indexes for powerpc (moved from gdb to cpubase)
     + stab register indexes for powerpc (moved from gdb to cpubase)
     + tprocessor enumeration moved to cpuinfo
     + tprocessor enumeration moved to cpuinfo
     + linker in target_info is now a class
     + linker in target_info is now a class

+ 4 - 20
compiler/pdecsub.pas

@@ -1976,7 +1976,10 @@ const
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.70  2002-09-03 16:26:27  daniel
+  Revision 1.71  2002-09-07 15:25:06  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.70  2002/09/03 16:26:27  daniel
     * Make Tprocdef.defs protected
     * Make Tprocdef.defs protected
 
 
   Revision 1.69  2002/09/01 12:11:33  peter
   Revision 1.69  2002/09/01 12:11:33  peter
@@ -2091,23 +2094,4 @@ end.
     * removed static procprefix since the mangledname is now build only
     * removed static procprefix since the mangledname is now build only
       on demand from tprocdef.mangledname
       on demand from tprocdef.mangledname
 
 
-  Revision 1.49  2002/04/15 19:00:33  carl
-  + target_info.size_of_pointer -> pointer_Size
-
-  Revision 1.48  2002/03/29 13:29:32  peter
-    * fixed memory corruption created by previous fix
-
-  Revision 1.47  2002/03/29 11:23:24  michael
-  + Patch from Pavel Ozerski
-
-  Revision 1.46  2002/01/24 18:25:49  peter
-   * implicit result variable generation for assembler routines
-   * removed m_tp modeswitch, use m_tp7 or not(m_fpc) instead
-
-  Revision 1.45  2002/01/09 07:38:03  michael
-  + Patch from peter for library imports
-
-  Revision 1.44  2002/01/06 21:54:07  peter
-    * fixed external <dll> name <c-name> manglednames
-
 }
 }

+ 4 - 17
compiler/pexpr.pas

@@ -2248,7 +2248,10 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.79  2002-09-07 12:16:03  carl
+  Revision 1.80  2002-09-07 15:25:07  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.79  2002/09/07 12:16:03  carl
     * second part bug report 1996 fix, testrange in cordconstnode
     * second part bug report 1996 fix, testrange in cordconstnode
       only called if option is set (also make parsing a tiny faster)
       only called if option is set (also make parsing a tiny faster)
 
 
@@ -2356,20 +2359,4 @@ end.
     - list field removed of the tnode class because it's not used currently
     - list field removed of the tnode class because it's not used currently
       and can cause hard-to-find bugs
       and can cause hard-to-find bugs
 
 
-  Revision 1.58  2002/03/01 14:08:26  peter
-    * fixed sizeof(TClass) to return only 4
-
-  Revision 1.57  2002/02/03 09:30:04  peter
-    * more fixes for protected handling
-
-  Revision 1.56  2002/01/29 21:25:22  peter
-    * more checks for private and protected
-
-  Revision 1.55  2002/01/24 18:25:49  peter
-   * implicit result variable generation for assembler routines
-   * removed m_tp modeswitch, use m_tp7 or not(m_fpc) instead
-
-  Revision 1.54  2002/01/06 21:47:32  peter
-    * removed getprocvar, use only getprocvardef
-
 }
 }

+ 4 - 31
compiler/pmodules.pas

@@ -1386,7 +1386,10 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.77  2002-09-03 16:26:27  daniel
+  Revision 1.78  2002-09-07 15:25:07  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.77  2002/09/03 16:26:27  daniel
     * Make Tprocdef.defs protected
     * Make Tprocdef.defs protected
 
 
   Revision 1.76  2002/09/02 18:46:26  peter
   Revision 1.76  2002/09/02 18:46:26  peter
@@ -1496,34 +1499,4 @@ end.
     * removed unused units
     * removed unused units
     * use tlocation.size in cg.a_*loc*() routines
     * use tlocation.size in cg.a_*loc*() routines
 
 
-  Revision 1.57  2002/04/04 18:42:49  carl
-  + added wdosx support (patch from Pavel)
-
-  Revision 1.56  2002/04/02 17:11:29  peter
-    * tlocation,treference update
-    * LOC_CONSTANT added for better constant handling
-    * secondadd splitted in multiple routines
-    * location_force_reg added for loading a location to a register
-      of a specified size
-    * secondassignment parses now first the right and then the left node
-      (this is compatible with Kylix). This saves a lot of push/pop especially
-      with string operations
-    * adapted some routines to use the new cg methods
-
-  Revision 1.55  2002/04/01 13:43:32  armin
-  addToLocalThreadvarList used '_'+name instead of mangledname to find asm symbol
-
-  Revision 1.54  2002/03/29 17:19:50  armin
-  + allow exports for netware
-
-  Revision 1.53  2002/03/29 09:00:56  armin
-  + forgot to delete a debug writeln
-
-  Revision 1.52  2002/03/28 16:07:52  armin
-  + initialize threadvars defined local in units
-
-  Revision 1.51  2002/01/24 18:25:49  peter
-   * implicit result variable generation for assembler routines
-   * removed m_tp modeswitch, use m_tp7 or not(m_fpc) instead
-
 }
 }

+ 5 - 80
compiler/powerpc/cgcpu.pas

@@ -270,7 +270,7 @@ const
         list.concat(taicpu.op_reg_ref(A_STW,R_TOC,href));
         list.concat(taicpu.op_reg_ref(A_STW,R_TOC,href));
         list.concat(taicpu.op_none(A_BCCTRL));
         list.concat(taicpu.op_none(A_BCCTRL));
         list.concat(taicpu.op_reg_ref(A_LWZ,R_TOC,href));
         list.concat(taicpu.op_reg_ref(A_LWZ,R_TOC,href));
-        procinfo.flags:=procinfo.flags or pi_do_call;        
+        procinfo.flags:=procinfo.flags or pi_do_call;
       end;
       end;
 
 
 
 
@@ -1703,7 +1703,10 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.52  2002-09-02 10:14:51  jonas
+  Revision 1.53  2002-09-07 15:25:14  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.52  2002/09/02 10:14:51  jonas
     + a_call_reg()
     + a_call_reg()
     * small fix in a_call_ref()
     * small fix in a_call_ref()
 
 
@@ -1778,82 +1781,4 @@ end.
   Revision 1.33  2002/08/04 12:57:55  jonas
   Revision 1.33  2002/08/04 12:57:55  jonas
     * more misc. fixes, mostly constant-related
     * more misc. fixes, mostly constant-related
 
 
-  Revision 1.32  2002/08/02 11:10:42  jonas
-    * some misc constant fixes
-
-  Revision 1.31  2002/07/30 20:50:44  florian
-    * the code generator knows now if parameters are in registers
-
-  Revision 1.30  2002/07/29 21:23:44  florian
-    * more fixes for the ppc
-    + wrappers for the tcnvnode.first_* stuff introduced
-
-  Revision 1.29  2002/07/28 21:38:30  florian
-    - removed debug code which was commited by accident
-
-  Revision 1.28  2002/07/28 21:34:31  florian
-    * more powerpc fixes
-    + dummy tcgvecnode
-
-  Revision 1.27  2002/07/28 16:01:59  jonas
-    + tcg64fppc.a_op64_const_reg_reg() and tcg64fppc.a_op64_reg_reg_reg()
-    * several fixes, most notably in a_load_reg_reg(): it didn't do any
-      conversion from smaller to larger sizes or vice versa
-    * some small optimizations
-
-  Revision 1.26  2002/07/27 19:59:29  jonas
-    * fixed a_loadaddr_ref_reg()
-    * fixed g_flags2reg()
-    * optimized g_concatcopy()
-
-  Revision 1.25  2002/07/26 21:15:45  florian
-    * rewrote the system handling
-
-  Revision 1.24  2002/07/21 17:00:23  jonas
-    * make sure we use rlwi* when possible instead of andi.
-
-  Revision 1.23  2002/07/11 14:41:34  florian
-    * start of the new generic parameter handling
-
-  Revision 1.22  2002/07/11 07:38:28  jonas
-    + tcg64fpc implementation (only a_op64_reg_reg and a_op64_const_reg for
-      now)
-    * fixed and improved tcgppc.a_load_const_reg
-    * improved tcgppc.a_op_const_reg, tcgppc.a_cmp_const_reg_label
-    * A_CMP* -> A_CMPW* (this means that 32bit compares should be done)
-
-  Revision 1.21  2002/07/09 19:45:01  jonas
-    * unarynminus and shlshr node fixed for 32bit and smaller ordinals
-    * small fixes in the assembler writer
-    * changed scratch registers, because they were used by the linker (r11
-      and r12) and by the abi under linux (r31)
-
-  Revision 1.20  2002/07/07 09:44:31  florian
-    * powerpc target fixed, very simple units can be compiled
-
-  Revision 1.19  2002/05/20 13:30:41  carl
-  * bugfix of hdisponen (base must be set, not index)
-  * more portability fixes
-
-  Revision 1.18  2002/05/18 13:34:26  peter
-    * readded missing revisions
-
-  Revision 1.17  2002/05/16 19:46:53  carl
-  + defines.inc -> fpcdefs.inc to avoid conflicts if compiling by hand
-  + try to fix temp allocation (still in ifdef)
-  + generic constructor calls
-  + start of tassembler / tmodulebase class cleanup
-
-  Revision 1.14  2002/05/13 19:52:46  peter
-    * a ppcppc can be build again
-
-  Revision 1.13  2002/04/20 21:41:51  carl
-  * renamed some constants
-
-  Revision 1.12  2002/04/06 18:13:01  jonas
-    * several powerpc-related additions and fixes
-
-  Revision 1.11  2002/01/02 14:53:04  jonas
-    * fixed small bug in a_jmp_flags
-
 }
 }

+ 4 - 12
compiler/powerpc/cpubase.pas

@@ -710,7 +710,10 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.31  2002-09-01 21:04:49  florian
+  Revision 1.32  2002-09-07 15:25:14  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.31  2002/09/01 21:04:49  florian
     * several powerpc related stuff fixed
     * several powerpc related stuff fixed
 
 
   Revision 1.30  2002/08/18 22:16:15  florian
   Revision 1.30  2002/08/18 22:16:15  florian
@@ -785,15 +788,4 @@ end.
     * tai_align_abstract moved to tainst, cpuasm must define
     * tai_align_abstract moved to tainst, cpuasm must define
       the tai_align class now, which may be empty
       the tai_align class now, which may be empty
 
 
-  Revision 1.10  2002/05/13 19:52:46  peter
-    * a ppcppc can be build again
-
-  Revision 1.9  2002/04/21 15:48:39  carl
-  * some small updates according to i386 version
-
-  Revision 1.8  2002/04/20 21:41:51  carl
-  * renamed some constants
-
-  Revision 1.7  2002/04/06 18:13:02  jonas
-    * several powerpc-related additions and fixes
 }
 }

+ 9 - 6
compiler/powerpc/cpuinfo.pas

@@ -38,9 +38,9 @@ Type
    ts64comp = comp;
    ts64comp = comp;
 
 
    pbestreal=^bestreal;
    pbestreal=^bestreal;
-   
+
    { possible supported processors for this target }
    { possible supported processors for this target }
-   tprocessors = 
+   tprocessors =
       (no_processor,
       (no_processor,
        ppc601,
        ppc601,
        ppc604
        ppc604
@@ -55,11 +55,11 @@ Const
    mmreg_size = 16;
    mmreg_size = 16;
    { target cpu string (used by compiler options) }
    { target cpu string (used by compiler options) }
    target_cpu_string = 'powerpc';
    target_cpu_string = 'powerpc';
-   { size of the buffer used for setjump/longjmp  
+   { size of the buffer used for setjump/longjmp
      the size of this buffer is deduced from the
      the size of this buffer is deduced from the
-     jmp_buf structure in setjumph.inc file 
+     jmp_buf structure in setjumph.inc file
    }
    }
-{$warning setjmp buf_size unknown!}   
+{$warning setjmp buf_size unknown!}
    jmp_buf_size = 0;
    jmp_buf_size = 0;
 
 
 Implementation
 Implementation
@@ -67,7 +67,10 @@ Implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.10  2002-08-15 15:15:55  carl
+  Revision 1.11  2002-09-07 15:25:14  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.10  2002/08/15 15:15:55  carl
     * jmpbuf size allocation for exceptions is now cpu specific (as it should)
     * jmpbuf size allocation for exceptions is now cpu specific (as it should)
     * more generic nodes for maths
     * more generic nodes for maths
     * several fixes for better m68k support
     * several fixes for better m68k support

+ 5 - 2
compiler/powerpc/nppcmat.pas

@@ -163,7 +163,7 @@ implementation
                              TPPCSHLRSHRNODE
                              TPPCSHLRSHRNODE
 *****************************************************************************}
 *****************************************************************************}
 
 
-    function tppcshlshrnode.first_shlshr64bitint: tnode; 
+    function tppcshlshrnode.first_shlshr64bitint: tnode;
       begin
       begin
         result := nil;
         result := nil;
       end;
       end;
@@ -502,7 +502,10 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.17  2002-08-15 15:15:55  carl
+  Revision 1.18  2002-09-07 15:25:14  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.17  2002/08/15 15:15:55  carl
     * jmpbuf size allocation for exceptions is now cpu specific (as it should)
     * jmpbuf size allocation for exceptions is now cpu specific (as it should)
     * more generic nodes for maths
     * more generic nodes for maths
     * several fixes for better m68k support
     * several fixes for better m68k support

+ 4 - 9
compiler/ppc.dpr

@@ -158,19 +158,14 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.4  2002-08-12 15:08:40  carl
+  Revision 1.5  2002-09-07 15:25:07  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.4  2002/08/12 15:08:40  carl
     + stab register indexes for powerpc (moved from gdb to cpubase)
     + stab register indexes for powerpc (moved from gdb to cpubase)
     + tprocessor enumeration moved to cpuinfo
     + tprocessor enumeration moved to cpuinfo
     + linker in target_info is now a class
     + linker in target_info is now a class
     * many many updates for m68k (will soon start to compile)
     * many many updates for m68k (will soon start to compile)
     - removed some ifdef or correct them for correct cpu
     - removed some ifdef or correct them for correct cpu
 
 
-  Revision 1.3  2000/11/13 15:43:07  marco
-   * Renamefest
-
-  Revision 1.2  2000/09/24 15:06:24  peter
-    * use defines.inc
-
-  Revision 1.1  2000/07/13 06:29:54  michael
-  + Initial import
 }
 }

+ 4 - 60
compiler/pstatmnt.pas

@@ -1146,7 +1146,10 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.76  2002-09-07 12:16:03  carl
+  Revision 1.77  2002-09-07 15:25:07  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.76  2002/09/07 12:16:03  carl
     * second part bug report 1996 fix, testrange in cordconstnode
     * second part bug report 1996 fix, testrange in cordconstnode
       only called if option is set (also make parsing a tiny faster)
       only called if option is set (also make parsing a tiny faster)
 
 
@@ -1242,63 +1245,4 @@ end.
   + generic constructor calls
   + generic constructor calls
   + start of tassembler / tmodulebase class cleanup
   + start of tassembler / tmodulebase class cleanup
 
 
-  Revision 1.55  2002/05/06 19:56:42  carl
-  + added more patches from Mazen for SPARC port
-
-  Revision 1.54  2002/04/21 19:02:05  peter
-    * removed newn and disposen nodes, the code is now directly
-      inlined from pexpr
-    * -an option that will write the secondpass nodes to the .s file, this
-      requires EXTDEBUG define to actually write the info
-    * fixed various internal errors and crashes due recent code changes
-
-  Revision 1.53  2002/04/20 21:32:24  carl
-  + generic FPC_CHECKPOINTER
-  + first parameter offset in stack now portable
-  * rename some constants
-  + move some cpu stuff to other units
-  - remove unused constents
-  * fix stacksize for some targets
-  * fix generic size problems which depend now on EXTEND_SIZE constant
-
-  Revision 1.52  2002/04/16 16:11:17  peter
-    * using inherited; without a parent having the same function
-      will do nothing like delphi
-
-  Revision 1.51  2002/04/15 19:01:28  carl
-  + target_info.size_of_pointer -> pointer_Size
-
-  Revision 1.50  2002/04/14 16:53:54  carl
-  + asm statement uses ALL_REGISTERS
-
-  Revision 1.49  2002/03/31 20:26:36  jonas
-    + a_loadfpu_* and a_loadmm_* methods in tcg
-    * register allocation is now handled by a class and is mostly processor
-      independent (+rgobj.pas and i386/rgcpu.pas)
-    * temp allocation is now handled by a class (+tgobj.pas, -i386\tgcpu.pas)
-    * some small improvements and fixes to the optimizer
-    * some register allocation fixes
-    * some fpuvaroffset fixes in the unary minus node
-    * push/popusedregisters is now called rg.save/restoreusedregisters and
-      (for i386) uses temps instead of push/pop's when using -Op3 (that code is
-      also better optimizable)
-    * fixed and optimized register saving/restoring for new/dispose nodes
-    * LOC_FPU locations now also require their "register" field to be set to
-      R_ST, not R_ST0 (the latter is used for LOC_CFPUREGISTER locations only)
-    - list field removed of the tnode class because it's not used currently
-      and can cause hard-to-find bugs
-
-  Revision 1.48  2002/03/11 19:10:28  peter
-    * Regenerated with updated fpcmake
-
-  Revision 1.47  2002/03/04 17:54:59  peter
-    * allow oridinal labels again
-
-  Revision 1.46  2002/01/29 21:32:03  peter
-    * allow accessing locals in other lexlevel when the current assembler
-      routine doesn't have locals.
-
-  Revision 1.45  2002/01/24 18:25:49  peter
-   * implicit result variable generation for assembler routines
-   * removed m_tp modeswitch, use m_tp7 or not(m_fpc) instead
 }
 }

+ 4 - 67
compiler/psub.pas

@@ -788,7 +788,10 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.70  2002-09-03 16:26:27  daniel
+  Revision 1.71  2002-09-07 15:25:07  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.70  2002/09/03 16:26:27  daniel
     * Make Tprocdef.defs protected
     * Make Tprocdef.defs protected
 
 
   Revision 1.69  2002/08/25 19:25:20  peter
   Revision 1.69  2002/08/25 19:25:20  peter
@@ -882,70 +885,4 @@ end.
   Revision 1.51  2002/05/14 19:34:49  peter
   Revision 1.51  2002/05/14 19:34:49  peter
     * removed old logs and updated copyright year
     * removed old logs and updated copyright year
 
 
-  Revision 1.50  2002/05/12 16:53:09  peter
-    * moved entry and exitcode to ncgutil and cgobj
-    * foreach gets extra argument for passing local data to the
-      iterator function
-    * -CR checks also class typecasts at runtime by changing them
-      into as
-    * fixed compiler to cycle with the -CR option
-    * fixed stabs with elf writer, finally the global variables can
-      be watched
-    * removed a lot of routines from cga unit and replaced them by
-      calls to cgobj
-    * u32bit-s32bit updates for and,or,xor nodes. When one element is
-      u32bit then the other is typecasted also to u32bit without giving
-      a rangecheck warning/error.
-    * fixed pascal calling method with reversing also the high tree in
-      the parast, detected by tcalcst3 test
-
-  Revision 1.49  2002/04/20 21:32:24  carl
-  + generic FPC_CHECKPOINTER
-  + first parameter offset in stack now portable
-  * rename some constants
-  + move some cpu stuff to other units
-  - remove unused constents
-  * fix stacksize for some targets
-  * fix generic size problems which depend now on EXTEND_SIZE constant
-
-  Revision 1.48  2002/04/19 15:46:02  peter
-    * mangledname rewrite, tprocdef.mangledname is now created dynamicly
-      in most cases and not written to the ppu
-    * add mangeledname_prefix() routine to generate the prefix of
-      manglednames depending on the current procedure, object and module
-    * removed static procprefix since the mangledname is now build only
-      on demand from tprocdef.mangledname
-
-  Revision 1.47  2002/04/15 19:01:28  carl
-  + target_info.size_of_pointer -> pointer_Size
-
-  Revision 1.46  2002/04/04 18:45:19  carl
-  + added wdosx support (patch from Pavel)
-
-  Revision 1.45  2002/03/31 20:26:36  jonas
-    + a_loadfpu_* and a_loadmm_* methods in tcg
-    * register allocation is now handled by a class and is mostly processor
-      independent (+rgobj.pas and i386/rgcpu.pas)
-    * temp allocation is now handled by a class (+tgobj.pas, -i386\tgcpu.pas)
-    * some small improvements and fixes to the optimizer
-    * some register allocation fixes
-    * some fpuvaroffset fixes in the unary minus node
-    * push/popusedregisters is now called rg.save/restoreusedregisters and
-      (for i386) uses temps instead of push/pop's when using -Op3 (that code is
-      also better optimizable)
-    * fixed and optimized register saving/restoring for new/dispose nodes
-    * LOC_FPU locations now also require their "register" field to be set to
-      R_ST, not R_ST0 (the latter is used for LOC_CFPUREGISTER locations only)
-    - list field removed of the tnode class because it's not used currently
-      and can cause hard-to-find bugs
-
-  Revision 1.44  2002/01/19 15:37:24  peter
-    * commited the wrong file :(
-
-  Revision 1.43  2002/01/19 15:20:09  peter
-    * also check at the end of the implementation for incomplete classes
-
-  Revision 1.42  2002/01/19 15:12:34  peter
-    * check for unresolved forward classes in the interface
-
 }
 }

+ 2 - 2
compiler/sparc/cpubase.pas

@@ -32,7 +32,7 @@ USES globals,cutils,cclasses,aasmbase,cpuinfo,cginfo;
 CONST
 CONST
 {Size of the instruction table converted by nasmconv.pas}
 {Size of the instruction table converted by nasmconv.pas}
   maxinfolen    = 8;
   maxinfolen    = 8;
-{Defines the default address size for a processor}  
+{Defines the default address size for a processor}
   OS_ADDR=OS_32;{$WARNING "OS_ADDR" was set to "OS_32" but not verified!}
   OS_ADDR=OS_32;{$WARNING "OS_ADDR" was set to "OS_32" but not verified!}
 {the natural int size for a processor}
 {the natural int size for a processor}
   OS_INT=OS_32;{$WARNING "OS_INT" was set to "OS_32" but not verified!}
   OS_INT=OS_32;{$WARNING "OS_INT" was set to "OS_32" but not verified!}
@@ -264,7 +264,7 @@ CONST
 TYPE
 TYPE
   { enumeration for registers, don't change the order }
   { enumeration for registers, don't change the order }
   { it's used by the register size conversions        }
   { it's used by the register size conversions        }
-  TRegister=({$INCLUDE registers.inc}); 
+  TRegister=({$INCLUDE registers.inc});
   TRegister64=PACKED RECORD
   TRegister64=PACKED RECORD
   {A type to store register locations for 64 Bit values.}
   {A type to store register locations for 64 Bit values.}
      RegLo,RegHi:TRegister;
      RegLo,RegHi:TRegister;

+ 2 - 2
compiler/sparc/cpuinfo.pas

@@ -50,7 +50,7 @@ TYPE
   ts64comp = extended;
   ts64comp = extended;
   pbestreal=^bestreal;
   pbestreal=^bestreal;
 { possible supported processors for this target }
 { possible supported processors for this target }
-  tprocessors=(no_processor,SPARC_V8,SPARC_V9); 
+  tprocessors=(no_processor,SPARC_V8,SPARC_V9);
 CONST
 CONST
 {# Size of native extended floating point type }
 {# Size of native extended floating point type }
   extended_size = 10;
   extended_size = 10;
@@ -60,7 +60,7 @@ CONST
   mmreg_size = 8;
   mmreg_size = 8;
 { target cpu string (used by compiler options) }
 { target cpu string (used by compiler options) }
   target_cpu_string = 'SPARC';
   target_cpu_string = 'SPARC';
-{ size of the buffer used for setjump/longjmp  
+{ size of the buffer used for setjump/longjmp
   the size of this buffer is deduced from the
   the size of this buffer is deduced from the
   jmp_buf structure in setjumph.inc file }
   jmp_buf structure in setjumph.inc file }
   jmp_buf_size = 24;
   jmp_buf_size = 24;

+ 4 - 53
compiler/sparc/cpuswtch.pas

@@ -129,62 +129,13 @@ initialization
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.2  2002-08-23 10:08:28  mazen
+  Revision 1.3  2002-09-07 15:25:14  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.2  2002/08/23 10:08:28  mazen
   *** empty log message ***
   *** empty log message ***
 
 
   Revision 1.1  2002/08/22 08:30:50  mazen
   Revision 1.1  2002/08/22 08:30:50  mazen
   first insertion 2002\08\22
   first insertion 2002\08\22
 
 
-  Revision 1.4  2001/07/01 20:16:20  peter
-    * alignmentinfo record added
-    * -Oa argument supports more alignment settings that can be specified
-      per type: PROC,LOOP,VARMIN,VARMAX,CONSTMIN,CONSTMAX,RECORDMIN
-      RECORDMAX,LOCALMIN,LOCALMAX. It is possible to set the mimimum
-      required alignment and the maximum usefull alignment. The final
-      alignment will be choosen per variable size dependent on these
-      settings
-
-  Revision 1.3  2001/05/12 12:11:31  peter
-    * simplify_ppu is now the default, a recompile of the compiler now
-      only compiles pp.pas
-
-  Revision 1.2  2000/12/23 19:46:49  peter
-    * object to class conversion
-    * more verbosity for -vt and -vd
-    * -i options can be put after eachother so the Makefiles only need
-      to call fpc once for all info (will be twice as the first one will
-      be to check the version if fpc supports multiple info)
-
-  Revision 1.1  2000/11/30 22:42:50  florian
-  * renamed
-
-  Revision 1.1  2000/11/30 22:21:56  florian
-    * moved to iSPARC
-
-  Revision 1.6  2000/10/24 10:40:53  jonas
-    + register renaming ("fixes" bug1088)
-    * changed command line options meanings for optimizer:
-        O2 now means peepholopts, CSE and register renaming in 1 pass
-        O3 is the same, but repeated until no further optimizations are
-          possible or until 5 passes have been done (to avoid endless loops)
-    * changed aoptSPARC so it does this looping
-    * added some procedures from csoptSPARC to the interface because they're
-      used by rroptSPARC as well
-    * some changes to csoptSPARC and daoptSPARC so that newly added instructions
-      by the CSE get optimizer info (they were simply skipped previously),
-      this fixes some bugs
-
-  Revision 1.5  2000/09/24 15:06:20  peter
-    * use defines.inc
-
-  Revision 1.4  2000/08/27 16:11:51  peter
-    * moved some util functions from globals,cobjects to cutils
-    * splitted files into finput,fmodule
-
-  Revision 1.3  2000/07/27 13:03:36  jonas
-    * release alignopts
-
-  Revision 1.2  2000/07/13 11:32:44  michael
-  + removed logs
-
 }
 }

+ 4 - 7
compiler/sparc/cputarg.pas

@@ -61,16 +61,13 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.1  2002-08-22 08:30:50  mazen
+  Revision 1.2  2002-09-07 15:25:14  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.1  2002/08/22 08:30:50  mazen
   first insertion 2002\08\22
   first insertion 2002\08\22
 
 
   Revision 1.3  2002/03/28 20:48:04  carl
   Revision 1.3  2002/03/28 20:48:04  carl
   - remove go32v1 support
   - remove go32v1 support
 
 
-  Revision 1.2  2001/06/03 15:12:47  peter
-    * t_beos target inclusion
-
-  Revision 1.1  2001/04/18 22:02:01  peter
-    * registration of targets and assemblers
-
 }
 }

+ 4 - 4
compiler/sparc/ncpucnv.pas

@@ -421,7 +421,10 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.2  2002-08-30 06:15:27  mazen
+  Revision 1.3  2002-09-07 15:25:14  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.2  2002/08/30 06:15:27  mazen
   ncgcall.pas moved to ncpucall.pas (I'd like ncpu* insteade of nsparc* since it
   ncgcall.pas moved to ncpucall.pas (I'd like ncpu* insteade of nsparc* since it
   provides processor independent units naming)
   provides processor independent units naming)
 
 
@@ -494,7 +497,4 @@ end.
   + generic constructor calls
   + generic constructor calls
   + start of tassembler / tmodulebase class cleanup
   + start of tassembler / tmodulebase class cleanup
 
 
-  Revision 1.5  2002/04/06 18:13:02  jonas
-    * several powerpc-related additions and fixes
-
 }
 }

+ 4 - 54
compiler/sparc/tgcpu.pas

@@ -690,60 +690,10 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.1  2002-08-22 08:30:50  mazen
-  first insertion 2002\08\22
-
-  Revision 1.8  2001/12/31 09:53:16  jonas
-    * changed remaining "getregister32" calls to "getregisterint"
-
-  Revision 1.7  2001/12/29 15:29:59  jonas
-    * powerpc/cgcpu.pas compiles :)
-    * several powerpc-related fixes
-    * cpuasm unit is now based on common tainst unit
-    + nppcmat unit for powerpc (almost complete)
-
-  Revision 1.5  2001/08/26 13:37:03  florian
-    * some cg reorganisation
-    * some PPC updates
-
-  Revision 1.4  2001/04/13 01:22:21  peter
-    * symtable change to classes
-    * range check generation and errors fixed, make cycle DEBUG=1 works
-    * memory leaks fixed
-
-  Revision 1.3  2000/12/25 00:07:34  peter
-    + new tlinkedlist class (merge of old tstringqueue,tcontainer and
-      tlinkedlist objects)
-
-  Revision 1.2  2000/12/05 11:44:34  jonas
-    + new integer regvar handling, should be much more efficient
-
-  Revision 1.1  2000/11/29 00:30:51  florian
-    * unused units removed from uses clause
-    * some changes for widestrings
+  Revision 1.2  2002-09-07 15:25:15  peter
+    * old logs removed and tabs fixed
 
 
-  Revision 1.9  2000/10/31 22:30:13  peter
-    * merged asm result patch part 2
-
-  Revision 1.8  2000/10/14 10:14:56  peter
-    * moehrendorf oct 2000 rewrite
-
-  Revision 1.7  2000/09/30 16:08:46  peter
-    * more cg11 updates
-
-  Revision 1.6  2000/09/24 15:06:32  peter
-    * use defines.inc
-
-  Revision 1.5  2000/08/27 16:11:55  peter
-    * moved some util functions from globals,cobjects to cutils
-    * splitted files into finput,fmodule
-
-  Revision 1.4  2000/08/05 13:32:39  peter
-    * fixed build prob without support_mmx
-
-  Revision 1.3  2000/08/04 05:09:49  jonas
-    * forgot to commit :( (part of regvar changes)
+  Revision 1.1  2002/08/22 08:30:50  mazen
+  first insertion 2002\08\22
 
 
-  Revision 1.2  2000/07/13 11:32:52  michael
-  + removed logs
 }
 }

+ 4 - 61
compiler/symdef.pas

@@ -5537,7 +5537,10 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.92  2002-09-05 19:29:42  peter
+  Revision 1.93  2002-09-07 15:25:07  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.92  2002/09/05 19:29:42  peter
     * memdebug enhancements
     * memdebug enhancements
 
 
   Revision 1.91  2002/08/25 19:25:20  peter
   Revision 1.91  2002/08/25 19:25:20  peter
@@ -5650,64 +5653,4 @@ end.
   * fix stacksize for some targets
   * fix stacksize for some targets
   * fix generic size problems which depend now on EXTEND_SIZE constant
   * fix generic size problems which depend now on EXTEND_SIZE constant
 
 
-  Revision 1.71  2002/04/19 15:46:03  peter
-    * mangledname rewrite, tprocdef.mangledname is now created dynamicly
-      in most cases and not written to the ppu
-    * add mangeledname_prefix() routine to generate the prefix of
-      manglednames depending on the current procedure, object and module
-    * removed static procprefix since the mangledname is now build only
-      on demand from tprocdef.mangledname
-
-  Revision 1.70  2002/04/15 19:06:34  carl
-  + target_info.size_of_pointer -> pointer_Size
-
-  Revision 1.69  2002/04/14 16:55:43  carl
-  + replace some stuff by ALL_REGISTERS
-
-  Revision 1.68  2002/04/02 17:11:29  peter
-    * tlocation,treference update
-    * LOC_CONSTANT added for better constant handling
-    * secondadd splitted in multiple routines
-    * location_force_reg added for loading a location to a register
-      of a specified size
-    * secondassignment parses now first the right and then the left node
-      (this is compatible with Kylix). This saves a lot of push/pop especially
-      with string operations
-    * adapted some routines to use the new cg methods
-
-  Revision 1.67  2002/03/31 20:26:36  jonas
-    + a_loadfpu_* and a_loadmm_* methods in tcg
-    * register allocation is now handled by a class and is mostly processor
-      independent (+rgobj.pas and i386/rgcpu.pas)
-    * temp allocation is now handled by a class (+tgobj.pas, -i386\tgcpu.pas)
-    * some small improvements and fixes to the optimizer
-    * some register allocation fixes
-    * some fpuvaroffset fixes in the unary minus node
-    * push/popusedregisters is now called rg.save/restoreusedregisters and
-      (for i386) uses temps instead of push/pop's when using -Op3 (that code is
-      also better optimizable)
-    * fixed and optimized register saving/restoring for new/dispose nodes
-    * LOC_FPU locations now also require their "register" field to be set to
-      R_ST, not R_ST0 (the latter is used for LOC_CFPUREGISTER locations only)
-    - list field removed of the tnode class because it's not used currently
-      and can cause hard-to-find bugs
-
-  Revision 1.66  2002/03/24 19:10:14  carl
-  + patch for SPARC from Mazen NEIFER
-
-  Revision 1.65  2002/02/04 08:16:07  jonas
-    * fixed severe slowdown when compiling a program with arrays that have
-      a lot (15+) dimensions ("merged")
-
-  Revision 1.64  2002/01/19 15:12:34  peter
-    * check for unresolved forward classes in the interface
-
-  Revision 1.63  2002/01/06 21:52:30  peter
-
-    * fixed previous commit
-
-  Revision 1.62  2002/01/06 12:08:15  peter
-    * removed uauto from orddef, use new range_to_basetype generating
-      the correct ordinal type for a range
-
 }
 }

+ 4 - 56
compiler/symsym.pas

@@ -2496,7 +2496,10 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.61  2002-09-05 19:29:45  peter
+  Revision 1.62  2002-09-07 15:25:10  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.61  2002/09/05 19:29:45  peter
     * memdebug enhancements
     * memdebug enhancements
 
 
   Revision 1.60  2002/09/05 14:51:42  peter
   Revision 1.60  2002/09/05 14:51:42  peter
@@ -2590,59 +2593,4 @@ end.
   Revision 1.42  2002/07/11 14:41:31  florian
   Revision 1.42  2002/07/11 14:41:31  florian
     * start of the new generic parameter handling
     * start of the new generic parameter handling
 
 
-  Revision 1.41  2002/07/10 07:24:40  jonas
-    * memory leak fixes from Sergey Korshunoff
-
-  Revision 1.40  2002/07/01 18:46:27  peter
-    * internal linker
-    * reorganized aasm layer
-
-  Revision 1.39  2002/05/18 13:34:18  peter
-    * readded missing revisions
-
-  Revision 1.38  2002/05/16 19:46:45  carl
-  + defines.inc -> fpcdefs.inc to avoid conflicts if compiling by hand
-  + try to fix temp allocation (still in ifdef)
-  + generic constructor calls
-  + start of tassembler / tmodulebase class cleanup
-
-  Revision 1.36  2002/05/12 16:53:15  peter
-    * moved entry and exitcode to ncgutil and cgobj
-    * foreach gets extra argument for passing local data to the
-      iterator function
-    * -CR checks also class typecasts at runtime by changing them
-      into as
-    * fixed compiler to cycle with the -CR option
-    * fixed stabs with elf writer, finally the global variables can
-      be watched
-    * removed a lot of routines from cga unit and replaced them by
-      calls to cgobj
-    * u32bit-s32bit updates for and,or,xor nodes. When one element is
-      u32bit then the other is typecasted also to u32bit without giving
-      a rangecheck warning/error.
-    * fixed pascal calling method with reversing also the high tree in
-      the parast, detected by tcalcst3 test
-
-  Revision 1.35  2002/04/19 15:46:03  peter
-    * mangledname rewrite, tprocdef.mangledname is now created dynamicly
-      in most cases and not written to the ppu
-    * add mangeledname_prefix() routine to generate the prefix of
-      manglednames depending on the current procedure, object and module
-    * removed static procprefix since the mangledname is now build only
-      on demand from tprocdef.mangledname
-
-  Revision 1.34  2002/04/16 16:12:47  peter
-    * give error when using enums with jumps as array index
-    * allow char as enum value
-
-  Revision 1.33  2002/04/15 19:08:22  carl
-  + target_info.size_of_pointer -> pointer_size
-  + some cleanup of unused types/variables
-
-  Revision 1.32  2002/04/07 13:37:29  carl
-  + change unit use
-
-  Revision 1.31  2002/02/03 09:30:04  peter
-    * more fixes for protected handling
-
 }
 }

+ 5 - 2
compiler/systems/i_wdosx.pas

@@ -105,7 +105,10 @@ initialization
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.1  2002-09-06 15:03:51  carl
+  Revision 1.2  2002-09-07 15:25:15  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.1  2002/09/06 15:03:51  carl
     * moved files to systems directory
     * moved files to systems directory
 
 
   Revision 1.2  2002/08/12 15:08:39  carl
   Revision 1.2  2002/08/12 15:08:39  carl
@@ -117,4 +120,4 @@ end.
 
 
   Revision 1.1  2002/07/26 21:15:38  florian
   Revision 1.1  2002/07/26 21:15:38  florian
     * rewrote the system handling
     * rewrote the system handling
-}
+}

+ 5 - 2
compiler/systems/i_win32.pas

@@ -120,7 +120,10 @@ initialization
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.1  2002-09-06 15:03:51  carl
+  Revision 1.2  2002-09-07 15:25:15  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.1  2002/09/06 15:03:51  carl
     * moved files to systems directory
     * moved files to systems directory
 
 
   Revision 1.2  2002/08/12 15:08:39  carl
   Revision 1.2  2002/08/12 15:08:39  carl
@@ -132,4 +135,4 @@ end.
 
 
   Revision 1.1  2002/07/26 21:15:38  florian
   Revision 1.1  2002/07/26 21:15:38  florian
     * rewrote the system handling
     * rewrote the system handling
-}
+}

+ 8 - 3
compiler/utils/fixlog.pp

@@ -153,8 +153,9 @@ end;
 var
 var
   dir : tsearchrec;
   dir : tsearchrec;
   i   : integer;
   i   : integer;
+  path : string;
 begin
 begin
-  writeln('fixlog v1.00 (C) 1999-2002 Peter Vreman');
+  writeln('fixlog v1.01 (C) 1999-2002 Peter Vreman');
   if paramcount<3 then
   if paramcount<3 then
    begin
    begin
      writeln('usage: fixlog <revisions> <yyyy-mm-dd> <files> [files]');
      writeln('usage: fixlog <revisions> <yyyy-mm-dd> <files> [files]');
@@ -164,16 +165,20 @@ begin
   Date2Int(ParamStr(2),MYear,MMonth,MDay);
   Date2Int(ParamStr(2),MYear,MMonth,MDay);
   for i:=3 to paramcount do
   for i:=3 to paramcount do
    begin
    begin
+     path:=ExtractFilePath(paramstr(i));
      if findfirst(paramstr(i),faAnyFile,dir)=0 then
      if findfirst(paramstr(i),faAnyFile,dir)=0 then
       repeat
       repeat
-        dofile(dir.name);
+        dofile(path+dir.name);
       until findnext(dir)<>0;
       until findnext(dir)<>0;
      findclose(dir);
      findclose(dir);
    end;
    end;
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.6  2002-05-18 13:34:27  peter
+  Revision 1.7  2002-09-07 15:25:15  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.6  2002/05/18 13:34:27  peter
     * readded missing revisions
     * readded missing revisions
 
 
   Revision 1.5  2002/05/16 19:46:53  carl
   Revision 1.5  2002/05/16 19:46:53  carl

+ 5 - 2
compiler/version.pas

@@ -84,7 +84,10 @@ end;
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.15  2002-08-10 14:46:31  carl
+  Revision 1.16  2002-09-07 15:25:10  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.15  2002/08/10 14:46:31  carl
     + moved target_cpu_string to cpuinfo
     + moved target_cpu_string to cpuinfo
     * renamed asmmode enum.
     * renamed asmmode enum.
     * assembler reader has now less ifdef's
     * assembler reader has now less ifdef's
@@ -110,4 +113,4 @@ end.
 
 
   Revision 1.8  2002/03/01 12:47:21  pierre
   Revision 1.8  2002/03/01 12:47:21  pierre
    * used shl 7 for release number
    * used shl 7 for release number
-}
+}

+ 6 - 3
compiler/x86_64/cpuinfo.pas

@@ -41,13 +41,13 @@ Type
    { $fffffffffffffff on a 32bit machine if the compiler uses     }
    { $fffffffffffffff on a 32bit machine if the compiler uses     }
    { int64 constants internally (JM)                              }
    { int64 constants internally (JM)                              }
    TConstPtrUInt = qword;
    TConstPtrUInt = qword;
-   
+
    bestreal = extended;
    bestreal = extended;
    ts32real = single;
    ts32real = single;
    ts64real = double;
    ts64real = double;
    ts80real = extended;
    ts80real = extended;
    ts64comp = extended;
    ts64comp = extended;
-   
+
    pbestreal=^bestreal;
    pbestreal=^bestreal;
 
 
 Const
 Const
@@ -66,7 +66,10 @@ Implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.4  2002-08-12 15:08:45  carl
+  Revision 1.5  2002-09-07 15:25:15  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.4  2002/08/12 15:08:45  carl
     + stab register indexes for powerpc (moved from gdb to cpubase)
     + stab register indexes for powerpc (moved from gdb to cpubase)
     + tprocessor enumeration moved to cpuinfo
     + tprocessor enumeration moved to cpuinfo
     + linker in target_info is now a class
     + linker in target_info is now a class

+ 4 - 6
compiler/x86_64/cputarg.pas

@@ -62,15 +62,13 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.2  2002-07-25 22:55:34  florian
+  Revision 1.3  2002-09-07 15:25:15  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.2  2002/07/25 22:55:34  florian
     * several fixes, small test units can be compiled
     * several fixes, small test units can be compiled
 
 
   Revision 1.1  2002/07/24 22:38:15  florian
   Revision 1.1  2002/07/24 22:38:15  florian
     + initial release of x86-64 target code
     + initial release of x86-64 target code
 
 
-  Revision 1.2  2001/06/03 15:12:47  peter
-    * t_beos target inclusion
-
-  Revision 1.1  2001/04/18 22:02:01  peter
-    * registration of targets and assemblers
 }
 }

+ 8 - 5
compiler/x86_64/rasm.pas

@@ -30,10 +30,10 @@ Interface
 uses
 uses
   node;
   node;
 
 
-   { 
+   {
      This routine is called to parse the instructions in assembler
      This routine is called to parse the instructions in assembler
      blocks. It returns a complete list of directive and instructions
      blocks. It returns a complete list of directive and instructions
-   }  
+   }
    function assemble: tnode;
    function assemble: tnode;
 
 
 
 
@@ -59,15 +59,18 @@ Implementation
     function assemble : tnode;
     function assemble : tnode;
      begin
      begin
      end;
      end;
-     
+
 Begin
 Begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.1  2002-08-10 14:53:38  carl
+  Revision 1.2  2002-09-07 15:25:15  peter
+    * old logs removed and tabs fixed
+
+  Revision 1.1  2002/08/10 14:53:38  carl
     + moved target_cpu_string to cpuinfo
     + moved target_cpu_string to cpuinfo
     * renamed asmmode enum.
     * renamed asmmode enum.
     * assembler reader has now less ifdef's
     * assembler reader has now less ifdef's
     * move from nppcmem.pas -> ncgmem.pas vec. node.
     * move from nppcmem.pas -> ncgmem.pas vec. node.
 
 
-}  
+}