Browse Source

* esi_offset -> selfpointer_offset to be newcg compatible
* hcogegen -> cgbase fixes for newcg

peter 26 years ago
parent
commit
23ca9de3b3

+ 6 - 2
compiler/cg68kflw.pas

@@ -770,7 +770,7 @@ do_jmp:
          { also reset to zero in the stack }
          new(hp);
          reset_reference(hp^);
-         hp^.offset:=procinfo^.ESI_offset;
+         hp^.offset:=procinfo^.selfpointer_offset;
          hp^.base:=procinfo^.framepointer;
          exprasmlist^.concat(new(paicpu,op_reg_ref(A_MOVE,S_L,R_A5,hp)));
          exprasmlist^.concat(new(pai_labeled,init(A_JMP,quickexitlabel)));
@@ -779,7 +779,11 @@ do_jmp:
 end.
 {
   $Log$
-  Revision 1.11  1999-09-27 23:44:48  peter
+  Revision 1.12  1999-11-09 23:06:44  peter
+    * esi_offset -> selfpointer_offset to be newcg compatible
+    * hcogegen -> cgbase fixes for newcg
+
+  Revision 1.11  1999/09/27 23:44:48  peter
     * procinfo is now a pointer
     * support for result setting in sub procedure
 

+ 8 - 4
compiler/cga68k.pas

@@ -886,7 +886,7 @@ begin
             if assigned(procinfo^._class) then
                 procinfo^.aktexitcode^.concat(new(pai_stabs,init(strpnew(
                  '"$t:v'+procinfo^._class^.numberstring+'",'+
-                 tostr(N_PSYM)+',0,0,'+tostr(procinfo^.esi_offset)))));
+                 tostr(N_PSYM)+',0,0,'+tostr(procinfo^.selfpointer_offset)))));
 
             if (porddef(aktprocsym^.definition^.retdef) <> voiddef) then
                 procinfo^.aktexitcode^.concat(new(pai_stabs,init(strpnew(
@@ -1166,7 +1166,7 @@ end;
                      end;
                    new(hp);
                    reset_reference(hp^);
-                   hp^.offset:=p^.ESI_offset;
+                   hp^.offset:=p^.selfpointer_offset;
                    hp^.base:=R_A5;
                    exprasmlist^.concat(new(paicpu,op_ref_reg(A_MOVE,S_L,hp,R_A5)));
                 end
@@ -1174,7 +1174,7 @@ end;
                 begin
                    new(hp);
                    reset_reference(hp^);
-                   hp^.offset:=procinfo^.ESI_offset;
+                   hp^.offset:=procinfo^.selfpointer_offset;
                    hp^.base:=procinfo^.framepointer;
                    exprasmlist^.concat(new(paicpu,op_ref_reg(A_MOVE,S_L,hp,R_A5)));
                 end;
@@ -1391,7 +1391,11 @@ end;
 end.
 {
   $Log$
-  Revision 1.36  1999-11-06 14:34:18  peter
+  Revision 1.37  1999-11-09 23:06:44  peter
+    * esi_offset -> selfpointer_offset to be newcg compatible
+    * hcogegen -> cgbase fixes for newcg
+
+  Revision 1.36  1999/11/06 14:34:18  peter
     * truncated log to 20 revs
 
   Revision 1.35  1999/09/27 23:44:48  peter

+ 9 - 5
compiler/cgai386.pas

@@ -2290,7 +2290,7 @@ procedure mov_reg_to_dest(p : ptree; s : topsize; reg : tregister);
                      end;
                    new(hp);
                    reset_reference(hp^);
-                   hp^.offset:=p^.ESI_offset;
+                   hp^.offset:=p^.selfpointer_offset;
                    hp^.base:=R_ESI;
                    emit_ref_reg(A_MOV,S_L,hp,R_ESI);
                 end
@@ -2298,7 +2298,7 @@ procedure mov_reg_to_dest(p : ptree; s : topsize; reg : tregister);
                 begin
                    new(hp);
                    reset_reference(hp^);
-                   hp^.offset:=procinfo^.ESI_offset;
+                   hp^.offset:=procinfo^.selfpointer_offset;
                    hp^.base:=procinfo^.framepointer;
                    emit_ref_reg(A_MOV,S_L,hp,R_ESI);
                 end;
@@ -2889,7 +2889,7 @@ procedure mov_reg_to_dest(p : ptree; s : topsize; reg : tregister);
         begin
            new(hr);
            reset_reference(hr^);
-           hr^.offset:=procinfo^.ESI_offset;
+           hr^.offset:=procinfo^.selfpointer_offset;
            hr^.base:=procinfo^.framepointer;
            exprasmlist^.insert(new(paicpu,op_ref_reg(A_MOV,S_L,hr,R_ESI)));
         end;
@@ -3374,7 +3374,7 @@ procedure mov_reg_to_dest(p : ptree; s : topsize; reg : tregister);
                    not assigned(procinfo^.parent^._class)) then
                   exprasmlist^.concat(new(pai_stabs,init(strpnew(
                    '"$t:v'+procinfo^._class^.numberstring+'",'+
-                   tostr(N_PSYM)+',0,0,'+tostr(procinfo^.esi_offset)))))
+                   tostr(N_PSYM)+',0,0,'+tostr(procinfo^.selfpointer_offset)))))
                 else
                   exprasmlist^.concat(new(pai_stabs,init(strpnew(
                    '"$t:r'+procinfo^._class^.numberstring+'",'+
@@ -3447,7 +3447,11 @@ procedure mov_reg_to_dest(p : ptree; s : topsize; reg : tregister);
 end.
 {
   $Log$
-  Revision 1.57  1999-11-06 14:34:19  peter
+  Revision 1.58  1999-11-09 23:06:44  peter
+    * esi_offset -> selfpointer_offset to be newcg compatible
+    * hcogegen -> cgbase fixes for newcg
+
+  Revision 1.57  1999/11/06 14:34:19  peter
     * truncated log to 20 revs
 
   Revision 1.56  1999/10/25 12:18:11  peter

+ 9 - 7
compiler/cpubase.pas

@@ -514,17 +514,15 @@ const
 
   max_scratch_regs = 1;
 
-{$ifndef noopt}
 { low and high of the available maximum width integer general purpose }
 { registers                                                           }
-       LoGPReg = R_EAX;
-       HiGPReg = R_EDI;
+  LoGPReg = R_EAX;
+  HiGPReg = R_EDI;
 
 { low and high of every possible width general purpose register (same as }
 { above on most architctures apart from the 80x86)                       }
-       LoReg = R_EAX;
-       HiReg = R_BL;
-{$endif noopt}
+  LoReg = R_EAX;
+  HiReg = R_BL;
 
   cpuflags = [];
 
@@ -889,7 +887,11 @@ end;
 end.
 {
   $Log$
-  Revision 1.16  1999-11-06 14:34:20  peter
+  Revision 1.17  1999-11-09 23:06:45  peter
+    * esi_offset -> selfpointer_offset to be newcg compatible
+    * hcogegen -> cgbase fixes for newcg
+
+  Revision 1.16  1999/11/06 14:34:20  peter
     * truncated log to 20 revs
 
   Revision 1.15  1999/10/27 16:11:28  peter

+ 6 - 2
compiler/hcodegen.pas

@@ -67,7 +67,7 @@ implementation
           { frame pointer offset }
           framepointer_offset : longint;
           { self pointer offset }
-          ESI_offset : longint;
+          selfpointer_offset : longint;
           { result value offset }
           retoffset : longint;
 
@@ -374,7 +374,11 @@ end.
 
 {
   $Log$
-  Revision 1.47  1999-11-06 14:34:21  peter
+  Revision 1.48  1999-11-09 23:06:45  peter
+    * esi_offset -> selfpointer_offset to be newcg compatible
+    * hcogegen -> cgbase fixes for newcg
+
+  Revision 1.47  1999/11/06 14:34:21  peter
     * truncated log to 20 revs
 
   Revision 1.46  1999/10/21 14:18:54  peter

+ 13 - 4
compiler/options.pas

@@ -1068,15 +1068,20 @@ begin
 {$ifdef m68k}
   def_symbol('CPU68');
 {$endif}
+
+{ new processor stuff }
+{$ifdef i386}
+  def_symbol('CPUI386');
+{$endif}
+{$ifdef m68k}
+  def_symbol('CPU68K');
+{$endif}
 {$ifdef ALPHA}
   def_symbol('CPUALPHA');
 {$endif}
 {$ifdef powerpc}
   def_symbol('CPUPOWERPC');
 {$endif}
-{$ifdef m68k}
-  def_symbol('CPU68K');
-{$endif}
 
 { get default messagefile }
 {$ifdef Delphi}
@@ -1251,7 +1256,11 @@ end;
 end.
 {
   $Log$
-  Revision 1.33  1999-11-06 14:34:21  peter
+  Revision 1.34  1999-11-09 23:06:45  peter
+    * esi_offset -> selfpointer_offset to be newcg compatible
+    * hcogegen -> cgbase fixes for newcg
+
+  Revision 1.33  1999/11/06 14:34:21  peter
     * truncated log to 20 revs
 
   Revision 1.32  1999/11/04 23:13:25  peter

+ 6 - 2
compiler/pass_2.pas

@@ -464,7 +464,7 @@ implementation
 
                          { calc parameter distance new }
                          dec(procinfo^.framepointer_offset,4);
-                         dec(procinfo^.ESI_offset,4);
+                         dec(procinfo^.selfpointer_offset,4);
 
                          { is this correct ???}
                          { retoffset can be negativ for results in eax !! }
@@ -697,7 +697,11 @@ implementation
 end.
 {
   $Log$
-  Revision 1.41  1999-11-06 14:34:21  peter
+  Revision 1.42  1999-11-09 23:06:45  peter
+    * esi_offset -> selfpointer_offset to be newcg compatible
+    * hcogegen -> cgbase fixes for newcg
+
+  Revision 1.41  1999/11/06 14:34:21  peter
     * truncated log to 20 revs
 
   Revision 1.40  1999/09/27 23:44:52  peter

+ 5 - 5
compiler/pdecl.pas

@@ -117,11 +117,7 @@ unit pdecl;
 {$else}
                      aktprocdef^.procoptions:=aktprocdef^.procoptions+[po_containsself];
 {$endif}
-{$ifdef newcg}
                      inc(procinfo^.selfpointer_offset,vs^.address);
-      {$else newcg}
-                     inc(procinfo^.ESI_offset,vs^.address);
-      {$endif newcg}
                    end;
                   consume(idtoken);
                   consume(_COLON);
@@ -1190,7 +1186,11 @@ unit pdecl;
 end.
 {
   $Log$
-  Revision 1.169  1999-11-09 12:58:29  peter
+  Revision 1.170  1999-11-09 23:06:45  peter
+    * esi_offset -> selfpointer_offset to be newcg compatible
+    * hcogegen -> cgbase fixes for newcg
+
+  Revision 1.169  1999/11/09 12:58:29  peter
     * support absolute unit.variable
 
   Revision 1.168  1999/11/06 14:34:21  peter

+ 20 - 16
compiler/psub.pas

@@ -65,18 +65,22 @@ uses
 {$ifdef GDB}
   ,gdb
 {$endif GDB}
-{$ifdef i386}
-{$ifndef newcg}
-  ,tgeni386
-  ,cgai386
-{$endif newcg}
-  {$ifndef NoOpt}
-  ,aopt386
+{$ifdef newcg}
+  {$ifndef NOOPT}
+    ,aopt
   {$endif}
-{$endif}
-{$ifdef m68k}
-  ,tgen68k,cga68k
-{$endif}
+{$else}
+  {$ifdef i386}
+    ,tgeni386
+    ,cgai386
+    {$ifndef NOOPT}
+      ,aopt386
+    {$endif}
+  {$endif}
+  {$ifdef m68k}
+    ,tgen68k,cga68k
+  {$endif}
+{$endif newcg}
   { parser specific stuff }
   ,pbase,ptype,pdecl,pexpr,pstatmnt
 {$ifdef newcg}
@@ -292,11 +296,7 @@ begin
   { self isn't pushed in nested procedure of methods }
   if assigned(procinfo^._class) and (lexlevel=normal_function_level) then
     begin
-{$ifdef newcg}
       procinfo^.selfpointer_offset:=paramoffset;
-{$else newcg}
-      procinfo^.ESI_offset:=paramoffset;
-{$endif newcg}
       if assigned(aktprocsym^.definition) and
          not(po_containsself in aktprocsym^.definition^.procoptions) then
         inc(paramoffset,target_os.size_of_pointer);
@@ -1902,7 +1902,11 @@ end.
 
 {
   $Log$
-  Revision 1.31  1999-11-06 14:34:23  peter
+  Revision 1.32  1999-11-09 23:06:45  peter
+    * esi_offset -> selfpointer_offset to be newcg compatible
+    * hcogegen -> cgbase fixes for newcg
+
+  Revision 1.31  1999/11/06 14:34:23  peter
     * truncated log to 20 revs
 
   Revision 1.30  1999/10/26 12:30:44  peter

+ 12 - 3
compiler/ra386att.pas

@@ -37,8 +37,13 @@ Implementation
 Uses
   globtype,
   strings,cobjects,systems,verbose,globals,
-  files,aasm,types,symconst,symtable,scanner,hcodegen,
-  cpubase,rautils,ra386;
+  files,aasm,types,symconst,symtable,scanner,cpubase,
+{$ifdef NEWCG}
+  cgbase,
+{$else}
+  hcodegen,
+{$endif}
+  rautils,ra386;
 
 type
  tasmtoken = (
@@ -1987,7 +1992,11 @@ begin
 end.
 {
   $Log$
-  Revision 1.61  1999-11-06 14:34:23  peter
+  Revision 1.62  1999-11-09 23:06:46  peter
+    * esi_offset -> selfpointer_offset to be newcg compatible
+    * hcogegen -> cgbase fixes for newcg
+
+  Revision 1.61  1999/11/06 14:34:23  peter
     * truncated log to 20 revs
 
   Revision 1.60  1999/10/01 07:59:20  peter

+ 12 - 3
compiler/ra386dir.pas

@@ -32,8 +32,13 @@ unit Ra386dir;
   implementation
 
      uses
-        files,hcodegen,globals,scanner,aasm,cpubase,cpuasm,
+        files,globals,scanner,aasm,cpubase,cpuasm,
         cobjects,symconst,symtable,types,verbose,
+{$ifdef NEWCG}
+        cgbase,
+{$else}
+        hcodegen,
+{$endif}
         rautils,ra386;
 
     function assemble : ptree;
@@ -230,7 +235,7 @@ unit Ra386dir;
                                            if upper(hs)='__SELF' then
                                              begin
                                                 if assigned(procinfo^._class) then
-                                                  hs:=tostr(procinfo^.ESI_offset)+'('+att_reg2str[procinfo^.framepointer]+')'
+                                                  hs:=tostr(procinfo^.selfpointer_offset)+'('+att_reg2str[procinfo^.framepointer]+')'
                                                 else
                                                  Message(asmr_e_cannot_use_SELF_outside_a_method);
                                              end
@@ -290,7 +295,11 @@ unit Ra386dir;
 end.
 {
   $Log$
-  Revision 1.25  1999-11-06 14:34:24  peter
+  Revision 1.26  1999-11-09 23:06:46  peter
+    * esi_offset -> selfpointer_offset to be newcg compatible
+    * hcogegen -> cgbase fixes for newcg
+
+  Revision 1.25  1999/11/06 14:34:24  peter
     * truncated log to 20 revs
 
   Revision 1.24  1999/09/27 23:44:58  peter

+ 11 - 2
compiler/ra386int.pas

@@ -38,7 +38,12 @@ Implementation
 Uses
   globtype,
   strings,cobjects,systems,verbose,globals,
-  files,aasm,types,scanner,hcodegen,symtable,cpubase,
+  files,aasm,types,scanner,symtable,cpubase,
+{$ifdef NEWCG}
+  cgbase,
+{$else}
+  hcodegen,
+{$endif}
   rautils,ra386;
 
 
@@ -1767,7 +1772,11 @@ begin
 end.
 {
   $Log$
-  Revision 1.51  1999-11-06 14:34:24  peter
+  Revision 1.52  1999-11-09 23:06:46  peter
+    * esi_offset -> selfpointer_offset to be newcg compatible
+    * hcogegen -> cgbase fixes for newcg
+
+  Revision 1.51  1999/11/06 14:34:24  peter
     * truncated log to 20 revs
 
   Revision 1.50  1999/10/01 07:59:21  peter

+ 6 - 2
compiler/ra68kmot.pas

@@ -1634,7 +1634,7 @@ var
                          Begin
                            if assigned(procinfo._class) then
                              Begin
-                               instr.operands[operandnum].ref.offset := procinfo.ESI_offset;
+                               instr.operands[operandnum].ref.offset := procinfo.selfpointer_offset;
                                instr.operands[operandnum].ref.base := procinfo.framepointer;
                              end
                            else
@@ -2178,7 +2178,11 @@ Begin
 end.
 {
   $Log$
-  Revision 1.9  1999-09-16 23:05:56  florian
+  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)
 
   Revision 1.8  1999/01/10 15:37:59  peter

+ 12 - 3
compiler/rautils.pas

@@ -27,7 +27,12 @@ Uses
   strings,
   cobjects,
   globtype,systems,verbose,globals,files,
-  symconst,symtable,aasm,hcodegen,cpubase,cpuasm
+  symconst,symtable,aasm,cpubase,cpuasm
+{$ifdef NEWCG}
+  ,cgbase
+{$else}
+  ,hcodegen
+{$endif}
   ;
 
 Const
@@ -692,7 +697,7 @@ Begin
   if assigned(procinfo^._class) then
    Begin
      opr.typ:=OPR_REFERENCE;
-     opr.ref.offset:=procinfo^.ESI_offset;
+     opr.ref.offset:=procinfo^.selfpointer_offset;
      opr.ref.base:=procinfo^.framepointer;
      opr.ref.options:=ref_selffixup;
      SetupSelf:=true;
@@ -1433,7 +1438,11 @@ end;
 end.
 {
   $Log$
-  Revision 1.28  1999-11-06 14:34:26  peter
+  Revision 1.29  1999-11-09 23:06:46  peter
+    * esi_offset -> selfpointer_offset to be newcg compatible
+    * hcogegen -> cgbase fixes for newcg
+
+  Revision 1.28  1999/11/06 14:34:26  peter
     * truncated log to 20 revs
 
   Revision 1.27  1999/09/27 23:44:58  peter