+ 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 -
This commit is contained in:
nickysn 2015-10-21 16:53:41 +00:00
parent e325cf1126
commit b0130c008d

View File

@ -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? }