Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/ikdasm.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeroen Frijters <jeroen@frijters.net>2013-09-11 19:43:39 +0400
committerJeroen Frijters <jeroen@frijters.net>2013-09-11 19:43:39 +0400
commit1b5ca90f6e8ada7108cd76e998370e42d4e47cb5 (patch)
treec4b3aac1ab2f42d33202cc3b1258432fc90d88c1
parent944a6f1f766938fc5465ab1701092115b0c49a77 (diff)
Added support for more flags in assembly reference.
-rw-r--r--Disassembler.cs34
-rw-r--r--IKVM.Reflection.dllbin442368 -> 446464 bytes
2 files changed, 31 insertions, 3 deletions
diff --git a/Disassembler.cs b/Disassembler.cs
index 063e294..56c9778 100644
--- a/Disassembler.cs
+++ b/Disassembler.cs
@@ -2029,9 +2029,37 @@ namespace Ildasm
for (int i = 0; i < referencedAssemblies.Length; i++)
{
AssemblyName asm = referencedAssemblies[i];
- lw.Write(".assembly extern {0}{1}",
- asm.ContentType == AssemblyContentType.WindowsRuntime && (compat == CompatLevel.None || compat >= CompatLevel.V45) ? "windowsruntime " : "",
- QuoteIdentifier(asm.Name));
+ lw.Write(".assembly extern ");
+ if ((asm.Flags & AssemblyNameFlags.Retargetable) != 0)
+ {
+ lw.Write("retargetable ");
+ }
+ if (asm.ContentType == AssemblyContentType.WindowsRuntime && (compat == CompatLevel.None || compat >= CompatLevel.V45))
+ {
+ lw.Write("windowsruntime ");
+ }
+ switch (asm.ProcessorArchitecture)
+ {
+ case ProcessorArchitecture.MSIL:
+ lw.Write("cil ");
+ break;
+ case ProcessorArchitecture.X86:
+ lw.Write("x86 ");
+ break;
+ case ProcessorArchitecture.IA64:
+ lw.Write("ia64 ");
+ break;
+ case ProcessorArchitecture.Amd64:
+ lw.Write("amd64 ");
+ break;
+ case ProcessorArchitecture.Arm:
+ if (compat == CompatLevel.None)
+ {
+ lw.Write("/*arm*/ ");
+ }
+ break;
+ }
+ lw.Write(QuoteIdentifier(asm.Name));
if (asm.Name != this.referencedAssemblies[resolvedAssemblies[i]])
{
lw.Write(" as {0}", QuoteIdentifier(this.referencedAssemblies[resolvedAssemblies[i]]));
diff --git a/IKVM.Reflection.dll b/IKVM.Reflection.dll
index d79cd45..d603c4e 100644
--- a/IKVM.Reflection.dll
+++ b/IKVM.Reflection.dll
Binary files differ