Browse Source

* adapted to procinfo as pointer

pierre 26 years ago
parent
commit
614fff10f0
2 changed files with 21 additions and 17 deletions
  1. 14 12
      compiler/cg68kld.pas
  2. 7 5
      compiler/ra68kmot.pas

+ 14 - 12
compiler/cg68kld.pas

@@ -93,7 +93,7 @@ implementation
                          if (symtabletype=parasymtable) or (symtabletype=localsymtable) then
                            begin
 
-                              p^.location.reference.base:=procinfo.framepointer;
+                              p^.location.reference.base:=procinfo^.framepointer;
                               p^.location.reference.offset:=pvarsym(p^.symtableentry)^.address;
 
                               if (symtabletype=localsymtable) then
@@ -109,8 +109,8 @@ implementation
                                    { make a reference }
                                    new(hp);
                                    reset_reference(hp^);
-                                   hp^.offset:=procinfo.framepointer_offset;
-                                   hp^.base:=procinfo.framepointer;
+                                   hp^.offset:=procinfo^.framepointer_offset;
+                                   hp^.base:=procinfo^.framepointer;
 
                                    exprasmlist^.concat(new(paicpu,op_ref_reg(A_MOVE,S_L,hp,hregister)));
 
@@ -157,7 +157,7 @@ implementation
                                                   new(hp);
                                                   reset_reference(hp^);
                                                   hp^.offset:=p^.symtable^.datasize;
-                                                  hp^.base:=procinfo.framepointer;
+                                                  hp^.base:=procinfo^.framepointer;
 
                                                   exprasmlist^.concat(new(paicpu,op_ref_reg(A_MOVE,S_L,hp,hregister)));
 
@@ -177,7 +177,7 @@ implementation
                               if hregister=R_NO then
                                 hregister:=getaddressreg;
                               { ADDED FOR OPEN ARRAY SUPPORT. }
-                              if (p^.location.reference.base=procinfo.framepointer) then
+                              if (p^.location.reference.base=procinfo^.framepointer) then
                                 begin
                                    highframepointer:=p^.location.reference.base;
                                    highoffset:=p^.location.reference.offset;
@@ -414,11 +414,11 @@ implementation
            begin
               hr:=getaddressreg;
               hr_valid:=true;
-              hp:=new_reference(procinfo.framepointer,
-                procinfo.framepointer_offset);
+              hp:=new_reference(procinfo^.framepointer,
+                procinfo^.framepointer_offset);
               exprasmlist^.concat(new(paicpu,op_ref_reg(A_MOVE,S_L,hp,hr)));
 
-              pp:=procinfo.parent;
+              pp:=procinfo^.parent;
               { walk up the stack frame }
               while pp<>pprocinfo(p^.funcretprocinfo) do
                 begin
@@ -430,8 +430,8 @@ implementation
               p^.location.reference.base:=hr;
            end
          else
-           p^.location.reference.base:=procinfo.framepointer;
-         p^.location.reference.offset:=procinfo.retoffset;
+           p^.location.reference.base:=procinfo^.framepointer;
+         p^.location.reference.offset:=procinfo^.retoffset;
          if ret_in_param(p^.retdef) then
            begin
               if not hr_valid then
@@ -473,7 +473,10 @@ implementation
 end.
 {
   $Log$
-  Revision 1.9  1999-09-16 23:05:51  florian
+  Revision 1.10  1999-11-10 00:06:08  pierre
+   * adapted to procinfo as pointer
+
+  Revision 1.9  1999/09/16 23:05:51  florian
     * m68k compiler is again compilable (only gas writer, no assembler reader)
 
   Revision 1.8  1999/09/16 11:34:54  pierre
@@ -515,4 +518,3 @@ end.
     * m68k fixes, splitted cg68k like cgi386
 
 }
-

+ 7 - 5
compiler/ra68kmot.pas

@@ -1632,10 +1632,10 @@ var
                          if actasmpattern = 'SELF' then
                           { special self variable }
                          Begin
-                           if assigned(procinfo._class) then
+                           if assigned(procinfo^._class) then
                              Begin
-                               instr.operands[operandnum].ref.offset := procinfo.selfpointer_offset;
-                               instr.operands[operandnum].ref.base := procinfo.framepointer;
+                               instr.operands[operandnum].ref.offset := procinfo^.selfpointer_offset;
+                               instr.operands[operandnum].ref.base := procinfo^.framepointer;
                              end
                            else
                              Message(assem_e_cannot_use_SELF_outside_a_method);
@@ -2178,7 +2178,10 @@ Begin
 end.
 {
   $Log$
-  Revision 1.10  1999-11-09 23:06:46  peter
+  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
 
@@ -2273,4 +2276,3 @@ end.
 
 }
 
-