mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-09 00:08:12 +02:00
+ introduced TObjData.SymbolPairDefine, to allow custom handling of symbol
pairs in the internal object writer
This commit is contained in:
parent
6e7e632682
commit
83f2f7bf37
@ -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',
|
||||
|
@ -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');
|
||||
|
@ -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 :
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user