mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-12-05 21:09:03 +01:00
* moved the i8086 specific code from tpointerconstnode.create to the i8086
descendant class git-svn-id: trunk@27285 -
This commit is contained in:
parent
cdac1d23cd
commit
22acb2e44b
@ -26,20 +26,21 @@ unit n8086con;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
node,ncon,ncgcon,nx86con;
|
globtype,symtype,ncon,ncgcon,nx86con;
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
{ tcgpointerconstnode }
|
{ tcgpointerconstnode }
|
||||||
|
|
||||||
ti8086pointerconstnode = class(tcgpointerconstnode)
|
ti8086pointerconstnode = class(tcgpointerconstnode)
|
||||||
|
constructor create(v : TConstPtrUInt;def:tdef);override;
|
||||||
procedure pass_generate_code;override;
|
procedure pass_generate_code;override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
uses
|
uses
|
||||||
systems,globals,globtype,
|
systems,globals,
|
||||||
symconst,symdef,
|
symconst,symdef,
|
||||||
defutil,
|
defutil,
|
||||||
cpubase,
|
cpubase,
|
||||||
@ -49,6 +50,16 @@ implementation
|
|||||||
T8086POINTERCONSTNODE
|
T8086POINTERCONSTNODE
|
||||||
*****************************************************************************}
|
*****************************************************************************}
|
||||||
|
|
||||||
|
|
||||||
|
constructor ti8086pointerconstnode.create(v: TConstPtrUInt; def: tdef);
|
||||||
|
begin
|
||||||
|
{ truncate near pointers }
|
||||||
|
if (def.typ<>pointerdef) or not (tpointerdef(def).x86pointertyp in [x86pt_far,x86pt_huge]) then
|
||||||
|
v := Word(v);
|
||||||
|
inherited create(v, def);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure ti8086pointerconstnode.pass_generate_code;
|
procedure ti8086pointerconstnode.pass_generate_code;
|
||||||
begin
|
begin
|
||||||
{ far pointer? }
|
{ far pointer? }
|
||||||
|
|||||||
@ -738,11 +738,6 @@ implementation
|
|||||||
|
|
||||||
begin
|
begin
|
||||||
inherited create(pointerconstn);
|
inherited create(pointerconstn);
|
||||||
{$ifdef i8086}
|
|
||||||
{ truncate near pointers }
|
|
||||||
if (def.typ<>pointerdef) or not (tpointerdef(def).x86pointertyp in [x86pt_far,x86pt_huge]) then
|
|
||||||
v := Word(v);
|
|
||||||
{$endif i8086}
|
|
||||||
value:=v;
|
value:=v;
|
||||||
typedef:=def;
|
typedef:=def;
|
||||||
end;
|
end;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user