+ introduced TObjData.SymbolPairDefine, to allow custom handling of symbol

pairs in the internal object writer
This commit is contained in:
Nikolay Nikolov 2021-09-26 03:56:56 +03:00
parent 6e7e632682
commit 83f2f7bf37
4 changed files with 14 additions and 2 deletions

View File

@ -78,6 +78,8 @@ interface
info alt_dbgline and alt_dbgfile, etc. }
TAsmLabelType = (alt_jump,alt_addr,alt_data,alt_dbgline,alt_dbgfile,alt_dbgtype,alt_dbgframe,alt_eh_begin,alt_eh_end);
TSymbolPairKind = (spk_set, spk_set_global, spk_thumb_set, spk_localentry);
const
asmlabeltypeprefix : array[TAsmLabeltype] of string[2] = ('j','a','d','l','f','t','c','eb','ee');
asmsymbindname : array[TAsmsymbind] of string[23] = ('none', 'external','common',

View File

@ -432,8 +432,6 @@ interface
ash_pushnv,ash_savenv
);
TSymbolPairKind = (spk_set, spk_set_global, spk_thumb_set, spk_localentry);
const
regallocstr : array[tregalloctype] of string[10]=('allocated','released','sync','resized','used');

View File

@ -1790,6 +1790,9 @@ Implementation
internalerror(2009090804); ;}
ObjData.SymbolDefine(Tai_symbol(hp).sym);
end;
ait_symbolpair :
with tai_symbolpair(hp) do
ObjData.SymbolPairDefine(kind,sym^,value^);
ait_label :
ObjData.SymbolDefine(Tai_label(hp).labsym);
ait_string :
@ -1951,6 +1954,9 @@ Implementation
objsym:=ObjData.SymbolRef(Tai_symbol_end(hp).sym);
objsym.size:=ObjData.CurrObjSec.Size-objsym.offset;
end;
ait_symbolpair:
with tai_symbolpair(hp) do
ObjData.SymbolPairDefine(kind,sym^,value^);
ait_label :
ObjData.SymbolDefine(Tai_label(hp).labsym);
ait_string :

View File

@ -435,6 +435,7 @@ interface
function symboldefine(const aname:string;abind:TAsmsymbind;atyp:Tasmsymtype):TObjSymbol;
function symbolref(asmsym:TAsmSymbol):TObjSymbol;
function symbolref(const aname:string):TObjSymbol;
procedure symbolpairdefine(akind: TSymbolPairKind;const asym, avalue: string);virtual;
procedure ResetCachedAsmSymbols;
{ Allocation }
procedure alloc(len:TObjSectionOfs);
@ -1546,6 +1547,11 @@ implementation
end;
procedure TObjData.symbolpairdefine(akind: TSymbolPairKind; const asym, avalue: string);
begin
end;
procedure TObjData.ResetCachedAsmSymbols;
var
i : longint;