Skip to content

Commit 5662638

Browse files
committed
db encode AVX instructions
- db encode AVX instructions for broader compiler support
1 parent 9367b14 commit 5662638

23 files changed

Lines changed: 2701 additions & 3108 deletions

HashLib.Tests/Delphi.Tests/HashLib.Tests.dpr

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ uses
6262
HlpRIPEMD320 in '..\..\HashLib\src\Crypto\HlpRIPEMD320.pas',
6363
HlpSHA0 in '..\..\HashLib\src\Crypto\HlpSHA0.pas',
6464
HlpSHA1 in '..\..\HashLib\src\Crypto\HlpSHA1.pas',
65+
HlpSHA1Dispatch in '..\..\HashLib\src\Crypto\HlpSHA1Dispatch.pas',
6566
HlpSHA2_224 in '..\..\HashLib\src\Crypto\HlpSHA2_224.pas',
6667
HlpSHA2_256 in '..\..\HashLib\src\Crypto\HlpSHA2_256.pas',
6768
HlpSHA2_256Dispatch in '..\..\HashLib\src\Crypto\HlpSHA2_256Dispatch.pas',

HashLib/src/Crypto/HlpBlake2BDispatch.pas

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -106,15 +106,11 @@ procedure Blake2B_Compress_sse2(AState, AMsg, ACounterFlags, AIV: Pointer);
106106
{$I ..\Include\Simd\Blake2B\Blake2BCompressSse2.inc}
107107
end;
108108

109-
{$IFDEF HASHLIB_AVX2_ASM_SUPPORTED}
110-
111109
procedure Blake2B_Compress_avx2(AState, AMsg, ACounterFlags, AIV: Pointer);
112110
{$I ..\Include\Simd\Common\SimdProc4Begin.inc}
113111
{$I ..\Include\Simd\Blake2B\Blake2BCompressAvx2.inc}
114112
end;
115113

116-
{$ENDIF HASHLIB_AVX2_ASM_SUPPORTED}
117-
118114
{$ENDIF HASHLIB_X86_64}
119115

120116
// =============================================================================
@@ -125,12 +121,10 @@ procedure InitDispatch();
125121
begin
126122
case TSimd.GetActiveLevel() of
127123
{$IFDEF HASHLIB_X86_64}
128-
{$IFDEF HASHLIB_AVX2_ASM_SUPPORTED}
129124
TSimdLevel.AVX2:
130125
begin
131126
Blake2B_Compress := @Blake2B_Compress_avx2;
132127
end;
133-
{$ENDIF HASHLIB_AVX2_ASM_SUPPORTED}
134128
TSimdLevel.SSE2, TSimdLevel.SSSE3:
135129
begin
136130
Blake2B_Compress := @Blake2B_Compress_sse2;

HashLib/src/Crypto/HlpBlake2SDispatch.pas

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -104,15 +104,11 @@ procedure Blake2S_Compress_sse2(AState, AMsg, ACounterFlags, AIV: Pointer);
104104
{$I ..\Include\Simd\Blake2S\Blake2SCompressSse2.inc}
105105
end;
106106

107-
{$IFDEF HASHLIB_AVX2_ASM_SUPPORTED}
108-
109107
procedure Blake2S_Compress_avx2(AState, AMsg, ACounterFlags, AIV: Pointer);
110108
{$I ..\Include\Simd\Common\SimdProc4Begin.inc}
111109
{$I ..\Include\Simd\Blake2S\Blake2SCompressAvx2.inc}
112110
end;
113111

114-
{$ENDIF HASHLIB_AVX2_ASM_SUPPORTED}
115-
116112
{$ENDIF HASHLIB_X86_64}
117113

118114
// =============================================================================
@@ -123,12 +119,10 @@ procedure InitDispatch();
123119
begin
124120
case TSimd.GetActiveLevel() of
125121
{$IFDEF HASHLIB_X86_64}
126-
{$IFDEF HASHLIB_AVX2_ASM_SUPPORTED}
127122
TSimdLevel.AVX2:
128123
begin
129124
Blake2S_Compress := @Blake2S_Compress_avx2;
130125
end;
131-
{$ENDIF HASHLIB_AVX2_ASM_SUPPORTED}
132126
TSimdLevel.SSE2, TSimdLevel.SSSE3:
133127
begin
134128
Blake2S_Compress := @Blake2S_Compress_sse2;

HashLib/src/Crypto/HlpBlake3Dispatch.pas

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -103,15 +103,11 @@ procedure Blake3_Compress_sse2(AState, AMsg, ACV, ACounterFlags: Pointer);
103103
{$I ..\Include\Simd\Blake3\Blake3CompressSse2.inc}
104104
end;
105105

