mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-17 12:39:25 +02:00
* use alt_dbgframe for call frame info labels
git-svn-id: trunk@2339 -
This commit is contained in:
parent
068c67190b
commit
01808d825d
@ -109,7 +109,7 @@ interface
|
||||
{ is the label only there for getting an address (e.g. for i/o
|
||||
checks -> alt_addr) or is it a jump target (alt_jump), for debug
|
||||
info alt_dbgline and alt_dbgfile }
|
||||
TAsmLabelType = (alt_jump,alt_addr,alt_data,alt_dbgline,alt_dbgfile,alt_dbgtype);
|
||||
TAsmLabelType = (alt_jump,alt_addr,alt_data,alt_dbgline,alt_dbgfile,alt_dbgtype,alt_dbgframe);
|
||||
|
||||
TAsmLabel = class(TAsmSymbol)
|
||||
labelnr : longint;
|
||||
@ -257,7 +257,7 @@ interface
|
||||
|
||||
const
|
||||
{ alt_jump,alt_addr,alt_data,alt_dbgline,alt_dbgfile }
|
||||
asmlabeltypeprefix : array[tasmlabeltype] of char = ('j','a','d','l','f','t');
|
||||
asmlabeltypeprefix : array[tasmlabeltype] of char = ('j','a','d','l','f','t','c');
|
||||
|
||||
var
|
||||
objectlibrary : tasmlibrarydata;
|
||||
|
@ -314,10 +314,10 @@ implementation
|
||||
BYTE return address register
|
||||
<...> start sequence
|
||||
}
|
||||
objectlibrary.getjumplabel(cielabel);
|
||||
objectlibrary.getlabel(cielabel,alt_dbgframe);
|
||||
list.concat(tai_label.create(cielabel));
|
||||
objectlibrary.getjumplabel(lenstartlabel);
|
||||
objectlibrary.getjumplabel(lenendlabel);
|
||||
objectlibrary.getlabel(lenstartlabel,alt_dbgframe);
|
||||
objectlibrary.getlabel(lenendlabel,alt_dbgframe);
|
||||
list.concat(tai_const.create_rel_sym(aitconst_32bit,lenstartlabel,lenendlabel));
|
||||
list.concat(tai_label.create(lenstartlabel));
|
||||
list.concat(tai_const.create_32bit(longint($ffffffff)));
|
||||
@ -348,8 +348,8 @@ implementation
|
||||
if (hp.ops<>1) or
|
||||
(hp.oper[0].typ<>dop_reloffset) then
|
||||
internalerror(200404126);
|
||||
objectlibrary.getjumplabel(lenstartlabel);
|
||||
objectlibrary.getjumplabel(lenendlabel);
|
||||
objectlibrary.getlabel(lenstartlabel,alt_dbgframe);
|
||||
objectlibrary.getlabel(lenendlabel,alt_dbgframe);
|
||||
{ FDE
|
||||
DWORD length
|
||||
DWORD CIE-pointer = cielabel
|
||||
@ -389,8 +389,8 @@ implementation
|
||||
begin
|
||||
if assigned(FFrameStartLabel) then
|
||||
internalerror(200404129);
|
||||
objectlibrary.getjumplabel(FFrameStartLabel);
|
||||
objectlibrary.getjumplabel(FFrameEndLabel);
|
||||
objectlibrary.getlabel(FFrameStartLabel,alt_dbgframe);
|
||||
objectlibrary.getlabel(FFrameEndLabel,alt_dbgframe);
|
||||
FLastloclabel:=FFrameStartLabel;
|
||||
list.concat(tai_label.create(FFrameStartLabel));
|
||||
al_dwarf.concat(tdwarfitem.create_reloffset(DW_CFA_start_frame,doe_32bit,FFrameStartLabel,FFrameEndLabel));
|
||||
@ -415,7 +415,7 @@ implementation
|
||||
begin
|
||||
if FLastloclabel=nil then
|
||||
internalerror(200404082);
|
||||
objectlibrary.getjumplabel(currloclabel);
|
||||
objectlibrary.getlabel(currloclabel,alt_dbgframe);
|
||||
list.concat(tai_label.create(currloclabel));
|
||||
al_dwarf.concat(tdwarfitem.create_reloffset(DW_CFA_advance_loc4,doe_32bit,FLastloclabel,currloclabel));
|
||||
FLastloclabel:=currloclabel;
|
||||
|
@ -55,7 +55,6 @@ implementation
|
||||
var
|
||||
there_is_a_destructor : boolean;
|
||||
classtype : tobjectdeftype;
|
||||
// childof : tobjectdef;
|
||||
|
||||
function constructor_head:tprocdef;
|
||||
var
|
||||
|
Loading…
Reference in New Issue
Block a user