diff options
author | Tanner Gooding <tagoo@outlook.com> | 2018-01-21 19:35:47 -0800 |
---|---|---|
committer | Tanner Gooding <tagoo@outlook.com> | 2018-01-27 11:37:13 -0800 |
commit | ab4f699cef72204b96919447a3c5ca7034fcf567 (patch) | |
tree | c3187bd8fbe730f8ef1697f96068e0c5c06c2aac /src/vm/fieldmarshaler.cpp | |
parent | 7121570db6f356277647ebaa6d2185da489403e5 (diff) | |
download | coreclr-ab4f699cef72204b96919447a3c5ca7034fcf567.tar.gz coreclr-ab4f699cef72204b96919447a3c5ca7034fcf567.tar.bz2 coreclr-ab4f699cef72204b96919447a3c5ca7034fcf567.zip |
Updating the VM to properly pack the SIMD hardware intrinsic types.
Diffstat (limited to 'src/vm/fieldmarshaler.cpp')
-rw-r--r-- | src/vm/fieldmarshaler.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/vm/fieldmarshaler.cpp b/src/vm/fieldmarshaler.cpp index 0685093483..b1a4a8b9b5 100644 --- a/src/vm/fieldmarshaler.cpp +++ b/src/vm/fieldmarshaler.cpp @@ -1669,7 +1669,9 @@ VOID EEClassLayoutInfo::CollectLayoutFieldMetadataThrowing( if (!(alignmentRequirement == 1 || alignmentRequirement == 2 || alignmentRequirement == 4 || - alignmentRequirement == 8)) + alignmentRequirement == 8 || + alignmentRequirement == 16 || + alignmentRequirement == 32)) { COMPlusThrowHR(COR_E_INVALIDPROGRAM, BFA_METADATA_CORRUPT); } @@ -1680,7 +1682,7 @@ VOID EEClassLayoutInfo::CollectLayoutFieldMetadataThrowing( // This assert means I forgot to special-case some NFT in the // above switch. - _ASSERTE(alignmentRequirement <= 8); + _ASSERTE(alignmentRequirement <= 32); // Check if this field is overlapped with other(s) pfwalk->m_fIsOverlapped = FALSE; @@ -1806,7 +1808,9 @@ VOID EEClassLayoutInfo::CollectLayoutFieldMetadataThrowing( if (!(alignmentRequirement == 1 || alignmentRequirement == 2 || alignmentRequirement == 4 || - alignmentRequirement == 8)) + alignmentRequirement == 8 || + alignmentRequirement == 16 || + alignmentRequirement == 32)) { COMPlusThrowHR(COR_E_INVALIDPROGRAM, BFA_METADATA_CORRUPT); } @@ -1815,7 +1819,7 @@ VOID EEClassLayoutInfo::CollectLayoutFieldMetadataThrowing( LargestAlignmentRequirement = max(LargestAlignmentRequirement, alignmentRequirement); - _ASSERTE(alignmentRequirement <= 8); + _ASSERTE(alignmentRequirement <= 32); // Insert enough padding to align the current data member. while (cbCurOffset % alignmentRequirement) |