Explorar o código

* tabstractprocdef.address_type i8086-specific code moved to symcpu, ifdef i8086 removed

git-svn-id: trunk@27548 -
nickysn %!s(int64=11) %!d(string=hai) anos
pai
achega
0a515311e6
Modificáronse 2 ficheiros con 12 adicións e 9 borrados
  1. 10 0
      compiler/i8086/symcpu.pas
  2. 2 9
      compiler/symdef.pas

+ 10 - 0
compiler/i8086/symcpu.pas

@@ -99,6 +99,7 @@ type
 
 
   tcpuprocdef = class(tprocdef)
   tcpuprocdef = class(tprocdef)
     constructor create(level:byte);override;
     constructor create(level:byte);override;
+    function address_type:tdef;override;
   end;
   end;
   tcpuprocdefclass = class of tcpuprocdef;
   tcpuprocdefclass = class of tcpuprocdef;
 
 
@@ -198,6 +199,15 @@ implementation
         procoptions:=procoptions+[po_far];
         procoptions:=procoptions+[po_far];
     end;
     end;
 
 
+
+  function tcpuprocdef.address_type: tdef;
+    begin
+      if po_far in procoptions then
+        result:=voidfarpointertype
+      else
+        result:=voidnearpointertype;
+    end;
+
 {****************************************************************************
 {****************************************************************************
                              tcpuprocvardef
                              tcpuprocvardef
 ****************************************************************************}
 ****************************************************************************}

+ 2 - 9
compiler/symdef.pas

@@ -574,7 +574,7 @@ interface
           procedure init_paraloc_info(side: tcallercallee);
           procedure init_paraloc_info(side: tcallercallee);
           function stack_tainting_parameter(side: tcallercallee): boolean;
           function stack_tainting_parameter(side: tcallercallee): boolean;
           function is_pushleftright: boolean;
           function is_pushleftright: boolean;
-          function address_type:tdef;
+          function address_type:tdef;virtual;
           procedure declared_far;virtual;
           procedure declared_far;virtual;
           procedure declared_near;virtual;
           procedure declared_near;virtual;
        private
        private
@@ -4486,14 +4486,7 @@ implementation
 
 
     function tabstractprocdef.address_type: tdef;
     function tabstractprocdef.address_type: tdef;
       begin
       begin
-{$ifdef i8086}
-        if po_far in procoptions then
-          result:=voidfarpointertype
-        else
-          result:=voidnearpointertype;
-{$else i8086}
-          result:=voidpointertype;
-{$endif i8086}
+        result:=voidcodepointertype;
       end;
       end;