digest-blake3 0.22.1 → 1.2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +1 -1
- data/ext/digest/blake3/blake3.c +42 -20
- data/ext/digest/blake3/blake3.h +8 -3
- data/ext/digest/blake3/blake3_avx2_x86-64_unix.S +15 -0
- data/ext/digest/blake3/blake3_avx512_x86-64_unix.S +34 -18
- data/ext/digest/blake3/blake3_avx512_x86-64_windows_gnu.S +17 -17
- data/ext/digest/blake3/blake3_avx512_x86-64_windows_msvc.asm +17 -17
- data/ext/digest/blake3/blake3_dispatch.c +35 -71
- data/ext/digest/blake3/blake3_impl.h +117 -2
- data/ext/digest/blake3/blake3_neon.c +6 -1
- data/ext/digest/blake3/blake3_portable.c +1 -9
- data/ext/digest/blake3/blake3_sse2.c +565 -0
- data/ext/digest/blake3/blake3_sse2_x86-64_unix.S +2291 -0
- data/ext/digest/blake3/blake3_sse2_x86-64_windows_gnu.S +2332 -0
- data/ext/digest/blake3/blake3_sse2_x86-64_windows_msvc.asm +2350 -0
- data/ext/digest/blake3/blake3_sse41_x86-64_unix.S +17 -0
- data/ext/digest/blake3/blake3_sse41_x86-64_windows_gnu.S +19 -7
- data/ext/digest/blake3/blake3_sse41_x86-64_windows_msvc.asm +23 -11
- data/ext/digest/blake3/extconf.rb +4 -3
- data/lib/digest/blake3/version.rb +1 -1
- metadata +10 -7
@@ -1,3 +1,17 @@
|
|
1
|
+
#if defined(__ELF__) && defined(__linux__)
|
2
|
+
.section .note.GNU-stack,"",%progbits
|
3
|
+
#endif
|
4
|
+
|
5
|
+
#if defined(__ELF__) && defined(__CET__) && defined(__has_include)
|
6
|
+
#if __has_include(<cet.h>)
|
7
|
+
#include <cet.h>
|
8
|
+
#endif
|
9
|
+
#endif
|
10
|
+
|
11
|
+
#if !defined(_CET_ENDBR)
|
12
|
+
#define _CET_ENDBR
|
13
|
+
#endif
|
14
|
+
|
1
15
|
.intel_syntax noprefix
|
2
16
|
.global blake3_hash_many_sse41
|
3
17
|
.global _blake3_hash_many_sse41
|
@@ -13,6 +27,7 @@
|
|
13
27
|
.p2align 6
|
14
28
|
_blake3_hash_many_sse41:
|
15
29
|
blake3_hash_many_sse41:
|
30
|
+
_CET_ENDBR
|
16
31
|
push r15
|
17
32
|
push r14
|
18
33
|
push r13
|
@@ -1774,6 +1789,7 @@ blake3_hash_many_sse41:
|
|
1774
1789
|
.p2align 6
|
1775
1790
|
blake3_compress_in_place_sse41:
|
1776
1791
|
_blake3_compress_in_place_sse41:
|
1792
|
+
_CET_ENDBR
|
1777
1793
|
movups xmm0, xmmword ptr [rdi]
|
1778
1794
|
movups xmm1, xmmword ptr [rdi+0x10]
|
1779
1795
|
movaps xmm2, xmmword ptr [BLAKE3_IV+rip]
|
@@ -1874,6 +1890,7 @@ _blake3_compress_in_place_sse41:
|
|
1874
1890
|
.p2align 6
|
1875
1891
|
blake3_compress_xof_sse41:
|
1876
1892
|
_blake3_compress_xof_sse41:
|
1893
|
+
_CET_ENDBR
|
1877
1894
|
movups xmm0, xmmword ptr [rdi]
|
1878
1895
|
movups xmm1, xmmword ptr [rdi+0x10]
|
1879
1896
|
movaps xmm2, xmmword ptr [BLAKE3_IV+rip]
|
@@ -1800,15 +1800,18 @@ blake3_hash_many_sse41:
|
|
1800
1800
|
.p2align 6
|
1801
1801
|
blake3_compress_in_place_sse41:
|
1802
1802
|
_blake3_compress_in_place_sse41:
|
1803
|
-
sub rsp,
|
1803
|
+
sub rsp, 120
|
1804
1804
|
movdqa xmmword ptr [rsp], xmm6
|
1805
1805
|
movdqa xmmword ptr [rsp+0x10], xmm7
|
1806
1806
|
movdqa xmmword ptr [rsp+0x20], xmm8
|
1807
1807
|
movdqa xmmword ptr [rsp+0x30], xmm9
|
1808
|
+
movdqa xmmword ptr [rsp+0x40], xmm11
|
1809
|
+
movdqa xmmword ptr [rsp+0x50], xmm14
|
1810
|
+
movdqa xmmword ptr [rsp+0x60], xmm15
|
1808
1811
|
movups xmm0, xmmword ptr [rcx]
|
1809
1812
|
movups xmm1, xmmword ptr [rcx+0x10]
|
1810
1813
|
movaps xmm2, xmmword ptr [BLAKE3_IV+rip]
|
1811
|
-
movzx eax, byte ptr [rsp+
|
1814
|
+
movzx eax, byte ptr [rsp+0xA0]
|
1812
1815
|
movzx r8d, r8b
|
1813
1816
|
shl rax, 32
|
1814
1817
|
add r8, rax
|
@@ -1906,24 +1909,30 @@ _blake3_compress_in_place_sse41:
|
|
1906
1909
|
movdqa xmm7, xmmword ptr [rsp+0x10]
|
1907
1910
|
movdqa xmm8, xmmword ptr [rsp+0x20]
|
1908
1911
|
movdqa xmm9, xmmword ptr [rsp+0x30]
|
1909
|
-
|
1912
|
+
movdqa xmm11, xmmword ptr [rsp+0x40]
|
1913
|
+
movdqa xmm14, xmmword ptr [rsp+0x50]
|
1914
|
+
movdqa xmm15, xmmword ptr [rsp+0x60]
|
1915
|
+
add rsp, 120
|
1910
1916
|
ret
|
1911
1917
|
|
1912
1918
|
|
1913
1919
|
.p2align 6
|
1914
1920
|
_blake3_compress_xof_sse41:
|
1915
1921
|
blake3_compress_xof_sse41:
|
1916
|
-
sub rsp,
|
1922
|
+
sub rsp, 120
|
1917
1923
|
movdqa xmmword ptr [rsp], xmm6
|
1918
1924
|
movdqa xmmword ptr [rsp+0x10], xmm7
|
1919
1925
|
movdqa xmmword ptr [rsp+0x20], xmm8
|
1920
1926
|
movdqa xmmword ptr [rsp+0x30], xmm9
|
1927
|
+
movdqa xmmword ptr [rsp+0x40], xmm11
|
1928
|
+
movdqa xmmword ptr [rsp+0x50], xmm14
|
1929
|
+
movdqa xmmword ptr [rsp+0x60], xmm15
|
1921
1930
|
movups xmm0, xmmword ptr [rcx]
|
1922
1931
|
movups xmm1, xmmword ptr [rcx+0x10]
|
1923
1932
|
movaps xmm2, xmmword ptr [BLAKE3_IV+rip]
|
1924
|
-
movzx eax, byte ptr [rsp+
|
1933
|
+
movzx eax, byte ptr [rsp+0xA0]
|
1925
1934
|
movzx r8d, r8b
|
1926
|
-
mov r10, qword ptr [rsp+
|
1935
|
+
mov r10, qword ptr [rsp+0xA8]
|
1927
1936
|
shl rax, 32
|
1928
1937
|
add r8, rax
|
1929
1938
|
movq xmm3, r9
|
@@ -2026,7 +2035,10 @@ blake3_compress_xof_sse41:
|
|
2026
2035
|
movdqa xmm7, xmmword ptr [rsp+0x10]
|
2027
2036
|
movdqa xmm8, xmmword ptr [rsp+0x20]
|
2028
2037
|
movdqa xmm9, xmmword ptr [rsp+0x30]
|
2029
|
-
|
2038
|
+
movdqa xmm11, xmmword ptr [rsp+0x40]
|
2039
|
+
movdqa xmm14, xmmword ptr [rsp+0x50]
|
2040
|
+
movdqa xmm15, xmmword ptr [rsp+0x60]
|
2041
|
+
add rsp, 120
|
2030
2042
|
ret
|
2031
2043
|
|
2032
2044
|
|
@@ -1802,20 +1802,23 @@ blake3_hash_many_sse41 ENDP
|
|
1802
1802
|
|
1803
1803
|
blake3_compress_in_place_sse41 PROC
|
1804
1804
|
_blake3_compress_in_place_sse41 PROC
|
1805
|
-
sub rsp,
|
1805
|
+
sub rsp, 120
|
1806
1806
|
movdqa xmmword ptr [rsp], xmm6
|
1807
1807
|
movdqa xmmword ptr [rsp+10H], xmm7
|
1808
1808
|
movdqa xmmword ptr [rsp+20H], xmm8
|
1809
1809
|
movdqa xmmword ptr [rsp+30H], xmm9
|
1810
|
+
movdqa xmmword ptr [rsp+40H], xmm11
|
1811
|
+
movdqa xmmword ptr [rsp+50H], xmm14
|
1812
|
+
movdqa xmmword ptr [rsp+60H], xmm15
|
1810
1813
|
movups xmm0, xmmword ptr [rcx]
|
1811
1814
|
movups xmm1, xmmword ptr [rcx+10H]
|
1812
1815
|
movaps xmm2, xmmword ptr [BLAKE3_IV]
|
1813
|
-
movzx eax, byte ptr [rsp+
|
1816
|
+
movzx eax, byte ptr [rsp+0A0H]
|
1814
1817
|
movzx r8d, r8b
|
1815
1818
|
shl rax, 32
|
1816
1819
|
add r8, rax
|
1817
|
-
|
1818
|
-
|
1820
|
+
movd xmm3, r9
|
1821
|
+
movd xmm4, r8
|
1819
1822
|
punpcklqdq xmm3, xmm4
|
1820
1823
|
movups xmm4, xmmword ptr [rdx]
|
1821
1824
|
movups xmm5, xmmword ptr [rdx+10H]
|
@@ -1908,7 +1911,10 @@ _blake3_compress_in_place_sse41 PROC
|
|
1908
1911
|
movdqa xmm7, xmmword ptr [rsp+10H]
|
1909
1912
|
movdqa xmm8, xmmword ptr [rsp+20H]
|
1910
1913
|
movdqa xmm9, xmmword ptr [rsp+30H]
|
1911
|
-
|
1914
|
+
movdqa xmm11, xmmword ptr [rsp+40H]
|
1915
|
+
movdqa xmm14, xmmword ptr [rsp+50H]
|
1916
|
+
movdqa xmm15, xmmword ptr [rsp+60H]
|
1917
|
+
add rsp, 120
|
1912
1918
|
ret
|
1913
1919
|
_blake3_compress_in_place_sse41 ENDP
|
1914
1920
|
blake3_compress_in_place_sse41 ENDP
|
@@ -1916,21 +1922,24 @@ blake3_compress_in_place_sse41 ENDP
|
|
1916
1922
|
ALIGN 16
|
1917
1923
|
blake3_compress_xof_sse41 PROC
|
1918
1924
|
_blake3_compress_xof_sse41 PROC
|
1919
|
-
sub rsp,
|
1925
|
+
sub rsp, 120
|
1920
1926
|
movdqa xmmword ptr [rsp], xmm6
|
1921
1927
|
movdqa xmmword ptr [rsp+10H], xmm7
|
1922
1928
|
movdqa xmmword ptr [rsp+20H], xmm8
|
1923
1929
|
movdqa xmmword ptr [rsp+30H], xmm9
|
1930
|
+
movdqa xmmword ptr [rsp+40H], xmm11
|
1931
|
+
movdqa xmmword ptr [rsp+50H], xmm14
|
1932
|
+
movdqa xmmword ptr [rsp+60H], xmm15
|
1924
1933
|
movups xmm0, xmmword ptr [rcx]
|
1925
1934
|
movups xmm1, xmmword ptr [rcx+10H]
|
1926
1935
|
movaps xmm2, xmmword ptr [BLAKE3_IV]
|
1927
|
-
movzx eax, byte ptr [rsp+
|
1936
|
+
movzx eax, byte ptr [rsp+0A0H]
|
1928
1937
|
movzx r8d, r8b
|
1929
|
-
mov r10, qword ptr [rsp+
|
1938
|
+
mov r10, qword ptr [rsp+0A8H]
|
1930
1939
|
shl rax, 32
|
1931
1940
|
add r8, rax
|
1932
|
-
|
1933
|
-
|
1941
|
+
movd xmm3, r9
|
1942
|
+
movd xmm4, r8
|
1934
1943
|
punpcklqdq xmm3, xmm4
|
1935
1944
|
movups xmm4, xmmword ptr [rdx]
|
1936
1945
|
movups xmm5, xmmword ptr [rdx+10H]
|
@@ -2029,7 +2038,10 @@ _blake3_compress_xof_sse41 PROC
|
|
2029
2038
|
movdqa xmm7, xmmword ptr [rsp+10H]
|
2030
2039
|
movdqa xmm8, xmmword ptr [rsp+20H]
|
2031
2040
|
movdqa xmm9, xmmword ptr [rsp+30H]
|
2032
|
-
|
2041
|
+
movdqa xmm11, xmmword ptr [rsp+40H]
|
2042
|
+
movdqa xmm14, xmmword ptr [rsp+50H]
|
2043
|
+
movdqa xmm15, xmmword ptr [rsp+60H]
|
2044
|
+
add rsp, 120
|
2033
2045
|
ret
|
2034
2046
|
_blake3_compress_xof_sse41 ENDP
|
2035
2047
|
blake3_compress_xof_sse41 ENDP
|
@@ -34,9 +34,10 @@ def check_supported_flags(flags, obj_if_enabled, def_if_disabled)
|
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
37
|
-
check_supported_flags("-
|
38
|
-
check_supported_flags("-
|
39
|
-
check_supported_flags("-
|
37
|
+
check_supported_flags("-msse2", "blake3_sse2.o", "-DBLAKE3_NO_SSE2")
|
38
|
+
check_supported_flags("-msse4.1", "blake3_sse41.o", "-DBLAKE3_NO_SSE41")
|
39
|
+
check_supported_flags("-mavx2", "blake3_avx2.o", "-DBLAKE3_NO_AVX2")
|
40
|
+
check_supported_flags("-mavx512f -mavx512vl -mavx512bw", "blake3_avx512.o", "-DBLAKE3_NO_AVX512")
|
40
41
|
|
41
42
|
if have_header("arm_neon.h")
|
42
43
|
$objs << "blake3_neon.o"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: digest-blake3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Will Bryant
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-01-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -85,6 +85,10 @@ files:
|
|
85
85
|
- ext/digest/blake3/blake3_neon.c
|
86
86
|
- ext/digest/blake3/blake3_portable.c
|
87
87
|
- ext/digest/blake3/blake3_ruby.c
|
88
|
+
- ext/digest/blake3/blake3_sse2.c
|
89
|
+
- ext/digest/blake3/blake3_sse2_x86-64_unix.S
|
90
|
+
- ext/digest/blake3/blake3_sse2_x86-64_windows_gnu.S
|
91
|
+
- ext/digest/blake3/blake3_sse2_x86-64_windows_msvc.asm
|
88
92
|
- ext/digest/blake3/blake3_sse41.c
|
89
93
|
- ext/digest/blake3/blake3_sse41_x86-64_unix.S
|
90
94
|
- ext/digest/blake3/blake3_sse41_x86-64_windows_gnu.S
|
@@ -96,7 +100,7 @@ homepage: https://github.com/willbryant/digest-blake3
|
|
96
100
|
licenses:
|
97
101
|
- MIT
|
98
102
|
metadata: {}
|
99
|
-
post_install_message:
|
103
|
+
post_install_message:
|
100
104
|
rdoc_options: []
|
101
105
|
require_paths:
|
102
106
|
- lib
|
@@ -112,9 +116,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
112
116
|
- !ruby/object:Gem::Version
|
113
117
|
version: '0'
|
114
118
|
requirements: []
|
115
|
-
|
116
|
-
|
117
|
-
signing_key:
|
119
|
+
rubygems_version: 3.0.3
|
120
|
+
signing_key:
|
118
121
|
specification_version: 4
|
119
122
|
summary: BLAKE3 for Ruby
|
120
123
|
test_files: []
|