Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
66d11bb
Expose Crc32 Implementation and implement Crc32 software fallback
deeprobin Nov 14, 2021
d33918c
Fix signature of BitOperation Crc32 methods
deeprobin Nov 14, 2021
b8eb138
Implement common test cases
deeprobin Nov 14, 2021
f22c90d
Add X64 Intrinsic support for Crc32(uint crc, ulong data)
deeprobin Nov 14, 2021
3b0313c
Add documentation comments
deeprobin Nov 14, 2021
ece5c27
Remove Hwintrinsic doc-comment
deeprobin Nov 14, 2021
1474bab
Rename Crc32 to Crc32C
deeprobin Nov 14, 2021
a362cf9
Remove unnessecary heap allocation
deeprobin Nov 14, 2021
c42411b
Fix software fallback using table-based-CRC
deeprobin Nov 14, 2021
edff837
Usage of uint32_t __crc32ch (uint32_t a, uint32_t b)
deeprobin Nov 15, 2021
7ed1a09
Remove Crc.Sse42 implementation for Crc32C(uint crc, ulong data)
deeprobin Nov 15, 2021
56953c9
Add SSE 4.2 x64 implementation with byte truncation for Crc32C(uint c…
deeprobin Nov 15, 2021
e171227
Replace Unsafe.As with unchecked-uint cast
deeprobin Nov 15, 2021
bf95530
Usage of WriteUnaligned instead of As
deeprobin Nov 15, 2021
4b91869
Usage of WriteUnaligned instead of As
deeprobin Nov 15, 2021
1ef8591
Usage of WriteUnaligned instead of As
deeprobin Nov 15, 2021
b369a75
Usage of explicit types
deeprobin Nov 15, 2021
8b3afd2
Merge branch 'issue-2036' of https://github.com/deeprobin/runtime int…
deeprobin Nov 15, 2021
ca96fdf
Fix Software-Fallback Table to Castalogni equivalent
deeprobin Nov 16, 2021
3ba6819
Fix test signature
deeprobin Nov 17, 2021
ca35eaa
Remove mask for software fallback
deeprobin Nov 17, 2021
d74d96a
reuse reflected table generator
kasperk81 Nov 17, 2021
5bb5943
Fix test data
deeprobin Nov 17, 2021
d44a215
Usage of CRC Table Generator instead of constant values
deeprobin Nov 17, 2021
1e7a753
Fix solution file
deeprobin Nov 17, 2021
43704ec
Revert "Usage of CRC Table Generator instead of constant values"
deeprobin Nov 17, 2021
7e61dda
Merge pull request #1 from kasperk81/issue-2036
deeprobin Nov 17, 2021
d7f2156
Fix solution file
deeprobin Nov 17, 2021
e5d5563
Merge branch 'issue-2036' of https://github.com/deeprobin/runtime int…
deeprobin Nov 17, 2021
ee294c9
Make Crc32ReflectedTable static
deeprobin Nov 18, 2021
db9d590
Fix wrong intrinsic for Arm64/BitOperations.Crc32C(uint crc, ulong data)
deeprobin Nov 18, 2021
a125263
Merge branch 'issue-2036' of https://github.com/deeprobin/runtime int…
deeprobin Nov 18, 2021
385f528
Reduce amount of stackalloc statements and replace them with MemoryMa…
deeprobin Nov 19, 2021
4f8da5d
Loop unwinding and performance optimization
deeprobin Nov 19, 2021
6911e7d
Merge branch 'dotnet:main' into issue-2036
deeprobin Nov 19, 2021
6023bcd
Remove unnessecary cast
deeprobin Nov 20, 2021
d22566c
Use MemoryMarshal.GetArrayDataReference instead of direct array access
deeprobin Nov 20, 2021
0e4467f
Remove unnessecary newlines
deeprobin Nov 20, 2021
eea2874
Merge branch 'issue-2036' of https://github.com/deeprobin/runtime int…
deeprobin Nov 20, 2021
dfd7ed7
Merge branch 'dotnet:main' into issue-2036
deeprobin Nov 21, 2021
02319ea
Update src/libraries/System.Private.CoreLib/src/System/Numerics/BitOp…
deeprobin Nov 25, 2021
c5bc276
Add x64 SSE check
deeprobin Nov 27, 2021
cf974b1
Move Crc32 Software into own class
deeprobin Dec 2, 2021
5801d6e
Fix merge conflict
deeprobin Dec 2, 2021
c4092f2
Remove IsSupported check
deeprobin Dec 2, 2021
6b7e6c4
Fix parameter naming
deeprobin Dec 2, 2021
de1efd9
Fix fallback implementation method naming
deeprobin Dec 2, 2021
c0da910
Improve documentation
deeprobin Dec 3, 2021
2720d18
Move bswap into Crc32Fallback class
deeprobin Dec 3, 2021
0cee4ff
Implement efficient usage of SSE x86/x64
deeprobin Dec 12, 2021
ec74c04
Style Changes for BitOperations.cs
deeprobin Dec 12, 2021
12d7a1c
Remove unnessecary `bswap` of a single byte
deeprobin Dec 12, 2021
c8f5d7d
Merge branch 'main' into issue-2036
deeprobin Aug 1, 2022
ef65ff1
Merge branch 'main' into issue-2036
deeprobin Aug 14, 2022
f007128
Fix doc comments
deeprobin Aug 14, 2022
0057d5e
fix doc
deeprobin Aug 14, 2022
c6a69be
Fix
deeprobin Aug 14, 2022
230e5cc
Merge remote-tracking branch 'upstream/main' into issue-2036
deeprobin Sep 27, 2022
f60964b
Merge remote-tracking branch 'upstream/main' into issue-2036
deeprobin Sep 27, 2022
59fa0e2
Apply suggestions
deeprobin Sep 27, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Fix
  • Loading branch information
deeprobin committed Aug 14, 2022
commit c6a69be757f5b4f44d46aaa83457b8846cd371cc
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ public static class BitOperations
/// <param name="value">The value.</param>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[CLSCompliant(false)]
public static bool IsPow2(uint value) => (value & (value - 1)) == 0 && value != 0 ;
public static bool IsPow2(uint value) => (value & (value - 1)) == 0 && value != 0;

/// <summary>
/// Evaluate whether a given integral value is a power of 2.
Expand Down