diff --git a/engine/CodemerxDecompile.Service/Services/AssemblyMetadataFormatter.cs b/engine/CodemerxDecompile.Service/Services/AssemblyMetadataFormatter.cs index 6c0722ac..c47f2384 100644 --- a/engine/CodemerxDecompile.Service/Services/AssemblyMetadataFormatter.cs +++ b/engine/CodemerxDecompile.Service/Services/AssemblyMetadataFormatter.cs @@ -438,19 +438,19 @@ public static string GetFormattedArchitecture(TargetArchitecture targetArchitect { switch (targetArchitecture) { - case TargetArchitecture.I386Windows: + case TargetArchitecture.I386: { return "x86"; } - case TargetArchitecture.AMD64Windows: + case TargetArchitecture.AMD64: { return "x64"; } - case TargetArchitecture.IA64Windows: + case TargetArchitecture.IA64: { return "Itanium"; } - case TargetArchitecture.ARMv7Windows: + case TargetArchitecture.ARMv7: { return "ARM"; } diff --git a/engine/JustDecompile.EngineInfrastructure.Shared/AssemblyLocators/DotNet2/FrameworkAssemblyLocator2x64.cs b/engine/JustDecompile.EngineInfrastructure.Shared/AssemblyLocators/DotNet2/FrameworkAssemblyLocator2x64.cs index 2f8175b1..3516c19e 100644 --- a/engine/JustDecompile.EngineInfrastructure.Shared/AssemblyLocators/DotNet2/FrameworkAssemblyLocator2x64.cs +++ b/engine/JustDecompile.EngineInfrastructure.Shared/AssemblyLocators/DotNet2/FrameworkAssemblyLocator2x64.cs @@ -19,7 +19,7 @@ public static IFrameworkAssemblyLocator Instance() protected override TargetArchitecture GetTargetArchitecture() { - return TargetArchitecture.AMD64Windows; + return TargetArchitecture.AMD64; } } } \ No newline at end of file diff --git a/engine/JustDecompile.EngineInfrastructure.Shared/AssemblyLocators/DotNet2/FrameworkAssemblyLocator2x86.cs b/engine/JustDecompile.EngineInfrastructure.Shared/AssemblyLocators/DotNet2/FrameworkAssemblyLocator2x86.cs index 29a47719..7093e71f 100644 --- a/engine/JustDecompile.EngineInfrastructure.Shared/AssemblyLocators/DotNet2/FrameworkAssemblyLocator2x86.cs +++ b/engine/JustDecompile.EngineInfrastructure.Shared/AssemblyLocators/DotNet2/FrameworkAssemblyLocator2x86.cs @@ -21,7 +21,7 @@ public static IFrameworkAssemblyLocator Instance() protected override TargetArchitecture GetTargetArchitecture() { - return TargetArchitecture.I386Windows; + return TargetArchitecture.I386; } } } diff --git a/engine/JustDecompile.EngineInfrastructure.Shared/AssemblyLocators/DotNet3x/FrameworkAssemblyLocator3x64.cs b/engine/JustDecompile.EngineInfrastructure.Shared/AssemblyLocators/DotNet3x/FrameworkAssemblyLocator3x64.cs index 8343e43c..e12e8842 100644 --- a/engine/JustDecompile.EngineInfrastructure.Shared/AssemblyLocators/DotNet3x/FrameworkAssemblyLocator3x64.cs +++ b/engine/JustDecompile.EngineInfrastructure.Shared/AssemblyLocators/DotNet3x/FrameworkAssemblyLocator3x64.cs @@ -22,7 +22,7 @@ public static IFrameworkAssemblyLocator Instance() protected override TargetArchitecture GetTargetArchitecture() { - return TargetArchitecture.AMD64Windows; + return TargetArchitecture.AMD64; } protected override string GetProgramFilesFolder() diff --git a/engine/JustDecompile.EngineInfrastructure.Shared/AssemblyLocators/DotNet3x/FrameworkAssemblyLocator3x86.cs b/engine/JustDecompile.EngineInfrastructure.Shared/AssemblyLocators/DotNet3x/FrameworkAssemblyLocator3x86.cs index a3361469..f8975c04 100644 --- a/engine/JustDecompile.EngineInfrastructure.Shared/AssemblyLocators/DotNet3x/FrameworkAssemblyLocator3x86.cs +++ b/engine/JustDecompile.EngineInfrastructure.Shared/AssemblyLocators/DotNet3x/FrameworkAssemblyLocator3x86.cs @@ -20,7 +20,7 @@ public static IFrameworkAssemblyLocator Instance() protected override TargetArchitecture GetTargetArchitecture() { - return TargetArchitecture.I386Windows; + return TargetArchitecture.I386; } protected override string GetProgramFilesFolder() diff --git a/engine/JustDecompile.EngineInfrastructure.Shared/AssemblyLocators/DotNet4x/FrameworkAssembly4xLocatorFactory.cs b/engine/JustDecompile.EngineInfrastructure.Shared/AssemblyLocators/DotNet4x/FrameworkAssembly4xLocatorFactory.cs index 7ab33555..45dbe90f 100644 --- a/engine/JustDecompile.EngineInfrastructure.Shared/AssemblyLocators/DotNet4x/FrameworkAssembly4xLocatorFactory.cs +++ b/engine/JustDecompile.EngineInfrastructure.Shared/AssemblyLocators/DotNet4x/FrameworkAssembly4xLocatorFactory.cs @@ -6,7 +6,7 @@ public class FrameworkAssembly4xLocatorFactory { public static IFrameworkAssemblyLocator Instance(TargetArchitecture targetArchitecture) { - if (targetArchitecture == TargetArchitecture.AMD64Windows || targetArchitecture == TargetArchitecture.IA64Windows) + if (targetArchitecture == TargetArchitecture.AMD64 || targetArchitecture == TargetArchitecture.IA64) { return FrameworkAssemblyLocator4x64.Instance(); } diff --git a/engine/JustDecompile.EngineInfrastructure.Shared/AssemblyLocators/DotNet4x/FrameworkAssemblyLocator4x64.cs b/engine/JustDecompile.EngineInfrastructure.Shared/AssemblyLocators/DotNet4x/FrameworkAssemblyLocator4x64.cs index 823f28f9..9bdbdf3d 100644 --- a/engine/JustDecompile.EngineInfrastructure.Shared/AssemblyLocators/DotNet4x/FrameworkAssemblyLocator4x64.cs +++ b/engine/JustDecompile.EngineInfrastructure.Shared/AssemblyLocators/DotNet4x/FrameworkAssemblyLocator4x64.cs @@ -17,7 +17,7 @@ public static IFrameworkAssemblyLocator Instance() protected override TargetArchitecture GetTargetArchitecture() { - return TargetArchitecture.AMD64Windows; + return TargetArchitecture.AMD64; } } } diff --git a/engine/JustDecompile.EngineInfrastructure.Shared/AssemblyLocators/DotNet4x/FrameworkAssemblyLocator4x86.cs b/engine/JustDecompile.EngineInfrastructure.Shared/AssemblyLocators/DotNet4x/FrameworkAssemblyLocator4x86.cs index 19cab911..78e8af57 100644 --- a/engine/JustDecompile.EngineInfrastructure.Shared/AssemblyLocators/DotNet4x/FrameworkAssemblyLocator4x86.cs +++ b/engine/JustDecompile.EngineInfrastructure.Shared/AssemblyLocators/DotNet4x/FrameworkAssemblyLocator4x86.cs @@ -17,7 +17,7 @@ public static IFrameworkAssemblyLocator Instance() protected override TargetArchitecture GetTargetArchitecture() { - return TargetArchitecture.I386Windows; + return TargetArchitecture.I386; } } } \ No newline at end of file diff --git a/engine/JustDecompile.EngineInfrastructure.Shared/AssemblyLocators/NumberedFrameworkAssemblyLocator.cs b/engine/JustDecompile.EngineInfrastructure.Shared/AssemblyLocators/NumberedFrameworkAssemblyLocator.cs index c6cdaa36..61ba1818 100644 --- a/engine/JustDecompile.EngineInfrastructure.Shared/AssemblyLocators/NumberedFrameworkAssemblyLocator.cs +++ b/engine/JustDecompile.EngineInfrastructure.Shared/AssemblyLocators/NumberedFrameworkAssemblyLocator.cs @@ -17,7 +17,7 @@ protected string GetSpecificArchitectureFrameworkDirectory(double version) TargetArchitecture targetArchitecture = GetTargetArchitecture(); - if (targetArchitecture == TargetArchitecture.AMD64Windows || targetArchitecture == TargetArchitecture.IA64Windows) + if (targetArchitecture == TargetArchitecture.AMD64 || targetArchitecture == TargetArchitecture.IA64) { if (Directory.Exists(SystemInformation.CLR_Default_64)) { diff --git a/engine/JustDecompiler.Shared/Ast/Expressions/BinaryExpression.cs b/engine/JustDecompiler.Shared/Ast/Expressions/BinaryExpression.cs index 4bf03be4..cd2af3f7 100644 --- a/engine/JustDecompiler.Shared/Ast/Expressions/BinaryExpression.cs +++ b/engine/JustDecompiler.Shared/Ast/Expressions/BinaryExpression.cs @@ -632,9 +632,9 @@ private static bool IsPointerType(TypeDefinition type) { if(type.FullName == "System.UIntPtr" || type.FullName == "System.IntPtr") { - if (type.Module.Architecture == TargetArchitecture.I386Windows || type.Module.Architecture == TargetArchitecture.ARMv7Windows) + if (type.Module.Architecture == TargetArchitecture.I386 || type.Module.Architecture == TargetArchitecture.ARMv7) return 5; - else if (type.Module.Architecture == TargetArchitecture.IA64Windows || type.Module.Architecture == TargetArchitecture.AMD64Windows) + else if (type.Module.Architecture == TargetArchitecture.IA64 || type.Module.Architecture == TargetArchitecture.AMD64) return 7; else if (type.Module.Architecture == TargetArchitecture.AnyCPU) return null; diff --git a/engine/Mono.Cecil.Shared/Mono.Cecil.AssemblyResolver/TargetPlatformResolver.cs b/engine/Mono.Cecil.Shared/Mono.Cecil.AssemblyResolver/TargetPlatformResolver.cs index 7b07e623..54fdeb41 100644 --- a/engine/Mono.Cecil.Shared/Mono.Cecil.AssemblyResolver/TargetPlatformResolver.cs +++ b/engine/Mono.Cecil.Shared/Mono.Cecil.AssemblyResolver/TargetPlatformResolver.cs @@ -15,14 +15,14 @@ public class TargetPlatformResolver : ITargetPlatformResolver private readonly Dictionary Mscorlibs = new Dictionary() { // .NET 4.0, 4.5, 4.5.1, 4.5.2 - { new AssemblyName("mscorlib", "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", new Version("4.0.0.0"), new byte[] { 183, 122, 92, 86, 25, 52, 224, 137 }) { TargetArchitecture = TargetArchitecture.I386Windows }, TargetPlatform.CLR_4 }, - { new AssemblyName("mscorlib", "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", new Version("4.0.0.0"), new byte[] { 183, 122, 92, 86, 25, 52, 224, 137 }) { TargetArchitecture = TargetArchitecture.AMD64Windows }, TargetPlatform.CLR_4 }, + { new AssemblyName("mscorlib", "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", new Version("4.0.0.0"), new byte[] { 183, 122, 92, 86, 25, 52, 224, 137 }) { TargetArchitecture = TargetArchitecture.I386 }, TargetPlatform.CLR_4 }, + { new AssemblyName("mscorlib", "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", new Version("4.0.0.0"), new byte[] { 183, 122, 92, 86, 25, 52, 224, 137 }) { TargetArchitecture = TargetArchitecture.AMD64 }, TargetPlatform.CLR_4 }, // .NET 2.0, 3.0, 3.5 - { new AssemblyName("mscorlib", "mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", new Version("2.0.0.0"), new byte[] { 183, 122, 92, 86, 25, 52, 224, 137 }) { TargetArchitecture = TargetArchitecture.I386Windows }, TargetPlatform.CLR_2_3 }, - { new AssemblyName("mscorlib", "mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", new Version("2.0.0.0"), new byte[] { 183, 122, 92, 86, 25, 52, 224, 137 }) { TargetArchitecture = TargetArchitecture.AMD64Windows }, TargetPlatform.CLR_2_3 }, + { new AssemblyName("mscorlib", "mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", new Version("2.0.0.0"), new byte[] { 183, 122, 92, 86, 25, 52, 224, 137 }) { TargetArchitecture = TargetArchitecture.I386 }, TargetPlatform.CLR_2_3 }, + { new AssemblyName("mscorlib", "mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", new Version("2.0.0.0"), new byte[] { 183, 122, 92, 86, 25, 52, 224, 137 }) { TargetArchitecture = TargetArchitecture.AMD64 }, TargetPlatform.CLR_2_3 }, // Silverlight - { new AssemblyName("mscorlib", "mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", new Version("2.0.5.0"), new byte[] { 124, 236, 133, 215, 190, 167, 121, 142 }) { TargetArchitecture = TargetArchitecture.I386Windows }, TargetPlatform.Silverlight }, - { new AssemblyName("mscorlib", "mscorlib, Version=5.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", new Version("5.0.5.0"), new byte[] { 124, 236, 133, 215, 190, 167, 121, 142 }) { TargetArchitecture = TargetArchitecture.I386Windows }, TargetPlatform.Silverlight }, + { new AssemblyName("mscorlib", "mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", new Version("2.0.5.0"), new byte[] { 124, 236, 133, 215, 190, 167, 121, 142 }) { TargetArchitecture = TargetArchitecture.I386 }, TargetPlatform.Silverlight }, + { new AssemblyName("mscorlib", "mscorlib, Version=5.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", new Version("5.0.5.0"), new byte[] { 124, 236, 133, 215, 190, 167, 121, 142 }) { TargetArchitecture = TargetArchitecture.I386 }, TargetPlatform.Silverlight }, // Windows Phone { new AssemblyName("mscorlib", "mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", new Version("2.0.5.0"), new byte[] { 124, 236, 133, 215, 190, 167, 121, 142 }) { TargetArchitecture = TargetArchitecture.AnyCPU }, TargetPlatform.WindowsPhone }, { new AssemblyName("mscorlib", "mscorlib, Version=5.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", new Version("5.0.5.0"), new byte[] { 124, 236, 133, 215, 190, 167, 121, 142 }) { TargetArchitecture = TargetArchitecture.AnyCPU }, TargetPlatform.WindowsPhone }, diff --git a/engine/Mono.Cecil.Shared/Mono.Cecil.Extensions/ModuleArchitectureExtensions.cs b/engine/Mono.Cecil.Shared/Mono.Cecil.Extensions/ModuleArchitectureExtensions.cs index d84ad4fa..62f81412 100644 --- a/engine/Mono.Cecil.Shared/Mono.Cecil.Extensions/ModuleArchitectureExtensions.cs +++ b/engine/Mono.Cecil.Shared/Mono.Cecil.Extensions/ModuleArchitectureExtensions.cs @@ -9,13 +9,13 @@ public static string GetFriendlyModuleArchitecture(this TargetArchitecture targe { switch (targetArchitecture) { - case TargetArchitecture.I386Windows: + case TargetArchitecture.I386: return "x86"; - case TargetArchitecture.AMD64Windows: + case TargetArchitecture.AMD64: return "x64"; - case TargetArchitecture.IA64Windows: + case TargetArchitecture.IA64: return "Itanium"; case TargetArchitecture.AnyCPU: diff --git a/engine/Mono.Cecil.Shared/Mono.Cecil.Extensions/ModuleDefinitionExtensions.cs b/engine/Mono.Cecil.Shared/Mono.Cecil.Extensions/ModuleDefinitionExtensions.cs index d47a5fb9..fbcebc37 100644 --- a/engine/Mono.Cecil.Shared/Mono.Cecil.Extensions/ModuleDefinitionExtensions.cs +++ b/engine/Mono.Cecil.Shared/Mono.Cecil.Extensions/ModuleDefinitionExtensions.cs @@ -24,7 +24,7 @@ public static TargetArchitecture GetModuleArchitecture(this ModuleDefinition mod } bool is32Bit = (module.Attributes & ModuleAttributes.Required32Bit) == ModuleAttributes.Required32Bit; - if (module.Architecture == TargetArchitecture.I386Windows && !is32Bit) + if (module.Architecture == TargetArchitecture.I386 && !is32Bit) { return TargetArchitecture.AnyCPU; } diff --git a/engine/Mono.Cecil.Shared/Mono.Cecil.PE/ImageReader.cs b/engine/Mono.Cecil.Shared/Mono.Cecil.PE/ImageReader.cs index e3047bd1..81f8dec6 100644 --- a/engine/Mono.Cecil.Shared/Mono.Cecil.PE/ImageReader.cs +++ b/engine/Mono.Cecil.Shared/Mono.Cecil.PE/ImageReader.cs @@ -93,10 +93,43 @@ void ReadImage () image.Characteristics = (ModuleCharacteristics) dll_characteristics; } - TargetArchitecture ReadArchitecture () + + TargetArchitecture GetTargetArchitectureByPlatformSpecificTargetArchitecture(PlatformSpecificTargetArchitecture p) + { + switch (p) + { + case PlatformSpecificTargetArchitecture.I386Windows: + case PlatformSpecificTargetArchitecture.I386Linux: + case PlatformSpecificTargetArchitecture.I386Apple: + return TargetArchitecture.I386; + case PlatformSpecificTargetArchitecture.AMD64Windows: + case PlatformSpecificTargetArchitecture.AMD64Linux: + case PlatformSpecificTargetArchitecture.AMD64Apple: + return TargetArchitecture.AMD64; + case PlatformSpecificTargetArchitecture.IA64Windows: + case PlatformSpecificTargetArchitecture.IA64Linux: + case PlatformSpecificTargetArchitecture.IA64Apple: + return TargetArchitecture.IA64; + case PlatformSpecificTargetArchitecture.ARMWindows: + case PlatformSpecificTargetArchitecture.ARMLinux: + case PlatformSpecificTargetArchitecture.ARMApple: + return TargetArchitecture.ARM; + case PlatformSpecificTargetArchitecture.ARMv7Windows: + case PlatformSpecificTargetArchitecture.ARMv7Linux: + case PlatformSpecificTargetArchitecture.ARMv7Apple: + return TargetArchitecture.ARMv7; + case PlatformSpecificTargetArchitecture.ARM64Windows: + case PlatformSpecificTargetArchitecture.ARM64Linux: + case PlatformSpecificTargetArchitecture.ARM64Apple: + return TargetArchitecture.ARM64; + default: + throw new Exception($"Unexpected PlatformSpecificTargetArchitecture {p}"); + } + } + TargetArchitecture ReadArchitecture () { // Applying bb40c2108ecf303691d0536c4f9d3b9035790c5c from jbevain/cecil - return (TargetArchitecture)ReadUInt16 (); + return GetTargetArchitectureByPlatformSpecificTargetArchitecture((PlatformSpecificTargetArchitecture)ReadUInt16()); } static ModuleKind GetModuleKind (ushort characteristics, ushort subsystem) diff --git a/engine/Mono.Cecil.Shared/Mono.Cecil.PE/ImageWriter.cs b/engine/Mono.Cecil.Shared/Mono.Cecil.PE/ImageWriter.cs index 8e77b27c..9ecbae8f 100644 --- a/engine/Mono.Cecil.Shared/Mono.Cecil.PE/ImageWriter.cs +++ b/engine/Mono.Cecil.Shared/Mono.Cecil.PE/ImageWriter.cs @@ -54,8 +54,8 @@ sealed class ImageWriter : BinaryStreamWriter { { this.module = module; this.metadata = metadata; - this.pe64 = module.Architecture == TargetArchitecture.AMD64Windows || module.Architecture == TargetArchitecture.IA64Windows; - this.has_reloc = module.Architecture == TargetArchitecture.I386Windows; + this.pe64 = module.Architecture == TargetArchitecture.AMD64 || module.Architecture == TargetArchitecture.IA64; + this.has_reloc = module.Architecture == TargetArchitecture.I386; this.GetDebugHeader (); this.GetWin32Resources (); this.text_map = BuildTextMap (); @@ -196,13 +196,13 @@ void WritePEFileHeader () ushort GetMachine () { switch (module.Architecture) { - case TargetArchitecture.I386Windows: + case TargetArchitecture.I386: return 0x014c; - case TargetArchitecture.AMD64Windows: + case TargetArchitecture.AMD64: return 0x8664; - case TargetArchitecture.IA64Windows: + case TargetArchitecture.IA64: return 0x0200; - case TargetArchitecture.ARMv7Windows: + case TargetArchitecture.ARMv7: return 0x01c4; } @@ -617,7 +617,7 @@ byte [] GetRuntimeMain () void WriteStartupStub () { switch (module.Architecture) { - case TargetArchitecture.I386Windows: + case TargetArchitecture.I386: WriteUInt16 (0x25ff); WriteUInt32 ((uint) image_base + text_map.GetRVA (TextSegment.ImportAddressTable)); return; @@ -637,14 +637,14 @@ void WriteReloc () PrepareSection (reloc); var reloc_rva = text_map.GetRVA (TextSegment.StartupStub); - reloc_rva += module.Architecture == TargetArchitecture.IA64Windows ? 0x20u : 2; + reloc_rva += module.Architecture == TargetArchitecture.IA64 ? 0x20u : 2; var page_rva = reloc_rva & ~0xfffu; WriteUInt32 (page_rva); // PageRVA WriteUInt32 (0x000c); // Block Size switch (module.Architecture) { - case TargetArchitecture.I386Windows: + case TargetArchitecture.I386: WriteUInt32 (0x3000 + reloc_rva - page_rva); break; default: @@ -707,7 +707,7 @@ TextMap BuildTextMap () uint import_dir_len = (import_hnt_rva - import_dir_rva) + 27u; RVA startup_stub_rva = import_dir_rva + import_dir_len; - startup_stub_rva = module.Architecture == TargetArchitecture.IA64Windows + startup_stub_rva = module.Architecture == TargetArchitecture.IA64 ? (startup_stub_rva + 15u) & ~15u : 2 + ((startup_stub_rva + 3u) & ~3u); @@ -721,7 +721,7 @@ TextMap BuildTextMap () uint GetStartupStubLength () { switch (module.Architecture) { - case TargetArchitecture.I386Windows: + case TargetArchitecture.I386: return 6; default: throw new NotSupportedException (); diff --git a/engine/Mono.Cecil.Shared/Mono.Cecil/AssemblyWriter.cs b/engine/Mono.Cecil.Shared/Mono.Cecil/AssemblyWriter.cs index feb0ec7e..50421cb2 100644 --- a/engine/Mono.Cecil.Shared/Mono.Cecil/AssemblyWriter.cs +++ b/engine/Mono.Cecil.Shared/Mono.Cecil/AssemblyWriter.cs @@ -792,7 +792,7 @@ public MetadataBuilder(ModuleDefinition module, string fq_name, ISymbolWriterPro TextMap CreateTextMap () { var map = new TextMap (); - map.AddMap (TextSegment.ImportAddressTable, module.Architecture == TargetArchitecture.I386Windows ? 8 : 0); + map.AddMap (TextSegment.ImportAddressTable, module.Architecture == TargetArchitecture.I386 ? 8 : 0); map.AddMap (TextSegment.CLIHeader, 0x48, 8); return map; } diff --git a/engine/Mono.Cecil.Shared/Mono.Cecil/BaseAssemblyResolver.cs b/engine/Mono.Cecil.Shared/Mono.Cecil/BaseAssemblyResolver.cs index 360ad694..80f10a46 100644 --- a/engine/Mono.Cecil.Shared/Mono.Cecil/BaseAssemblyResolver.cs +++ b/engine/Mono.Cecil.Shared/Mono.Cecil/BaseAssemblyResolver.cs @@ -765,11 +765,11 @@ private TargetArchitecture GetArchitectureFromStrongName(string strongName) switch (architectureString) { case "amd64": - return TargetArchitecture.AMD64Windows; + return TargetArchitecture.AMD64; case "ia64": - return TargetArchitecture.IA64Windows; + return TargetArchitecture.IA64; default: - return TargetArchitecture.I386Windows; + return TargetArchitecture.I386; } } diff --git a/engine/Mono.Cecil.Shared/Mono.Cecil/ModuleDefinition.cs b/engine/Mono.Cecil.Shared/Mono.Cecil/ModuleDefinition.cs index 436d2966..03571232 100644 --- a/engine/Mono.Cecil.Shared/Mono.Cecil/ModuleDefinition.cs +++ b/engine/Mono.Cecil.Shared/Mono.Cecil/ModuleDefinition.cs @@ -126,7 +126,7 @@ public ModuleParameters () { this.kind = ModuleKind.Dll; this.Runtime = GetCurrentRuntime (); - this.architecture = TargetArchitecture.I386Windows; + this.architecture = TargetArchitecture.I386; } static TargetRuntime GetCurrentRuntime () diff --git a/engine/Mono.Cecil.Shared/Mono.Cecil/ModuleKind.cs b/engine/Mono.Cecil.Shared/Mono.Cecil/ModuleKind.cs index a567879c..56334abe 100644 --- a/engine/Mono.Cecil.Shared/Mono.Cecil/ModuleKind.cs +++ b/engine/Mono.Cecil.Shared/Mono.Cecil/ModuleKind.cs @@ -25,42 +25,44 @@ public enum NativeOSOverrideCode Windows = 0, Linux = 0x7B79, Apple = 0x4644 + // TODO add more platforms https://github.com/dotnet/runtime/blob/61c658183231100a5836e833c86446ff51a4654b/src/coreclr/src/inc/pedecoder.h#L90-L104 } + public enum PlatformSpecificTargetArchitecture + { + I386Windows = TargetArchitecture.I386 ^ NativeOSOverrideCode.Windows, + AMD64Windows = TargetArchitecture.AMD64 ^ NativeOSOverrideCode.Windows, + IA64Windows = TargetArchitecture.IA64 ^ NativeOSOverrideCode.Windows, + ARMWindows = TargetArchitecture.ARM ^ NativeOSOverrideCode.Windows, + ARMv7Windows = TargetArchitecture.ARMv7 ^ NativeOSOverrideCode.Windows, + ARM64Windows = TargetArchitecture.ARM64 ^ NativeOSOverrideCode.Windows, - public enum BaseTargetArchitecture + I386Linux = TargetArchitecture.I386 ^ NativeOSOverrideCode.Linux, + AMD64Linux = TargetArchitecture.AMD64 ^ NativeOSOverrideCode.Linux, + IA64Linux = TargetArchitecture.IA64 ^ NativeOSOverrideCode.Linux, + ARMLinux = TargetArchitecture.ARM ^ NativeOSOverrideCode.Linux, + ARMv7Linux = TargetArchitecture.ARMv7 ^ NativeOSOverrideCode.Linux, + ARM64Linux = TargetArchitecture.ARM64 ^ NativeOSOverrideCode.Linux, + + I386Apple = TargetArchitecture.I386 ^ NativeOSOverrideCode.Apple, + AMD64Apple = TargetArchitecture.AMD64 ^ NativeOSOverrideCode.Apple, + IA64Apple = TargetArchitecture.IA64 ^ NativeOSOverrideCode.Apple, + ARMApple = TargetArchitecture.ARM ^ NativeOSOverrideCode.Apple, + ARMv7Apple = TargetArchitecture.ARMv7 ^ NativeOSOverrideCode.Apple, + ARM64Apple = TargetArchitecture.ARM64 ^ NativeOSOverrideCode.Apple + } + + public enum TargetArchitecture { + // Applying bb40c2108ecf303691d0536c4f9d3b9035790c5c from jbevain/cecil I386 = 0x014c, AMD64 = 0x8664, IA64 = 0x0200, + AnyCPU, /*Telerik Authorship*/ ARM = 0x01c0, ARMv7 = 0x01c4, ARM64 = 0xaa64 } - public enum TargetArchitecture { - // Applying bb40c2108ecf303691d0536c4f9d3b9035790c5c from jbevain/cecil - I386Windows = BaseTargetArchitecture.I386 ^ NativeOSOverrideCode.Windows, - AMD64Windows = BaseTargetArchitecture.AMD64 ^ NativeOSOverrideCode.Windows, - IA64Windows = BaseTargetArchitecture.IA64 ^ NativeOSOverrideCode.Windows, - AnyCPU, /*Telerik Authorship*/ - ARMWindows = BaseTargetArchitecture.ARM ^ NativeOSOverrideCode.Windows, - ARMv7Windows = BaseTargetArchitecture.ARMv7 ^ NativeOSOverrideCode.Windows, - ARM64Windows = BaseTargetArchitecture.ARM64 ^ NativeOSOverrideCode.Windows, - - I386Linux = BaseTargetArchitecture.I386 ^ NativeOSOverrideCode.Linux, - AMD64Linux = BaseTargetArchitecture.AMD64 ^ NativeOSOverrideCode.Linux, - IA64Linux = BaseTargetArchitecture.IA64 ^ NativeOSOverrideCode.Linux, - ARMLinux = BaseTargetArchitecture.ARM ^ NativeOSOverrideCode.Linux, - ARMv7Linux = BaseTargetArchitecture.ARMv7 ^ NativeOSOverrideCode.Linux, - ARM64Linux = BaseTargetArchitecture.ARM64 ^ NativeOSOverrideCode.Linux, - - I386Apple = BaseTargetArchitecture.I386 ^ NativeOSOverrideCode.Apple, - AMD64Apple = BaseTargetArchitecture.AMD64 ^ NativeOSOverrideCode.Apple, - IA64Apple = BaseTargetArchitecture.IA64 ^ NativeOSOverrideCode.Apple, - ARMApple = BaseTargetArchitecture.ARM ^ NativeOSOverrideCode.Apple, - ARMv7Apple = BaseTargetArchitecture.ARMv7 ^ NativeOSOverrideCode.Apple, - ARM64Apple = BaseTargetArchitecture.ARM64 ^ NativeOSOverrideCode.Apple - } /* End AGPL */ [Flags] diff --git a/engine/Tools.MSBuildProjectBuilder.Shared/Utilities.cs b/engine/Tools.MSBuildProjectBuilder.Shared/Utilities.cs index 9d6e4acc..ff3343cf 100644 --- a/engine/Tools.MSBuildProjectBuilder.Shared/Utilities.cs +++ b/engine/Tools.MSBuildProjectBuilder.Shared/Utilities.cs @@ -289,13 +289,13 @@ public static string GetModuleArchitecturePropertyValue(ModuleDefinition module, { switch (module.GetModuleArchitecture()) { - case TargetArchitecture.AMD64Windows: + case TargetArchitecture.AMD64: return "x64"; - case TargetArchitecture.I386Windows: + case TargetArchitecture.I386: return "x86"; - case TargetArchitecture.IA64Windows: + case TargetArchitecture.IA64: return "Itanium"; - case TargetArchitecture.ARMv7Windows: + case TargetArchitecture.ARMv7: return "ARM"; default: if (separateAnyCPU) diff --git a/engine/Tools.MSBuildProjectBuilder.Shared/WinRTProjectBuilder.cs b/engine/Tools.MSBuildProjectBuilder.Shared/WinRTProjectBuilder.cs index 394544c3..3989eb08 100644 --- a/engine/Tools.MSBuildProjectBuilder.Shared/WinRTProjectBuilder.cs +++ b/engine/Tools.MSBuildProjectBuilder.Shared/WinRTProjectBuilder.cs @@ -176,17 +176,17 @@ private void Initialize() if (this.IsUWPProject) { TargetArchitecture architecture = this.assembly.MainModule.GetModuleArchitecture(); - if (architecture == TargetArchitecture.I386Windows) + if (architecture == TargetArchitecture.I386) { this.runtimes.Add("win10-x86"); this.runtimes.Add("win10-x86-aot"); } - else if (architecture == TargetArchitecture.AMD64Windows) + else if (architecture == TargetArchitecture.AMD64) { this.runtimes.Add("win10-x64"); this.runtimes.Add("win10-x64-aot"); } - else if (architecture == TargetArchitecture.ARMv7Windows) + else if (architecture == TargetArchitecture.ARMv7) { this.runtimes.Add("win10-arm"); this.runtimes.Add("win10-arm-aot");