-
Notifications
You must be signed in to change notification settings - Fork 192
Expand file tree
/
Copy pathHashLib.inc
More file actions
154 lines (114 loc) · 3.65 KB
/
Copy pathHashLib.inc
File metadata and controls
154 lines (114 loc) · 3.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
{ *********************************************************************************** }
{ * HashLib Library * }
{ * Copyright (c) 2016 - 2019 Ugochukwu Mmaduekwe * }
{ * Github Repository <https://github.com/Xor-el> * }
{ * Distributed under the MIT software license, see the accompanying file LICENSE * }
{ * or visit http://www.opensource.org/licenses/mit-license.php. * }
{ * ******************************************************************************* * }
(* &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& *)
{$DEFINE DELPHI}
(* &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& *)
{$IFDEF FPC}
{$I HashLibHelper.inc} // Had to Include this Since Delphi Does not allow "FPC_FULLVERSION" to Compile.
{$UNDEF DELPHI}
{$MODE delphi}
{$IFDEF FPC_LITTLE_ENDIAN}
{$DEFINE HASHLIB_LITTLE_ENDIAN}
{$ENDIF}
{$IFDEF FPC_REQUIRES_PROPER_ALIGNMENT}
{$DEFINE HASHLIB_REQUIRES_PROPER_ALIGNMENT}
{$ENDIF}
{$DEFINE USE_UNROLLED_VARIANT}
// Disable Overflow and RangeChecks.
{$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF}
// Enable Pointer Math
{$POINTERMATH ON}
// Disable Warnings and Hints.
{$WARNINGS OFF}
{$HINTS OFF}
{$NOTES OFF}
// Optimizations
{$OPTIMIZATION LEVEL3}
// disable "USELOADMODIFYSTORE" because it produces incorrect result
// when used in combination with -CpCOREAVX2 and -OpCOREAVX2 in FPC 3.2.0 beta
{$IFDEF FPC_GREATER_THAN_3.0.4}
{$OPTIMIZATION NOUSELOADMODIFYSTORE}
{$ENDIF}
// level 4 optimizations
{$OPTIMIZATION ORDERFIELDS}
{$OPTIMIZATION DEADVALUES}
{$IFDEF CPUI386}
{$OPTIMIZATION USEEBP}
{$ENDIF}
{$IFDEF CPUX86_64}
{$OPTIMIZATION USERBP}
{$ENDIF}
{.$DEFINE USE_MTPROCS}
{.$DEFINE USE_PASMP}
{$IF DEFINED(USE_MTPROCS) AND DEFINED(USE_PASMP)}
{$MESSAGE ERROR 'Only One Threading Library can be used at a time.'}
{$IFEND}
{$ENDIF FPC}
(* &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& *)
{$IFDEF DELPHI}
{$DEFINE HASHLIB_LITTLE_ENDIAN}
{$IFDEF CPUARM}
{$DEFINE HASHLIB_REQUIRES_PROPER_ALIGNMENT}
{$ENDIF}
// XE3 and Above
{$IF CompilerVersion >= 24.0}
{$DEFINE DELPHIXE3_UP}
{$LEGACYIFEND ON}
{$ZEROBASEDSTRINGS OFF}
{$IFEND}
// 2010 only
{$IF CompilerVersion = 21.0}
{$DEFINE DELPHI2010}
{$IFEND}
// 2010 and Above
{$IF CompilerVersion >= 21.0}
{$DEFINE DELPHI2010_UP}
{$IFEND}
// XE and Above
{$IF CompilerVersion >= 22.0}
{$DEFINE DELPHIXE_UP}
{$IFEND}
// XE2 and Above
{$IF CompilerVersion >= 23.0}
{$DEFINE DELPHIXE2_UP}
{$IFEND}
// XE4 and Above
{$IF CompilerVersion >= 25.0}
{$DEFINE DELPHIXE4_UP}
{$DEFINE SHIFT_OVERFLOW_BUG_FIXED}
{$IFEND}
// XE7 and Above
{$IF CompilerVersion >= 28.0}
{$DEFINE DELPHIXE7_UP}
{.$DEFINE USE_DELPHI_PPL} // Use Delphi Parallel Programming Library
{$DEFINE HAS_DELPHI_NET_ENCODING}
{$IFEND}
// 2010 and Above
{$IFNDEF DELPHI2010_UP}
{$MESSAGE ERROR 'This Library requires Delphi 2010 or higher.'}
{$ENDIF}
{$DEFINE USE_UNROLLED_VARIANT}
{.$DEFINE USE_PASMP}
{$IF DEFINED(USE_DELPHI_PPL) AND DEFINED(USE_PASMP)}
{$MESSAGE ERROR 'Only One Threading Library can be used at a time.'}
{$IFEND}
// This option is needed to enable code browsing (aka Ctrl+Click)
// It does not affect the binary size or generated code
{$DEFINITIONINFO ON}
// Disable Overflow and RangeChecks.
{$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF}
// Enable Pointer Math
{$POINTERMATH ON}
// Disable String Checks
{$STRINGCHECKS OFF}
// Disable Duplicate Constructor Warnings
{$WARN DUPLICATE_CTOR_DTOR OFF}
{$ENDIF DELPHI}
(* &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& *)