Browse Source

Fix testppudump by adding missing TAsmsymtype and TAsmsymbind

git-svn-id: trunk@34189 -
pierre 9 years ago
parent
commit
c3ac426131
1 changed files with 43 additions and 13 deletions
  1. 43 13
      compiler/utils/ppuutils/ppudump.pp

+ 43 - 13
compiler/utils/ppuutils/ppudump.pp

@@ -879,19 +879,35 @@ const
   );
   );
 type
 type
   { Copied from aasmbase.pas }
   { Copied from aasmbase.pas }
-  TAsmsymbind=(
-    AB_NONE,AB_EXTERNAL,AB_COMMON,AB_LOCAL,AB_GLOBAL,AB_WEAK_EXTERNAL,
-    { global in the current program/library, but not visible outside it }
-    AB_PRIVATE_EXTERN,AB_LAZY,AB_IMPORT);
-
-  TAsmsymtype=(
-    AT_NONE,AT_FUNCTION,AT_DATA,AT_SECTION,AT_LABEL,
-    {
-      the address of this code label is taken somewhere in the code
-      so it must be taken care of it when creating pic
-    }
-    AT_ADDR
-    );
+       TAsmsymbind=(
+         AB_NONE,AB_EXTERNAL,AB_COMMON,AB_LOCAL,AB_GLOBAL,AB_WEAK_EXTERNAL,
+         { global in the current program/library, but not visible outside it }
+         AB_PRIVATE_EXTERN,AB_LAZY,AB_IMPORT,
+         { a symbol that's internal to the compiler and used as a temp }
+         AB_TEMP,
+         { a global symbol that points to another global symbol and is only used
+           to allow indirect loading in case of packages and indirect imports }
+         AB_INDIRECT,AB_EXTERNAL_INDIRECT);
+
+       TAsmsymtype=(
+         AT_NONE,AT_FUNCTION,AT_DATA,AT_SECTION,AT_LABEL,
+         {
+           the address of this code label is taken somewhere in the code
+           so it must be taken care of it when creating pic
+         }
+         AT_ADDR,
+         { Label for debug or other non-program information }
+         AT_METADATA,
+         { label for data that must always be accessed indirectly, because it
+           is handled explcitely in the system unit or (e.g. RTTI and threadvar
+           tables) -- never seen in an assembler/assembler writer, always
+           changed to AT_DATA }
+         AT_DATA_FORCEINDIRECT,
+         { Thread-local symbol (ELF targets) }
+         AT_TLS,
+         { GNU indirect function (ELF targets) }
+         AT_GNU_IFUNC
+         );
 
 
 var
 var
   s,
   s,
@@ -930,6 +946,12 @@ begin
          bindstr:='Lazy';
          bindstr:='Lazy';
        AB_IMPORT :
        AB_IMPORT :
          bindstr:='Import';
          bindstr:='Import';
+       AB_TEMP :
+         bindstr:='Temp';
+       AB_INDIRECT :
+         bindstr:='Indirect';
+       AB_EXTERNAL_INDIRECT :
+         bindstr:='Indirect external';
        else
        else
          begin
          begin
            bindstr:='<Error !!>';
            bindstr:='<Error !!>';
@@ -947,6 +969,14 @@ begin
          typestr:='Label';
          typestr:='Label';
        AT_ADDR :
        AT_ADDR :
          typestr:='Label (with address taken)';
          typestr:='Label (with address taken)';
+       AT_METADATA :
+         typestr:='Metadata';
+       AT_DATA_FORCEINDIRECT :
+         typestr:='Data (ForceIndirect)';
+       AT_TLS :
+         typestr:='TLS';
+       AT_GNU_IFUNC :
+         typestr:='GNU IFUNC';
        else
        else
          begin
          begin
            typestr:='<Error !!>';
            typestr:='<Error !!>';