Browse Source

* stabs info for this if in register

git-svn-id: trunk@7127 -
pierre 18 years ago
parent
commit
d4ee12c000
1 changed files with 14 additions and 8 deletions
  1. 14 8
      compiler/dbgstabs.pas

+ 14 - 8
compiler/dbgstabs.pas

@@ -1233,10 +1233,13 @@ implementation
                   begin
                   begin
                     if (sym.localloc.loc=LOC_REFERENCE) then
                     if (sym.localloc.loc=LOC_REFERENCE) then
                       result:=sym_stabstr_evaluate(sym,'"pvmt:p$1",${N_TSYM},0,0,$2',
                       result:=sym_stabstr_evaluate(sym,'"pvmt:p$1",${N_TSYM},0,0,$2',
-                        [def_stab_number(pvmttype),tostr(sym.localloc.reference.offset)]);
-      (*            else
-                      result:=sym_stabstr_evaluate(sym,'"pvmt:r$1",${N_RSYM},0,0,$2',
-                        [def_stab_number(pvmttype),tostr(regstabs_table[regidx])]) *)
+                        [def_stab_number(pvmttype),tostr(sym.localloc.reference.offset)])
+                    else
+                      begin
+                        regidx:=findreg_by_number(sym.localloc.register);
+                        result:=sym_stabstr_evaluate(sym,'"pvmt:r$1",${N_RSYM},0,0,$2',
+                          [def_stab_number(pvmttype),tostr(regstabs_table[regidx])]);
+                      end
                     end
                     end
                 else
                 else
                   begin
                   begin
@@ -1246,10 +1249,13 @@ implementation
                       c:='p';
                       c:='p';
                     if (sym.localloc.loc=LOC_REFERENCE) then
                     if (sym.localloc.loc=LOC_REFERENCE) then
                       result:=sym_stabstr_evaluate(sym,'"$$t:$1",${N_TSYM},0,0,$2',
                       result:=sym_stabstr_evaluate(sym,'"$$t:$1",${N_TSYM},0,0,$2',
-                            [c+def_stab_number(tprocdef(sym.owner.defowner)._class),tostr(sym.localloc.reference.offset)]);
-      (*            else
-                      result:=sym_stabstr_evaluate(sym,'"$$t:r$1",${N_RSYM},0,0,$2',
-                            [c+def_stab_number(tprocdef(sym.owner.defowner)._class),tostr(regstabs_table[regidx])]); *)
+                            [c+def_stab_number(tprocdef(sym.owner.defowner)._class),tostr(sym.localloc.reference.offset)])
+                    else
+                      begin
+                        regidx:=findreg_by_number(sym.localloc.register);
+                        result:=sym_stabstr_evaluate(sym,'"$$t:r$1",${N_RSYM},0,0,$2',
+                            [c+def_stab_number(tprocdef(sym.owner.defowner)._class),tostr(regstabs_table[regidx])]);
+                      end
                   end;
                   end;
               end
               end
             else
             else