106-
{$IFDEF HASHLIB_AVX2_ASM_SUPPORTED}
107-
108106
procedure Blake3_Compress_avx2(AState, AMsg, ACV, ACounterFlags: Pointer);
109107
{$I ..\Include\Simd\Common\SimdProc4Begin.inc}
110108
{$I ..\Include\Simd\Blake3\Blake3CompressAvx2.inc}
111109
end;
112110

113-
{$ENDIF HASHLIB_AVX2_ASM_SUPPORTED}
114-
115111
{$ENDIF HASHLIB_X86_64}
116112

117113
// =============================================================================
@@ -122,12 +118,10 @@ procedure InitDispatch();
122118
begin
123119
case TSimd.GetActiveLevel() of
124120
{$IFDEF HASHLIB_X86_64}
125-
{$IFDEF HASHLIB_AVX2_ASM_SUPPORTED}
126121
TSimdLevel.AVX2:
127122
begin
128123
Blake3_Compress := @Blake3_Compress_avx2;
129124
end;
130-
{$ENDIF HASHLIB_AVX2_ASM_SUPPORTED}
131125
TSimdLevel.SSE2, TSimdLevel.SSSE3:
132126
begin
133127
Blake3_Compress := @Blake3_Compress_sse2;

HashLib/src/Crypto/HlpSHA1Dispatch.pas

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,6 @@ procedure SHA1_Compress_ssse3_wrap(AState, AData: Pointer; ANumBlocks: UInt32);
123123
SHA1_Compress_ssse3(AState, AData, ANumBlocks, @K_SHA1);
124124
end;
125125

126-
{$IFDEF HASHLIB_AVX2_ASM_SUPPORTED}
127-
128126
procedure SHA1_Compress_avx2(AState, AData: Pointer; ANumBlocks: UInt32;
129127
AConstants: Pointer);
130128
{$I ..\Include\Simd\Common\SimdProc4Begin.inc}
@@ -136,8 +134,6 @@ procedure SHA1_Compress_avx2_wrap(AState, AData: Pointer; ANumBlocks: UInt32);
136134
SHA1_Compress_avx2(AState, AData, ANumBlocks, @K_SHA1);
137135
end;
138136

139-
{$ENDIF HASHLIB_AVX2_ASM_SUPPORTED}
140-
141137
{$ENDIF HASHLIB_X86_64}
142138

143139
// =============================================================================
@@ -152,13 +148,11 @@ procedure InitDispatch();
152148
SHA1_Compress := @SHA1_Compress_shani_wrap;
153149
Exit;
154150
end;
155-
{$IFDEF HASHLIB_AVX2_ASM_SUPPORTED}
156151
if TSimd.GetActiveLevel() >= TSimdLevel.AVX2 then
157152
begin
158153
SHA1_Compress := @SHA1_Compress_avx2_wrap;
159154
Exit;
160155
end;
161-
{$ENDIF HASHLIB_AVX2_ASM_SUPPORTED}
162156
if TSimd.GetActiveLevel() >= TSimdLevel.SSSE3 then
163157
begin
164158
SHA1_Compress := @SHA1_Compress_ssse3_wrap;

HashLib/src/Crypto/HlpSHA2_256Dispatch.pas

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -124,8 +124,6 @@ procedure SHA256_Compress_ssse3_wrap(AState, AData: Pointer; ANumBlocks: UInt32)
124124
SHA256_Compress_ssse3(AState, AData, ANumBlocks, @K256);
125125
end;
126126

127-
{$IFDEF HASHLIB_AVX2_ASM_SUPPORTED}
128-
129127
procedure SHA256_Compress_avx2(AState, AData: Pointer; ANumBlocks: UInt32;
130128
AConstants: Pointer);
131129
{$I ..\Include\Simd\Common\SimdProc4Begin.inc}
@@ -137,8 +135,6 @@ procedure SHA256_Compress_avx2_wrap(AState, AData: Pointer; ANumBlocks: UInt32);
137135
SHA256_Compress_avx2(AState, AData, ANumBlocks, @K256);
138136
end;
139137

140-
{$ENDIF HASHLIB_AVX2_ASM_SUPPORTED}
141-
142138
{$ENDIF HASHLIB_X86_64}
143139

144140
// =============================================================================
@@ -153,13 +149,11 @@ procedure InitDispatch();
153149
SHA256_Compress := @SHA256_Compress_shani_wrap;
154150
Exit;
155151
end;
156-
{$IFDEF HASHLIB_AVX2_ASM_SUPPORTED}
157152
if TSimd.GetActiveLevel() >= TSimdLevel.AVX2 then
158153
begin
159154
SHA256_Compress := @SHA256_Compress_avx2_wrap;
160155
Exit;
161156
end;
162-
{$ENDIF HASHLIB_AVX2_ASM_SUPPORTED}
163157
if TSimd.GetActiveLevel() >= TSimdLevel.SSSE3 then
164158
begin
165159
SHA256_Compress := @SHA256_Compress_ssse3_wrap;

