From d13f660fdbc2e6c1721c031523792c7be7594d31 Mon Sep 17 00:00:00 2001 From: Levi Broderick Date: Wed, 10 Mar 2021 16:25:19 -0800 Subject: [PATCH] Remove Vector dependency in wasm --- .../System/Text/Encodings/Web/AllowedBmpCodePointsBitmap.cs | 4 ++-- .../Text/Encodings/Web/OptimizedInboxTextEncoder.Ascii.cs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libraries/System.Text.Encodings.Web/src/System/Text/Encodings/Web/AllowedBmpCodePointsBitmap.cs b/src/libraries/System.Text.Encodings.Web/src/System/Text/Encodings/Web/AllowedBmpCodePointsBitmap.cs index d133b016cf566a..377d1d0c071d45 100644 --- a/src/libraries/System.Text.Encodings.Web/src/System/Text/Encodings/Web/AllowedBmpCodePointsBitmap.cs +++ b/src/libraries/System.Text.Encodings.Web/src/System/Text/Encodings/Web/AllowedBmpCodePointsBitmap.cs @@ -70,7 +70,7 @@ public void ForbidUndefinedCharacters() Debug.Assert(definedCharsBitmapAsLittleEndian.Length == thisAllowedCharactersBitmap.Length * sizeof(uint)); #if NETCOREAPP - if (BitConverter.IsLittleEndian) + if (Vector.IsHardwareAccelerated && BitConverter.IsLittleEndian) { while (!definedCharsBitmapAsLittleEndian.IsEmpty) { @@ -83,7 +83,7 @@ public void ForbidUndefinedCharacters() } #endif - // Not Core, or not little-endian. + // Not Core, or not little-endian, or not SIMD-optimized. for (int i = 0; i < thisAllowedCharactersBitmap.Length; i++) { thisAllowedCharactersBitmap[i] &= BinaryPrimitives.ReadUInt32LittleEndian(definedCharsBitmapAsLittleEndian.Slice(i * sizeof(uint))); diff --git a/src/libraries/System.Text.Encodings.Web/src/System/Text/Encodings/Web/OptimizedInboxTextEncoder.Ascii.cs b/src/libraries/System.Text.Encodings.Web/src/System/Text/Encodings/Web/OptimizedInboxTextEncoder.Ascii.cs index e409f814d2fc96..16a7fcb90d1fbf 100644 --- a/src/libraries/System.Text.Encodings.Web/src/System/Text/Encodings/Web/OptimizedInboxTextEncoder.Ascii.cs +++ b/src/libraries/System.Text.Encodings.Web/src/System/Text/Encodings/Web/OptimizedInboxTextEncoder.Ascii.cs @@ -12,7 +12,7 @@ internal sealed partial class OptimizedInboxTextEncoder /// /// A bitmap which represents allowed ASCII code points. /// - [StructLayout(LayoutKind.Explicit)] + [StructLayout(LayoutKind.Explicit, Size = 16)] private unsafe partial struct AllowedAsciiCodePoints { [FieldOffset(0)] // if we're compiling SIMD-enabled, check the .Simd.cs file for the vector field at this offset