crossgen2 ARM support misc (#21109)
authorYaroslav Yamshchikov <y.yamshchiko@samsung.com>
Fri, 31 Jan 2020 22:57:09 +0000 (01:57 +0300)
committerGitHub <noreply@github.com>
Fri, 31 Jan 2020 22:57:09 +0000 (14:57 -0800)
src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/Compiler/ReadyToRunMetadataFieldLayoutAlgorithm.cs
src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/ObjectWriter/TargetExtensions.cs

index 879d69e..b624439 100644 (file)
@@ -104,6 +104,11 @@ namespace ILCompiler
             /// </summary>
             private const int DomainLocalModuleNormalDynamicEntryOffsetOfDataBlobArm64 = 8;
 
+            /// <summary>
+            /// CoreCLR DomainLocalModule::NormalDynamicEntry::OffsetOfDataBlob for Arm
+            /// </summary>
+            private const int DomainLocalModuleNormalDynamicEntryOffsetOfDataBlobArm = 4;
+
             protected override bool CompareKeyToValue(EcmaModule key, ModuleFieldLayout value)
             {
                 return key == value.Module;
@@ -398,6 +403,10 @@ namespace ILCompiler
                             nonGcOffset = DomainLocalModuleNormalDynamicEntryOffsetOfDataBlobArm64;
                             break;
 
+                        case TargetArchitecture.ARM:
+                            nonGcOffset = DomainLocalModuleNormalDynamicEntryOffsetOfDataBlobArm;
+                            break;
+
                         default:
                             throw new NotImplementedException();
                     }
index 201d6f7..5c3fce2 100644 (file)
@@ -42,6 +42,9 @@ namespace ILCompiler.PEWriter
                 case Internal.TypeSystem.TargetArchitecture.ARM64:
                     return Machine.Arm64;
 
+                case Internal.TypeSystem.TargetArchitecture.ARM:
+                    return Machine.ArmThumb2;
+
                 default:
                     throw new NotImplementedException(target.Architecture.ToString());
             }