فهرست منبع

+ added symdef.voidstackpointertype - the pointer type that will be used in the
high level code generator for obtaining references to parameters, local
variables and temps on the stack.

git-svn-id: trunk@27308 -

nickysn 11 سال پیش
والد
کامیت
7f88dc9d95
2فایلهای تغییر یافته به همراه13 افزوده شده و 0 حذف شده
  1. 12 0
      compiler/psystem.pas
  2. 1 0
      compiler/symdef.pas

+ 12 - 0
compiler/psystem.pas

@@ -149,6 +149,16 @@ implementation
 {$endif avr}
       end;
 
+
+    procedure set_default_ptr_types;
+      begin
+{$ifdef i8086}
+        voidstackpointertype:=voidnearsspointertype;
+{$else i8086}
+        voidstackpointertype:=voidpointertype;
+{$endif i8086}
+      end;
+
     procedure create_intern_types;
       {
         all the types inserted into the system unit
@@ -296,6 +306,7 @@ implementation
         longintfarpointertype:=tpointerdef.createx86(s32inttype,x86pt_far);
   {$endif i8086}
 {$endif x86}
+        set_default_ptr_types;
         cfiletype:=tfiledef.createuntyped;
         cvarianttype:=tvariantdef.create(vt_normalvariant);
         colevarianttype:=tvariantdef.create(vt_olevariant);
@@ -586,6 +597,7 @@ implementation
         loadtype('methodpointer',methodpointertype);
         loadtype('HRESULT',hresultdef);
         set_default_int_types;
+        set_default_ptr_types;
         set_current_module(oldcurrentmodule);
       end;
 

+ 1 - 0
compiler/symdef.pas

@@ -895,6 +895,7 @@ interface
        voidpointertype,           { pointer for Void-pointeddef }
        charpointertype,           { pointer for Char-pointeddef }
        widecharpointertype,       { pointer for WideChar-pointeddef }
+       voidstackpointertype,      { the pointer type used for accessing parameters and local vars on the stack }
        parentfpvoidpointertype,   { void pointer with the size of the hidden parentfp parameter, passed to nested functions }
 {$ifdef x86}
        voidnearpointertype,