diff options
author | Jeroen Frijters <jeroen@frijters.net> | 2013-09-11 19:43:39 +0400 |
---|---|---|
committer | Jeroen Frijters <jeroen@frijters.net> | 2013-09-11 19:43:39 +0400 |
commit | 1b5ca90f6e8ada7108cd76e998370e42d4e47cb5 (patch) | |
tree | c4b3aac1ab2f42d33202cc3b1258432fc90d88c1 | |
parent | 944a6f1f766938fc5465ab1701092115b0c49a77 (diff) |
Added support for more flags in assembly reference.
-rw-r--r-- | Disassembler.cs | 34 | ||||
-rw-r--r-- | IKVM.Reflection.dll | bin | 442368 -> 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 Binary files differindex d79cd45..d603c4e 100644 --- a/IKVM.Reflection.dll +++ b/IKVM.Reflection.dll |