mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-11 20:26:00 +02:00
Copy TExternChain type and AddSymbol procedure to unit aasmcpu from agx86nsm unit
git-svn-id: trunk@34079 -
This commit is contained in:
parent
b3063b7db2
commit
38f751573a
@ -381,6 +381,26 @@ interface
|
|||||||
procedure DoneAsm;
|
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
|
implementation
|
||||||
|
|
||||||
uses
|
uses
|
||||||
@ -392,6 +412,44 @@ implementation
|
|||||||
symsym,
|
symsym,
|
||||||
cpuinfo;
|
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
|
Instruction table
|
||||||
*****************************************************************************}
|
*****************************************************************************}
|
||||||
|
Loading…
Reference in New Issue
Block a user