Sfoglia il codice sorgente

+ show the full segment:offset value of far and huge pointer const nodes in the node tree generated by -vp

git-svn-id: trunk@32117 -
nickysn 9 anni fa
parent
commit
b0130c008d
1 ha cambiato i file con 12 aggiunte e 1 eliminazioni
  1. 12 1
      compiler/i8086/n8086con.pas

+ 12 - 1
compiler/i8086/n8086con.pas

@@ -34,6 +34,7 @@ interface
 
 
       ti8086pointerconstnode = class(tcgpointerconstnode)
       ti8086pointerconstnode = class(tcgpointerconstnode)
         constructor create(v : TConstPtrUInt;def:tdef);override;
         constructor create(v : TConstPtrUInt;def:tdef);override;
+        procedure printnodedata(var t: text);override;
         procedure pass_generate_code;override;
         procedure pass_generate_code;override;
       end;
       end;
 
 
@@ -44,7 +45,8 @@ implementation
       symconst,symdef,symcpu,
       symconst,symdef,symcpu,
       defutil,
       defutil,
       cpubase,
       cpubase,
-      cga,cgx86,cgobj,cgbase,cgutils;
+      cga,cgx86,cgobj,cgbase,cgutils,
+      node;
 
 
     {*****************************************************************************
     {*****************************************************************************
                                T8086POINTERCONSTNODE
                                T8086POINTERCONSTNODE
@@ -60,6 +62,15 @@ implementation
       end;
       end;
 
 
 
 
+    procedure ti8086pointerconstnode.printnodedata(var t: text);
+      begin
+        if (typedef.typ=pointerdef) and (tcpupointerdef(typedef).x86pointertyp in [x86pt_far,x86pt_huge]) then
+          writeln(t,printnodeindention,'value = $',hexstr(word(value shr 16),4),':',hexstr(word(value),4))
+        else
+          inherited printnodedata(t);
+      end;
+
+
     procedure ti8086pointerconstnode.pass_generate_code;
     procedure ti8086pointerconstnode.pass_generate_code;
       begin
       begin
         { far pointer? }
         { far pointer? }