Author: ankit
Date: 2006-11-09 04:38:03 -0500 (Thu, 09 Nov 2006)
New Revision: 67583

Modified:
   trunk/mono/mono/dis/ChangeLog
   trunk/mono/mono/dis/dump.c
   trunk/mono/mono/dis/main.c
   trunk/mono/mono/metadata/ChangeLog
   trunk/mono/mono/metadata/tabledefs.h
Log:
Add support for Retargetable assembly flag.

In mono/metadata:

        * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
        (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
        (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.

In mono/dis:

        * dump.c (dump_table_assemblyref): Dump Flags also.
        * main.c (assembly_ref_flags): New. Stringify AssemblyRef flags.
        (dis_directive_assemblyref): Emit flags also.
        (dis_directive_assembly): Likewise.



Modified: trunk/mono/mono/dis/ChangeLog
===================================================================
--- trunk/mono/mono/dis/ChangeLog       2006-11-09 09:29:17 UTC (rev 67582)
+++ trunk/mono/mono/dis/ChangeLog       2006-11-09 09:38:03 UTC (rev 67583)
@@ -1,3 +1,10 @@
+2006-11-09  Ankit Jain  <[EMAIL PROTECTED]>
+
+       * dump.c (dump_table_assemblyref): Dump Flags also.
+       * main.c (assembly_ref_flags): New. Stringify AssemblyRef flags.
+       (dis_directive_assemblyref): Emit flags also.
+       (dis_directive_assembly): Likewise.
+
 2006-10-06  Miguel de Icaza  <[EMAIL PROTECTED]>
 
        * main.c (dis_directive_assembly): Fix the rendering of .locale to

Modified: trunk/mono/mono/dis/dump.c
===================================================================
--- trunk/mono/mono/dis/dump.c  2006-11-09 09:29:17 UTC (rev 67582)
+++ trunk/mono/mono/dis/dump.c  2006-11-09 09:38:03 UTC (rev 67583)
@@ -142,6 +142,7 @@
                         cols [MONO_ASSEMBLYREF_BUILD_NUMBER], 
                         cols [MONO_ASSEMBLYREF_REV_NUMBER],
                         mono_metadata_string_heap (m, cols 
[MONO_ASSEMBLYREF_NAME]));
+               fprintf (output, "\tFlags=0x%08x\n", cols 
[MONO_ASSEMBLYREF_FLAGS]);
                ptr = mono_metadata_blob_heap (m, cols 
[MONO_ASSEMBLYREF_PUBLIC_KEY]);
                len = mono_metadata_decode_value (ptr, &ptr);
                if (len > 0){

Modified: trunk/mono/mono/dis/main.c
===================================================================
--- trunk/mono/mono/dis/main.c  2006-11-09 09:29:17 UTC (rev 67582)
+++ trunk/mono/mono/dis/main.c  2006-11-09 09:38:03 UTC (rev 67583)
@@ -162,19 +162,29 @@
        }
 }
 
+static char *
+assembly_flags (guint32 f)
+{
+       if (f & ASSEMBLYREF_RETARGETABLE_FLAG)
+               return g_strdup ("retargetable ");
+       return g_strdup ("");
+}
+
 static void
 dis_directive_assembly (MonoImage *m)
 {
        MonoTableInfo *t  = &m->tables [MONO_TABLE_ASSEMBLY];
        guint32 cols [MONO_ASSEMBLY_SIZE];
+       char *flags;
        
        if (t->base == NULL)
                return;
 
        mono_metadata_decode_row (t, 0, cols, MONO_ASSEMBLY_SIZE);
+       flags = assembly_flags (cols [MONO_ASSEMBLY_FLAGS]);
        
-       fprintf (output, ".assembly '%s'\n{\n",
-                mono_metadata_string_heap (m, cols [MONO_ASSEMBLY_NAME]));
+       fprintf (output, ".assembly %s'%s'\n{\n",
+                flags, mono_metadata_string_heap (m, cols 
[MONO_ASSEMBLY_NAME]));
        dump_cattrs (m, MONO_TOKEN_ASSEMBLY | 1, "  ");
        dump_declarative_security (m, OBJECT_TYPE_ASSEMBLYDEF, 1, "  ");
        fprintf (output,
@@ -200,6 +210,8 @@
                g_free (dump);
        }
        fprintf (output, "}\n");
+       
+       g_free (flags);
 }
 
 static void
@@ -213,16 +225,18 @@
                return;
 
        for (i = 0; i < t->rows; i++){
-               char *esc;
+               char *esc, *flags;
 
                mono_metadata_decode_row (t, i, cols, MONO_ASSEMBLYREF_SIZE);
 
                esc = get_escaped_name (mono_metadata_string_heap (m, cols 
[MONO_ASSEMBLYREF_NAME]));
+               flags = assembly_flags (cols [MONO_ASSEMBLYREF_FLAGS]);
                
                fprintf (output,
-                        ".assembly extern %s\n"
+                        ".assembly extern %s%s\n"
                         "{\n"
                         "  .ver %d:%d:%d:%d\n",
+                        flags,
                         esc,
                         cols [MONO_ASSEMBLYREF_MAJOR_VERSION], cols 
[MONO_ASSEMBLYREF_MINOR_VERSION], 
                         cols [MONO_ASSEMBLYREF_BUILD_NUMBER], cols 
[MONO_ASSEMBLYREF_REV_NUMBER]
@@ -239,6 +253,7 @@
                        g_free (dump);
                }
                fprintf (output, "}\n");
+               g_free (flags);
                g_free (esc);
        }
 }

Modified: trunk/mono/mono/metadata/ChangeLog
===================================================================
--- trunk/mono/mono/metadata/ChangeLog  2006-11-09 09:29:17 UTC (rev 67582)
+++ trunk/mono/mono/metadata/ChangeLog  2006-11-09 09:38:03 UTC (rev 67583)
@@ -1,3 +1,9 @@
+2006-11-09  Ankit Jain  <[EMAIL PROTECTED]>
+
+       * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
+       (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
+       (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
+
 2006-11-07  Dick Porter  <[EMAIL PROTECTED]>
 
        * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):

Modified: trunk/mono/mono/metadata/tabledefs.h
===================================================================
--- trunk/mono/mono/metadata/tabledefs.h        2006-11-09 09:29:17 UTC (rev 
67582)
+++ trunk/mono/mono/metadata/tabledefs.h        2006-11-09 09:38:03 UTC (rev 
67583)
@@ -254,4 +254,7 @@
  * 21.5 AssemblyRefs
  */
 #define ASSEMBLYREF_FULL_PUBLIC_KEY_FLAG      0x00000001
+#define ASSEMBLYREF_RETARGETABLE_FLAG         0x00000100
+#define ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG 0x00008000
+#define ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG 0x00004000
 #endif

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to