* use alt_dbgframe for call frame info labels

git-svn-id: trunk@2339 -
This commit is contained in:
peter 2006-01-25 21:48:27 +00:00
parent 068c67190b
commit 01808d825d
3 changed files with 10 additions and 11 deletions

View File

@ -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;

View File

@ -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;

View File

@ -55,7 +55,6 @@ implementation
var
there_is_a_destructor : boolean;
classtype : tobjectdeftype;
// childof : tobjectdef;
function constructor_head:tprocdef;
var