2
0
Эх сурвалжийг харах

* i8086 and i386-specific code from tabstractprocdef.is_pushleftright moved to
symi86

git-svn-id: trunk@27549 -

nickysn 11 жил өмнө
parent
commit
fc71081b74

+ 2 - 2
compiler/i8086/symcpu.pas

@@ -90,14 +90,14 @@ type
 
 
   { tcpuprocvardef }
   { tcpuprocvardef }
 
 
-  tcpuprocvardef = class(tprocvardef)
+  tcpuprocvardef = class(ti86procvardef)
     constructor create(level:byte);override;
     constructor create(level:byte);override;
   end;
   end;
   tcpuprocvardefclass = class of tcpuprocvardef;
   tcpuprocvardefclass = class of tcpuprocvardef;
 
 
   { tcpuprocdef }
   { tcpuprocdef }
 
 
-  tcpuprocdef = class(tprocdef)
+  tcpuprocdef = class(ti86procdef)
     constructor create(level:byte);override;
     constructor create(level:byte);override;
     function address_type:tdef;override;
     function address_type:tdef;override;
   end;
   end;

+ 1 - 5
compiler/symdef.pas

@@ -573,7 +573,7 @@ interface
           procedure check_mark_as_nested;
           procedure check_mark_as_nested;
           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;virtual;
           function address_type:tdef;virtual;
           function address_type:tdef;virtual;
           procedure declared_far;virtual;
           procedure declared_far;virtual;
           procedure declared_near;virtual;
           procedure declared_near;virtual;
@@ -4477,11 +4477,7 @@ implementation
 
 
     function tabstractprocdef.is_pushleftright: boolean;
     function tabstractprocdef.is_pushleftright: boolean;
       begin
       begin
-{$if defined(i8086) or defined(i386)}
-        result:=proccalloption in pushleftright_pocalls;
-{$else}
         result:=false;
         result:=false;
-{$endif}
       end;
       end;
 
 
     function tabstractprocdef.address_type: tdef;
     function tabstractprocdef.address_type: tdef;

+ 26 - 0
compiler/x86/symi86.pas

@@ -30,6 +30,18 @@ uses
 
 
 type
 type
 
 
+  { ti86procvardef }
+
+  ti86procvardef = class(tprocvardef)
+    function is_pushleftright: boolean; override;
+  end;
+
+  { ti86procdef }
+
+  ti86procdef = class(tprocdef)
+    function is_pushleftright: boolean; override;
+  end;
+
   { ti86absolutevarsym }
   { ti86absolutevarsym }
 
 
   ti86absolutevarsym = class(tabsolutevarsym)
   ti86absolutevarsym = class(tabsolutevarsym)
@@ -45,6 +57,20 @@ implementation
 uses
 uses
   symconst;
   symconst;
 
 
+{ ti86procvardef }
+
+function ti86procvardef.is_pushleftright: boolean;
+  begin
+    result:=proccalloption in pushleftright_pocalls;
+  end;
+
+{ ti86procdef }
+
+function ti86procdef.is_pushleftright: boolean;
+  begin
+    result:=proccalloption in pushleftright_pocalls;
+  end;
+
 { ti86absolutevarsym }
 { ti86absolutevarsym }
 
 
 procedure ti86absolutevarsym.ppuload_platform(ppufile: tcompilerppufile);
 procedure ti86absolutevarsym.ppuload_platform(ppufile: tcompilerppufile);