Browse Source

* use alt_dbgframe for call frame info labels

git-svn-id: trunk@2339 -
peter 19 years ago
parent
commit
01808d825d
3 changed files with 10 additions and 11 deletions
  1. 2 2
      compiler/aasmbase.pas
  2. 8 8
      compiler/dwarf.pas
  3. 0 1
      compiler/pdecobj.pas

+ 2 - 2
compiler/aasmbase.pas

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

+ 8 - 8
compiler/dwarf.pas

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

+ 0 - 1
compiler/pdecobj.pas

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