HashLib/src/Crypto/HlpSHA2_512Dispatch.pas

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,6 @@ procedure SHA512_Compress_ssse3_wrap(AState, AData: Pointer; ANumBlocks: UInt32)
137137
SHA512_Compress_ssse3(AState, AData, ANumBlocks, @K512);
138138
end;
139139

140-
{$IFDEF HASHLIB_AVX2_ASM_SUPPORTED}
141-
142140
procedure SHA512_Compress_avx2(AState, AData: Pointer; ANumBlocks: UInt32;
143141
AConstants: Pointer);
144142
{$I ..\Include\Simd\Common\SimdProc4Begin.inc}
@@ -150,8 +148,6 @@ procedure SHA512_Compress_avx2_wrap(AState, AData: Pointer; ANumBlocks: UInt32);
150148
SHA512_Compress_avx2(AState, AData, ANumBlocks, @K512);
151149
end;
152150

153-
{$ENDIF HASHLIB_AVX2_ASM_SUPPORTED}
154-
155151
{$ENDIF HASHLIB_X86_64}
156152

157153
// =============================================================================
@@ -161,13 +157,11 @@ procedure SHA512_Compress_avx2_wrap(AState, AData: Pointer; ANumBlocks: UInt32);
161157
procedure InitDispatch();
162158
begin
163159
{$IFDEF HASHLIB_X86_64}
164-
{$IFDEF HASHLIB_AVX2_ASM_SUPPORTED}
165160
if TSimd.GetActiveLevel() >= TSimdLevel.AVX2 then
166161
begin
167162
SHA512_Compress := @SHA512_Compress_avx2_wrap;
168163
Exit;
169164
end;
170-
{$ENDIF HASHLIB_AVX2_ASM_SUPPORTED}
171165
if TSimd.GetActiveLevel() >= TSimdLevel.SSSE3 then
172166
begin
173167
SHA512_Compress := @SHA512_Compress_ssse3_wrap;

HashLib/src/Hash64/HlpXXHash3Dispatch.pas

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,6 @@ procedure XXH3_accumulate_sse2(AAcc: Pointer; AInput: Pointer;
137137
PByte(ASecret) + N * XXH_SECRET_CONSUME_RATE);
138138
end;
139139

140-
{$IFDEF HASHLIB_AVX2_ASM_SUPPORTED}
141-
142140
// ----- AVX2 -----
143141

144142
procedure XXH3_accumulate_512_avx2(AAcc: Pointer; AInput: Pointer;
@@ -168,8 +166,6 @@ procedure XXH3_accumulate_avx2(AAcc: Pointer; AInput: Pointer;
168166
PByte(ASecret) + N * XXH_SECRET_CONSUME_RATE);
169167
end;
170168

171-
{$ENDIF HASHLIB_AVX2_ASM_SUPPORTED}
172-
173169
{$ENDIF HASHLIB_X86_64}
174170

175171
// =============================================================================
@@ -180,15 +176,13 @@ procedure InitDispatch();
180176
begin
181177
case TSimd.GetActiveLevel() of
182178
{$IFDEF HASHLIB_X86_64}
183-
{$IFDEF HASHLIB_AVX2_ASM_SUPPORTED}
184179
TSimdLevel.AVX2:
185180
begin
186181
XXH3_Accumulate512 := @XXH3_accumulate_512_avx2;
187182
XXH3_Accumulate := @XXH3_accumulate_avx2;
188183
XXH3_ScrambleAcc := @XXH3_scrambleAcc_avx2;
189184
XXH3_InitSecret := @XXH3_initSecret_avx2;
190185
end;
191-
{$ENDIF HASHLIB_AVX2_ASM_SUPPORTED}
192186
TSimdLevel.SSE2, TSimdLevel.SSSE3:
193187
begin
194188
XXH3_Accumulate512 := @XXH3_accumulate_512_sse2;

HashLib/src/Include/HashLib.inc

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,6 @@
6060
{$DEFINE HASHLIB_X86_64}
6161
{$IFEND}
6262

63-
{$IFDEF FPC}
64-
{$IFDEF HASHLIB_X86_64}
65-
{$DEFINE HASHLIB_AVX2_ASM_SUPPORTED}
66-
{$ENDIF}
67-
{$ENDIF}
6863

6964
// Uncomment ONE of the following to force a specific SIMD dispatch level:
7065
// {$DEFINE HASHLIB_FORCE_SCALAR}

0 commit comments

Comments
 (0)