From 249e3b3374a445435f0f43ea344d071def3b4a05 Mon Sep 17 00:00:00 2001 From: Jackson Wood Date: Thu, 13 May 2021 14:15:33 +1000 Subject: [PATCH 1/3] Fixed mismatched framework directives for vectorized memory move --- src/ICSharpCode.SharpZipLib/BZip2/BZip2InputStream.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/ICSharpCode.SharpZipLib/BZip2/BZip2InputStream.cs b/src/ICSharpCode.SharpZipLib/BZip2/BZip2InputStream.cs index 8a3d4b82..92b7d7d4 100644 --- a/src/ICSharpCode.SharpZipLib/BZip2/BZip2InputStream.cs +++ b/src/ICSharpCode.SharpZipLib/BZip2/BZip2InputStream.cs @@ -1,3 +1,7 @@ +#if !NETSTANDARD2_0 && !NETFRAMEWORK + #define VECTORIZE_MEMORY_MOVE +#endif // !NETSTANDARD2_0 && !NETFRAMEWORK + using ICSharpCode.SharpZipLib.Checksum; using System; using System.IO; @@ -19,7 +23,7 @@ public class BZip2InputStream : Stream private const int NO_RAND_PART_B_STATE = 6; private const int NO_RAND_PART_C_STATE = 7; -#if NETSTANDARD2_1 +#if VECTORIZE_MEMORY_MOVE private static readonly int VectorSize = System.Numerics.Vector.Count; #endif @@ -717,7 +721,7 @@ cache misses. var j = nextSym - 1; -#if !NETSTANDARD2_0 && !NETFRAMEWORK +#if VECTORIZE_MEMORY_MOVE // This is vectorized memory move. Going from the back, we're taking chunks of array // and write them at the new location shifted by one. Since chunks are VectorSize long, // at the end we have to move "tail" (or head actually) of the array using a plain loop. From edc8bd6512dd36c871fc8715217b82d5a80677e1 Mon Sep 17 00:00:00 2001 From: Jackson Wood <67569199+modio-jackson@users.noreply.github.com> Date: Fri, 14 May 2021 13:21:19 +1000 Subject: [PATCH 2/3] Update src/ICSharpCode.SharpZipLib/BZip2/BZip2InputStream.cs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: nils måsén --- src/ICSharpCode.SharpZipLib/BZip2/BZip2InputStream.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ICSharpCode.SharpZipLib/BZip2/BZip2InputStream.cs b/src/ICSharpCode.SharpZipLib/BZip2/BZip2InputStream.cs index 92b7d7d4..1b2cfb59 100644 --- a/src/ICSharpCode.SharpZipLib/BZip2/BZip2InputStream.cs +++ b/src/ICSharpCode.SharpZipLib/BZip2/BZip2InputStream.cs @@ -1,4 +1,4 @@ -#if !NETSTANDARD2_0 && !NETFRAMEWORK +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER #define VECTORIZE_MEMORY_MOVE #endif // !NETSTANDARD2_0 && !NETFRAMEWORK From c230218729aab5a15212bfe005eca78fbb3bda98 Mon Sep 17 00:00:00 2001 From: Jackson Wood <67569199+modio-jackson@users.noreply.github.com> Date: Fri, 14 May 2021 13:39:51 +1000 Subject: [PATCH 3/3] Minor commenting update --- src/ICSharpCode.SharpZipLib/BZip2/BZip2InputStream.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ICSharpCode.SharpZipLib/BZip2/BZip2InputStream.cs b/src/ICSharpCode.SharpZipLib/BZip2/BZip2InputStream.cs index 1b2cfb59..3948b4e4 100644 --- a/src/ICSharpCode.SharpZipLib/BZip2/BZip2InputStream.cs +++ b/src/ICSharpCode.SharpZipLib/BZip2/BZip2InputStream.cs @@ -1,6 +1,6 @@ #if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER #define VECTORIZE_MEMORY_MOVE -#endif // !NETSTANDARD2_0 && !NETFRAMEWORK +#endif using ICSharpCode.SharpZipLib.Checksum; using System; @@ -25,7 +25,7 @@ public class BZip2InputStream : Stream #if VECTORIZE_MEMORY_MOVE private static readonly int VectorSize = System.Numerics.Vector.Count; -#endif +#endif // VECTORIZE_MEMORY_MOVE #endregion Constants @@ -733,7 +733,7 @@ cache misses. arrayPart.CopyTo(yy, j - VectorSize + 1); j -= VectorSize; } -#endif +#endif // VECTORIZE_MEMORY_MOVE while(j > 0) {