Copy TExternChain type and AddSymbol procedure to unit aasmcpu from agx86nsm unit

git-svn-id: trunk@34079 -
This commit is contained in:
pierre 2016-07-06 06:55:31 +00:00
parent b3063b7db2
commit 38f751573a

View File

@ -381,6 +381,26 @@ interface
procedure DoneAsm;
{*****************************************************************************
External Symbol Chain
used for agx86nsm and agx86int
*****************************************************************************}
type
PExternChain = ^TExternChain;
TExternChain = Record
psym : pshortstring;
is_defined : boolean;
next : PExternChain;
end;
const
FEC : PExternChain = nil;
procedure AddSymbol(symname : string; defined : boolean);
procedure FreeExternChainList;
implementation
uses
@ -392,6 +412,44 @@ implementation
symsym,
cpuinfo;
procedure AddSymbol(symname : string; defined : boolean);
var
EC : PExternChain;
begin
EC:=FEC;
while assigned(EC) do
begin
if EC^.psym^=symname then
begin
if defined then
EC^.is_defined:=true;
exit;
end;
EC:=EC^.next;
end;
New(EC);
EC^.next:=FEC;
FEC:=EC;
FEC^.psym:=stringdup(symname);
FEC^.is_defined := defined;
end;
procedure FreeExternChainList;
var
EC : PExternChain;
begin
EC:=FEC;
while assigned(EC) do
begin
FEC:=EC^.next;
stringdispose(EC^.psym);
Dispose(EC);
EC:=FEC;
end;
end;
{*****************************************************************************
Instruction table
*****************************************************************************}