diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2022-02-12 00:52:12 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2022-02-12 00:52:12 +0100 |
commit | c2e7780e526b0f421c3b43367a53019d1dc5f2d6 (patch) | |
tree | b08d9b78c24ed3b9d77fe23b44b93fa210aabacf | |
parent | 1f272c06d02e7c7f0f3af1f97165722255c8828d (diff) | |
download | busybox-w32-c2e7780e526b0f421c3b43367a53019d1dc5f2d6.tar.gz busybox-w32-c2e7780e526b0f421c3b43367a53019d1dc5f2d6.tar.bz2 busybox-w32-c2e7780e526b0f421c3b43367a53019d1dc5f2d6.zip |
libbb/sha256: explicitly use sha256rnds2's %xmm0 (MSG) argument
Else, the code seemingly does not use MSG.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | libbb/hash_md5_sha256_x86-32_shaNI.S | 64 | ||||
-rw-r--r-- | libbb/hash_md5_sha256_x86-64_shaNI.S | 76 |
2 files changed, 70 insertions, 70 deletions
diff --git a/libbb/hash_md5_sha256_x86-32_shaNI.S b/libbb/hash_md5_sha256_x86-32_shaNI.S index c059fb18d..3905bad9a 100644 --- a/libbb/hash_md5_sha256_x86-32_shaNI.S +++ b/libbb/hash_md5_sha256_x86-32_shaNI.S | |||
@@ -60,18 +60,18 @@ sha256_process_block64_shaNI: | |||
60 | pshufb XMMTMP, MSG | 60 | pshufb XMMTMP, MSG |
61 | mova128 MSG, MSGTMP0 | 61 | mova128 MSG, MSGTMP0 |
62 | paddd 0*16-8*16(SHA256CONSTANTS), MSG | 62 | paddd 0*16-8*16(SHA256CONSTANTS), MSG |
63 | sha256rnds2 STATE0, STATE1 | 63 | sha256rnds2 MSG, STATE0, STATE1 |
64 | shuf128_32 $0x0E, MSG, MSG | 64 | shuf128_32 $0x0E, MSG, MSG |
65 | sha256rnds2 STATE1, STATE0 | 65 | sha256rnds2 MSG, STATE1, STATE0 |
66 | 66 | ||
67 | /* Rounds 4-7 */ | 67 | /* Rounds 4-7 */ |
68 | movu128 1*16(DATA_PTR), MSG | 68 | movu128 1*16(DATA_PTR), MSG |
69 | pshufb XMMTMP, MSG | 69 | pshufb XMMTMP, MSG |
70 | mova128 MSG, MSGTMP1 | 70 | mova128 MSG, MSGTMP1 |
71 | paddd 1*16-8*16(SHA256CONSTANTS), MSG | 71 | paddd 1*16-8*16(SHA256CONSTANTS), MSG |
72 | sha256rnds2 STATE0, STATE1 | 72 | sha256rnds2 MSG, STATE0, STATE1 |
73 | shuf128_32 $0x0E, MSG, MSG | 73 | shuf128_32 $0x0E, MSG, MSG |
74 | sha256rnds2 STATE1, STATE0 | 74 | sha256rnds2 MSG, STATE1, STATE0 |
75 | sha256msg1 MSGTMP1, MSGTMP0 | 75 | sha256msg1 MSGTMP1, MSGTMP0 |
76 | 76 | ||
77 | /* Rounds 8-11 */ | 77 | /* Rounds 8-11 */ |
@@ -79,9 +79,9 @@ sha256_process_block64_shaNI: | |||
79 | pshufb XMMTMP, MSG | 79 | pshufb XMMTMP, MSG |
80 | mova128 MSG, MSGTMP2 | 80 | mova128 MSG, MSGTMP2 |
81 | paddd 2*16-8*16(SHA256CONSTANTS), MSG | 81 | paddd 2*16-8*16(SHA256CONSTANTS), MSG |
82 | sha256rnds2 STATE0, STATE1 | 82 | sha256rnds2 MSG, STATE0, STATE1 |
83 | shuf128_32 $0x0E, MSG, MSG | 83 | shuf128_32 $0x0E, MSG, MSG |
84 | sha256rnds2 STATE1, STATE0 | 84 | sha256rnds2 MSG, STATE1, STATE0 |
85 | sha256msg1 MSGTMP2, MSGTMP1 | 85 | sha256msg1 MSGTMP2, MSGTMP1 |
86 | 86 | ||
87 | /* Rounds 12-15 */ | 87 | /* Rounds 12-15 */ |
@@ -90,151 +90,151 @@ sha256_process_block64_shaNI: | |||
90 | /* ...to here */ | 90 | /* ...to here */ |
91 | mova128 MSG, MSGTMP3 | 91 | mova128 MSG, MSGTMP3 |
92 | paddd 3*16-8*16(SHA256CONSTANTS), MSG | 92 | paddd 3*16-8*16(SHA256CONSTANTS), MSG |
93 | sha256rnds2 STATE0, STATE1 | 93 | sha256rnds2 MSG, STATE0, STATE1 |
94 | mova128 MSGTMP3, XMMTMP | 94 | mova128 MSGTMP3, XMMTMP |
95 | palignr $4, MSGTMP2, XMMTMP | 95 | palignr $4, MSGTMP2, XMMTMP |
96 | paddd XMMTMP, MSGTMP0 | 96 | paddd XMMTMP, MSGTMP0 |
97 | sha256msg2 MSGTMP3, MSGTMP0 | 97 | sha256msg2 MSGTMP3, MSGTMP0 |
98 | shuf128_32 $0x0E, MSG, MSG | 98 | shuf128_32 $0x0E, MSG, MSG |
99 | sha256rnds2 STATE1, STATE0 | 99 | sha256rnds2 MSG, STATE1, STATE0 |
100 | sha256msg1 MSGTMP3, MSGTMP2 | 100 | sha256msg1 MSGTMP3, MSGTMP2 |
101 | 101 | ||
102 | /* Rounds 16-19 */ | 102 | /* Rounds 16-19 */ |
103 | mova128 MSGTMP0, MSG | 103 | mova128 MSGTMP0, MSG |
104 | paddd 4*16-8*16(SHA256CONSTANTS), MSG | 104 | paddd 4*16-8*16(SHA256CONSTANTS), MSG |
105 | sha256rnds2 STATE0, STATE1 | 105 | sha256rnds2 MSG, STATE0, STATE1 |
106 | mova128 MSGTMP0, XMMTMP | 106 | mova128 MSGTMP0, XMMTMP |
107 | palignr $4, MSGTMP3, XMMTMP | 107 | palignr $4, MSGTMP3, XMMTMP |
108 | paddd XMMTMP, MSGTMP1 | 108 | paddd XMMTMP, MSGTMP1 |
109 | sha256msg2 MSGTMP0, MSGTMP1 | 109 | sha256msg2 MSGTMP0, MSGTMP1 |
110 | shuf128_32 $0x0E, MSG, MSG | 110 | shuf128_32 $0x0E, MSG, MSG |
111 | sha256rnds2 STATE1, STATE0 | 111 | sha256rnds2 MSG, STATE1, STATE0 |
112 | sha256msg1 MSGTMP0, MSGTMP3 | 112 | sha256msg1 MSGTMP0, MSGTMP3 |
113 | 113 | ||
114 | /* Rounds 20-23 */ | 114 | /* Rounds 20-23 */ |
115 | mova128 MSGTMP1, MSG | 115 | mova128 MSGTMP1, MSG |
116 | paddd 5*16-8*16(SHA256CONSTANTS), MSG | 116 | paddd 5*16-8*16(SHA256CONSTANTS), MSG |
117 | sha256rnds2 STATE0, STATE1 | 117 | sha256rnds2 MSG, STATE0, STATE1 |
118 | mova128 MSGTMP1, XMMTMP | 118 | mova128 MSGTMP1, XMMTMP |
119 | palignr $4, MSGTMP0, XMMTMP | 119 | palignr $4, MSGTMP0, XMMTMP |
120 | paddd XMMTMP, MSGTMP2 | 120 | paddd XMMTMP, MSGTMP2 |
121 | sha256msg2 MSGTMP1, MSGTMP2 | 121 | sha256msg2 MSGTMP1, MSGTMP2 |
122 | shuf128_32 $0x0E, MSG, MSG | 122 | shuf128_32 $0x0E, MSG, MSG |
123 | sha256rnds2 STATE1, STATE0 | 123 | sha256rnds2 MSG, STATE1, STATE0 |
124 | sha256msg1 MSGTMP1, MSGTMP0 | 124 | sha256msg1 MSGTMP1, MSGTMP0 |
125 | 125 | ||
126 | /* Rounds 24-27 */ | 126 | /* Rounds 24-27 */ |
127 | mova128 MSGTMP2, MSG | 127 | mova128 MSGTMP2, MSG |
128 | paddd 6*16-8*16(SHA256CONSTANTS), MSG | 128 | paddd 6*16-8*16(SHA256CONSTANTS), MSG |
129 | sha256rnds2 STATE0, STATE1 | 129 | sha256rnds2 MSG, STATE0, STATE1 |
130 | mova128 MSGTMP2, XMMTMP | 130 | mova128 MSGTMP2, XMMTMP |
131 | palignr $4, MSGTMP1, XMMTMP | 131 | palignr $4, MSGTMP1, XMMTMP |
132 | paddd XMMTMP, MSGTMP3 | 132 | paddd XMMTMP, MSGTMP3 |
133 | sha256msg2 MSGTMP2, MSGTMP3 | 133 | sha256msg2 MSGTMP2, MSGTMP3 |
134 | shuf128_32 $0x0E, MSG, MSG | 134 | shuf128_32 $0x0E, MSG, MSG |
135 | sha256rnds2 STATE1, STATE0 | 135 | sha256rnds2 MSG, STATE1, STATE0 |
136 | sha256msg1 MSGTMP2, MSGTMP1 | 136 | sha256msg1 MSGTMP2, MSGTMP1 |
137 | 137 | ||
138 | /* Rounds 28-31 */ | 138 | /* Rounds 28-31 */ |
139 | mova128 MSGTMP3, MSG | 139 | mova128 MSGTMP3, MSG |
140 | paddd 7*16-8*16(SHA256CONSTANTS), MSG | 140 | paddd 7*16-8*16(SHA256CONSTANTS), MSG |
141 | sha256rnds2 STATE0, STATE1 | 141 | sha256rnds2 MSG, STATE0, STATE1 |
142 | mova128 MSGTMP3, XMMTMP | 142 | mova128 MSGTMP3, XMMTMP |
143 | palignr $4, MSGTMP2, XMMTMP | 143 | palignr $4, MSGTMP2, XMMTMP |
144 | paddd XMMTMP, MSGTMP0 | 144 | paddd XMMTMP, MSGTMP0 |
145 | sha256msg2 MSGTMP3, MSGTMP0 | 145 | sha256msg2 MSGTMP3, MSGTMP0 |
146 | shuf128_32 $0x0E, MSG, MSG | 146 | shuf128_32 $0x0E, MSG, MSG |
147 | sha256rnds2 STATE1, STATE0 | 147 | sha256rnds2 MSG, STATE1, STATE0 |
148 | sha256msg1 MSGTMP3, MSGTMP2 | 148 | sha256msg1 MSGTMP3, MSGTMP2 |
149 | 149 | ||
150 | /* Rounds 32-35 */ | 150 | /* Rounds 32-35 */ |
151 | mova128 MSGTMP0, MSG | 151 | mova128 MSGTMP0, MSG |
152 | paddd 8*16-8*16(SHA256CONSTANTS), MSG | 152 | paddd 8*16-8*16(SHA256CONSTANTS), MSG |
153 | sha256rnds2 STATE0, STATE1 | 153 | sha256rnds2 MSG, STATE0, STATE1 |
154 | mova128 MSGTMP0, XMMTMP | 154 | mova128 MSGTMP0, XMMTMP |
155 | palignr $4, MSGTMP3, XMMTMP | 155 | palignr $4, MSGTMP3, XMMTMP |
156 | paddd XMMTMP, MSGTMP1 | 156 | paddd XMMTMP, MSGTMP1 |
157 | sha256msg2 MSGTMP0, MSGTMP1 | 157 | sha256msg2 MSGTMP0, MSGTMP1 |
158 | shuf128_32 $0x0E, MSG, MSG | 158 | shuf128_32 $0x0E, MSG, MSG |
159 | sha256rnds2 STATE1, STATE0 | 159 | sha256rnds2 MSG, STATE1, STATE0 |
160 | sha256msg1 MSGTMP0, MSGTMP3 | 160 | sha256msg1 MSGTMP0, MSGTMP3 |
161 | 161 | ||
162 | /* Rounds 36-39 */ | 162 | /* Rounds 36-39 */ |
163 | mova128 MSGTMP1, MSG | 163 | mova128 MSGTMP1, MSG |
164 | paddd 9*16-8*16(SHA256CONSTANTS), MSG | 164 | paddd 9*16-8*16(SHA256CONSTANTS), MSG |
165 | sha256rnds2 STATE0, STATE1 | 165 | sha256rnds2 MSG, STATE0, STATE1 |
166 | mova128 MSGTMP1, XMMTMP | 166 | mova128 MSGTMP1, XMMTMP |
167 | palignr $4, MSGTMP0, XMMTMP | 167 | palignr $4, MSGTMP0, XMMTMP |
168 | paddd XMMTMP, MSGTMP2 | 168 | paddd XMMTMP, MSGTMP2 |
169 | sha256msg2 MSGTMP1, MSGTMP2 | 169 | sha256msg2 MSGTMP1, MSGTMP2 |
170 | shuf128_32 $0x0E, MSG, MSG | 170 | shuf128_32 $0x0E, MSG, MSG |
171 | sha256rnds2 STATE1, STATE0 | 171 | sha256rnds2 MSG, STATE1, STATE0 |
172 | sha256msg1 MSGTMP1, MSGTMP0 | 172 | sha256msg1 MSGTMP1, MSGTMP0 |
173 | 173 | ||
174 | /* Rounds 40-43 */ | 174 | /* Rounds 40-43 */ |
175 | mova128 MSGTMP2, MSG | 175 | mova128 MSGTMP2, MSG |
176 | paddd 10*16-8*16(SHA256CONSTANTS), MSG | 176 | paddd 10*16-8*16(SHA256CONSTANTS), MSG |
177 | sha256rnds2 STATE0, STATE1 | 177 | sha256rnds2 MSG, STATE0, STATE1 |
178 | mova128 MSGTMP2, XMMTMP | 178 | mova128 MSGTMP2, XMMTMP |
179 | palignr $4, MSGTMP1, XMMTMP | 179 | palignr $4, MSGTMP1, XMMTMP |
180 | paddd XMMTMP, MSGTMP3 | 180 | paddd XMMTMP, MSGTMP3 |
181 | sha256msg2 MSGTMP2, MSGTMP3 | 181 | sha256msg2 MSGTMP2, MSGTMP3 |
182 | shuf128_32 $0x0E, MSG, MSG | 182 | shuf128_32 $0x0E, MSG, MSG |
183 | sha256rnds2 STATE1, STATE0 | 183 | sha256rnds2 MSG, STATE1, STATE0 |
184 | sha256msg1 MSGTMP2, MSGTMP1 | 184 | sha256msg1 MSGTMP2, MSGTMP1 |
185 | 185 | ||
186 | /* Rounds 44-47 */ | 186 | /* Rounds 44-47 */ |
187 | mova128 MSGTMP3, MSG | 187 | mova128 MSGTMP3, MSG |
188 | paddd 11*16-8*16(SHA256CONSTANTS), MSG | 188 | paddd 11*16-8*16(SHA256CONSTANTS), MSG |
189 | sha256rnds2 STATE0, STATE1 | 189 | sha256rnds2 MSG, STATE0, STATE1 |
190 | mova128 MSGTMP3, XMMTMP | 190 | mova128 MSGTMP3, XMMTMP |
191 | palignr $4, MSGTMP2, XMMTMP | 191 | palignr $4, MSGTMP2, XMMTMP |
192 | paddd XMMTMP, MSGTMP0 | 192 | paddd XMMTMP, MSGTMP0 |
193 | sha256msg2 MSGTMP3, MSGTMP0 | 193 | sha256msg2 MSGTMP3, MSGTMP0 |
194 | shuf128_32 $0x0E, MSG, MSG | 194 | shuf128_32 $0x0E, MSG, MSG |
195 | sha256rnds2 STATE1, STATE0 | 195 | sha256rnds2 MSG, STATE1, STATE0 |
196 | sha256msg1 MSGTMP3, MSGTMP2 | 196 | sha256msg1 MSGTMP3, MSGTMP2 |
197 | 197 | ||
198 | /* Rounds 48-51 */ | 198 | /* Rounds 48-51 */ |
199 | mova128 MSGTMP0, MSG | 199 | mova128 MSGTMP0, MSG |
200 | paddd 12*16-8*16(SHA256CONSTANTS), MSG | 200 | paddd 12*16-8*16(SHA256CONSTANTS), MSG |
201 | sha256rnds2 STATE0, STATE1 | 201 | sha256rnds2 MSG, STATE0, STATE1 |
202 | mova128 MSGTMP0, XMMTMP | 202 | mova128 MSGTMP0, XMMTMP |
203 | palignr $4, MSGTMP3, XMMTMP | 203 | palignr $4, MSGTMP3, XMMTMP |
204 | paddd XMMTMP, MSGTMP1 | 204 | paddd XMMTMP, MSGTMP1 |
205 | sha256msg2 MSGTMP0, MSGTMP1 | 205 | sha256msg2 MSGTMP0, MSGTMP1 |
206 | shuf128_32 $0x0E, MSG, MSG | 206 | shuf128_32 $0x0E, MSG, MSG |
207 | sha256rnds2 STATE1, STATE0 | 207 | sha256rnds2 MSG, STATE1, STATE0 |
208 | sha256msg1 MSGTMP0, MSGTMP3 | 208 | sha256msg1 MSGTMP0, MSGTMP3 |
209 | 209 | ||
210 | /* Rounds 52-55 */ | 210 | /* Rounds 52-55 */ |
211 | mova128 MSGTMP1, MSG | 211 | mova128 MSGTMP1, MSG |
212 | paddd 13*16-8*16(SHA256CONSTANTS), MSG | 212 | paddd 13*16-8*16(SHA256CONSTANTS), MSG |
213 | sha256rnds2 STATE0, STATE1 | 213 | sha256rnds2 MSG, STATE0, STATE1 |
214 | mova128 MSGTMP1, XMMTMP | 214 | mova128 MSGTMP1, XMMTMP |
215 | palignr $4, MSGTMP0, XMMTMP | 215 | palignr $4, MSGTMP0, XMMTMP |
216 | paddd XMMTMP, MSGTMP2 | 216 | paddd XMMTMP, MSGTMP2 |
217 | sha256msg2 MSGTMP1, MSGTMP2 | 217 | sha256msg2 MSGTMP1, MSGTMP2 |
218 | shuf128_32 $0x0E, MSG, MSG | 218 | shuf128_32 $0x0E, MSG, MSG |
219 | sha256rnds2 STATE1, STATE0 | 219 | sha256rnds2 MSG, STATE1, STATE0 |
220 | 220 | ||
221 | /* Rounds 56-59 */ | 221 | /* Rounds 56-59 */ |
222 | mova128 MSGTMP2, MSG | 222 | mova128 MSGTMP2, MSG |
223 | paddd 14*16-8*16(SHA256CONSTANTS), MSG | 223 | paddd 14*16-8*16(SHA256CONSTANTS), MSG |
224 | sha256rnds2 STATE0, STATE1 | 224 | sha256rnds2 MSG, STATE0, STATE1 |
225 | mova128 MSGTMP2, XMMTMP | 225 | mova128 MSGTMP2, XMMTMP |
226 | palignr $4, MSGTMP1, XMMTMP | 226 | palignr $4, MSGTMP1, XMMTMP |
227 | paddd XMMTMP, MSGTMP3 | 227 | paddd XMMTMP, MSGTMP3 |
228 | sha256msg2 MSGTMP2, MSGTMP3 | 228 | sha256msg2 MSGTMP2, MSGTMP3 |
229 | shuf128_32 $0x0E, MSG, MSG | 229 | shuf128_32 $0x0E, MSG, MSG |
230 | sha256rnds2 STATE1, STATE0 | 230 | sha256rnds2 MSG, STATE1, STATE0 |
231 | 231 | ||
232 | /* Rounds 60-63 */ | 232 | /* Rounds 60-63 */ |
233 | mova128 MSGTMP3, MSG | 233 | mova128 MSGTMP3, MSG |
234 | paddd 15*16-8*16(SHA256CONSTANTS), MSG | 234 | paddd 15*16-8*16(SHA256CONSTANTS), MSG |
235 | sha256rnds2 STATE0, STATE1 | 235 | sha256rnds2 MSG, STATE0, STATE1 |
236 | shuf128_32 $0x0E, MSG, MSG | 236 | shuf128_32 $0x0E, MSG, MSG |
237 | sha256rnds2 STATE1, STATE0 | 237 | sha256rnds2 MSG, STATE1, STATE0 |
238 | 238 | ||
239 | /* Write hash values back in the correct order */ | 239 | /* Write hash values back in the correct order */ |
240 | mova128 STATE0, XMMTMP | 240 | mova128 STATE0, XMMTMP |
diff --git a/libbb/hash_md5_sha256_x86-64_shaNI.S b/libbb/hash_md5_sha256_x86-64_shaNI.S index 9578441f8..082ceafe4 100644 --- a/libbb/hash_md5_sha256_x86-64_shaNI.S +++ b/libbb/hash_md5_sha256_x86-64_shaNI.S | |||
@@ -38,8 +38,8 @@ | |||
38 | 38 | ||
39 | #define XMMTMP %xmm7 | 39 | #define XMMTMP %xmm7 |
40 | 40 | ||
41 | #define ABEF_SAVE %xmm9 | 41 | #define SAVE0 %xmm8 |
42 | #define CDGH_SAVE %xmm10 | 42 | #define SAVE1 %xmm9 |
43 | 43 | ||
44 | #define SHUF(a,b,c,d) $(a+(b<<2)+(c<<4)+(d<<6)) | 44 | #define SHUF(a,b,c,d) $(a+(b<<2)+(c<<4)+(d<<6)) |
45 | 45 | ||
@@ -59,26 +59,26 @@ sha256_process_block64_shaNI: | |||
59 | leaq K256+8*16(%rip), SHA256CONSTANTS | 59 | leaq K256+8*16(%rip), SHA256CONSTANTS |
60 | 60 | ||
61 | /* Save hash values for addition after rounds */ | 61 | /* Save hash values for addition after rounds */ |
62 | mova128 STATE0, ABEF_SAVE | 62 | mova128 STATE0, SAVE0 |
63 | mova128 STATE1, CDGH_SAVE | 63 | mova128 STATE1, SAVE1 |
64 | 64 | ||
65 | /* Rounds 0-3 */ | 65 | /* Rounds 0-3 */ |
66 | movu128 0*16(DATA_PTR), MSG | 66 | movu128 0*16(DATA_PTR), MSG |
67 | pshufb XMMTMP, MSG | 67 | pshufb XMMTMP, MSG |
68 | mova128 MSG, MSGTMP0 | 68 | mova128 MSG, MSGTMP0 |
69 | paddd 0*16-8*16(SHA256CONSTANTS), MSG | 69 | paddd 0*16-8*16(SHA256CONSTANTS), MSG |
70 | sha256rnds2 STATE0, STATE1 | 70 | sha256rnds2 MSG, STATE0, STATE1 |
71 | shuf128_32 $0x0E, MSG, MSG | 71 | shuf128_32 $0x0E, MSG, MSG |
72 | sha256rnds2 STATE1, STATE0 | 72 | sha256rnds2 MSG, STATE1, STATE0 |
73 | 73 | ||
74 | /* Rounds 4-7 */ | 74 | /* Rounds 4-7 */ |
75 | movu128 1*16(DATA_PTR), MSG | 75 | movu128 1*16(DATA_PTR), MSG |
76 | pshufb XMMTMP, MSG | 76 | pshufb XMMTMP, MSG |
77 | mova128 MSG, MSGTMP1 | 77 | mova128 MSG, MSGTMP1 |
78 | paddd 1*16-8*16(SHA256CONSTANTS), MSG | 78 | paddd 1*16-8*16(SHA256CONSTANTS), MSG |
79 | sha256rnds2 STATE0, STATE1 | 79 | sha256rnds2 MSG, STATE0, STATE1 |
80 | shuf128_32 $0x0E, MSG, MSG | 80 | shuf128_32 $0x0E, MSG, MSG |
81 | sha256rnds2 STATE1, STATE0 | 81 | sha256rnds2 MSG, STATE1, STATE0 |
82 | sha256msg1 MSGTMP1, MSGTMP0 | 82 | sha256msg1 MSGTMP1, MSGTMP0 |
83 | 83 | ||
84 | /* Rounds 8-11 */ | 84 | /* Rounds 8-11 */ |
@@ -86,9 +86,9 @@ sha256_process_block64_shaNI: | |||
86 | pshufb XMMTMP, MSG | 86 | pshufb XMMTMP, MSG |
87 | mova128 MSG, MSGTMP2 | 87 | mova128 MSG, MSGTMP2 |
88 | paddd 2*16-8*16(SHA256CONSTANTS), MSG | 88 | paddd 2*16-8*16(SHA256CONSTANTS), MSG |
89 | sha256rnds2 STATE0, STATE1 | 89 | sha256rnds2 MSG, STATE0, STATE1 |
90 | shuf128_32 $0x0E, MSG, MSG | 90 | shuf128_32 $0x0E, MSG, MSG |
91 | sha256rnds2 STATE1, STATE0 | 91 | sha256rnds2 MSG, STATE1, STATE0 |
92 | sha256msg1 MSGTMP2, MSGTMP1 | 92 | sha256msg1 MSGTMP2, MSGTMP1 |
93 | 93 | ||
94 | /* Rounds 12-15 */ | 94 | /* Rounds 12-15 */ |
@@ -97,155 +97,155 @@ sha256_process_block64_shaNI: | |||
97 | /* ...to here */ | 97 | /* ...to here */ |
98 | mova128 MSG, MSGTMP3 | 98 | mova128 MSG, MSGTMP3 |
99 | paddd 3*16-8*16(SHA256CONSTANTS), MSG | 99 | paddd 3*16-8*16(SHA256CONSTANTS), MSG |
100 | sha256rnds2 STATE0, STATE1 | 100 | sha256rnds2 MSG, STATE0, STATE1 |
101 | mova128 MSGTMP3, XMMTMP | 101 | mova128 MSGTMP3, XMMTMP |
102 | palignr $4, MSGTMP2, XMMTMP | 102 | palignr $4, MSGTMP2, XMMTMP |
103 | paddd XMMTMP, MSGTMP0 | 103 | paddd XMMTMP, MSGTMP0 |
104 | sha256msg2 MSGTMP3, MSGTMP0 | 104 | sha256msg2 MSGTMP3, MSGTMP0 |
105 | shuf128_32 $0x0E, MSG, MSG | 105 | shuf128_32 $0x0E, MSG, MSG |
106 | sha256rnds2 STATE1, STATE0 | 106 | sha256rnds2 MSG, STATE1, STATE0 |
107 | sha256msg1 MSGTMP3, MSGTMP2 | 107 | sha256msg1 MSGTMP3, MSGTMP2 |
108 | 108 | ||
109 | /* Rounds 16-19 */ | 109 | /* Rounds 16-19 */ |
110 | mova128 MSGTMP0, MSG | 110 | mova128 MSGTMP0, MSG |
111 | paddd 4*16-8*16(SHA256CONSTANTS), MSG | 111 | paddd 4*16-8*16(SHA256CONSTANTS), MSG |
112 | sha256rnds2 STATE0, STATE1 | 112 | sha256rnds2 MSG, STATE0, STATE1 |
113 | mova128 MSGTMP0, XMMTMP | 113 | mova128 MSGTMP0, XMMTMP |
114 | palignr $4, MSGTMP3, XMMTMP | 114 | palignr $4, MSGTMP3, XMMTMP |
115 | paddd XMMTMP, MSGTMP1 | 115 | paddd XMMTMP, MSGTMP1 |
116 | sha256msg2 MSGTMP0, MSGTMP1 | 116 | sha256msg2 MSGTMP0, MSGTMP1 |
117 | shuf128_32 $0x0E, MSG, MSG | 117 | shuf128_32 $0x0E, MSG, MSG |
118 | sha256rnds2 STATE1, STATE0 | 118 | sha256rnds2 MSG, STATE1, STATE0 |
119 | sha256msg1 MSGTMP0, MSGTMP3 | 119 | sha256msg1 MSGTMP0, MSGTMP3 |
120 | 120 | ||
121 | /* Rounds 20-23 */ | 121 | /* Rounds 20-23 */ |
122 | mova128 MSGTMP1, MSG | 122 | mova128 MSGTMP1, MSG |
123 | paddd 5*16-8*16(SHA256CONSTANTS), MSG | 123 | paddd 5*16-8*16(SHA256CONSTANTS), MSG |
124 | sha256rnds2 STATE0, STATE1 | 124 | sha256rnds2 MSG, STATE0, STATE1 |
125 | mova128 MSGTMP1, XMMTMP | 125 | mova128 MSGTMP1, XMMTMP |
126 | palignr $4, MSGTMP0, XMMTMP | 126 | palignr $4, MSGTMP0, XMMTMP |
127 | paddd XMMTMP, MSGTMP2 | 127 | paddd XMMTMP, MSGTMP2 |
128 | sha256msg2 MSGTMP1, MSGTMP2 | 128 | sha256msg2 MSGTMP1, MSGTMP2 |
129 | shuf128_32 $0x0E, MSG, MSG | 129 | shuf128_32 $0x0E, MSG, MSG |
130 | sha256rnds2 STATE1, STATE0 | 130 | sha256rnds2 MSG, STATE1, STATE0 |
131 | sha256msg1 MSGTMP1, MSGTMP0 | 131 | sha256msg1 MSGTMP1, MSGTMP0 |
132 | 132 | ||
133 | /* Rounds 24-27 */ | 133 | /* Rounds 24-27 */ |
134 | mova128 MSGTMP2, MSG | 134 | mova128 MSGTMP2, MSG |
135 | paddd 6*16-8*16(SHA256CONSTANTS), MSG | 135 | paddd 6*16-8*16(SHA256CONSTANTS), MSG |
136 | sha256rnds2 STATE0, STATE1 | 136 | sha256rnds2 MSG, STATE0, STATE1 |
137 | mova128 MSGTMP2, XMMTMP | 137 | mova128 MSGTMP2, XMMTMP |
138 | palignr $4, MSGTMP1, XMMTMP | 138 | palignr $4, MSGTMP1, XMMTMP |
139 | paddd XMMTMP, MSGTMP3 | 139 | paddd XMMTMP, MSGTMP3 |
140 | sha256msg2 MSGTMP2, MSGTMP3 | 140 | sha256msg2 MSGTMP2, MSGTMP3 |
141 | shuf128_32 $0x0E, MSG, MSG | 141 | shuf128_32 $0x0E, MSG, MSG |
142 | sha256rnds2 STATE1, STATE0 | 142 | sha256rnds2 MSG, STATE1, STATE0 |
143 | sha256msg1 MSGTMP2, MSGTMP1 | 143 | sha256msg1 MSGTMP2, MSGTMP1 |
144 | 144 | ||
145 | /* Rounds 28-31 */ | 145 | /* Rounds 28-31 */ |
146 | mova128 MSGTMP3, MSG | 146 | mova128 MSGTMP3, MSG |
147 | paddd 7*16-8*16(SHA256CONSTANTS), MSG | 147 | paddd 7*16-8*16(SHA256CONSTANTS), MSG |
148 | sha256rnds2 STATE0, STATE1 | 148 | sha256rnds2 MSG, STATE0, STATE1 |
149 | mova128 MSGTMP3, XMMTMP | 149 | mova128 MSGTMP3, XMMTMP |
150 | palignr $4, MSGTMP2, XMMTMP | 150 | palignr $4, MSGTMP2, XMMTMP |
151 | paddd XMMTMP, MSGTMP0 | 151 | paddd XMMTMP, MSGTMP0 |
152 | sha256msg2 MSGTMP3, MSGTMP0 | 152 | sha256msg2 MSGTMP3, MSGTMP0 |
153 | shuf128_32 $0x0E, MSG, MSG | 153 | shuf128_32 $0x0E, MSG, MSG |
154 | sha256rnds2 STATE1, STATE0 | 154 | sha256rnds2 MSG, STATE1, STATE0 |
155 | sha256msg1 MSGTMP3, MSGTMP2 | 155 | sha256msg1 MSGTMP3, MSGTMP2 |
156 | 156 | ||
157 | /* Rounds 32-35 */ | 157 | /* Rounds 32-35 */ |
158 | mova128 MSGTMP0, MSG | 158 | mova128 MSGTMP0, MSG |
159 | paddd 8*16-8*16(SHA256CONSTANTS), MSG | 159 | paddd 8*16-8*16(SHA256CONSTANTS), MSG |
160 | sha256rnds2 STATE0, STATE1 | 160 | sha256rnds2 MSG, STATE0, STATE1 |
161 | mova128 MSGTMP0, XMMTMP | 161 | mova128 MSGTMP0, XMMTMP |
162 | palignr $4, MSGTMP3, XMMTMP | 162 | palignr $4, MSGTMP3, XMMTMP |
163 | paddd XMMTMP, MSGTMP1 | 163 | paddd XMMTMP, MSGTMP1 |
164 | sha256msg2 MSGTMP0, MSGTMP1 | 164 | sha256msg2 MSGTMP0, MSGTMP1 |
165 | shuf128_32 $0x0E, MSG, MSG | 165 | shuf128_32 $0x0E, MSG, MSG |
166 | sha256rnds2 STATE1, STATE0 | 166 | sha256rnds2 MSG, STATE1, STATE0 |
167 | sha256msg1 MSGTMP0, MSGTMP3 | 167 | sha256msg1 MSGTMP0, MSGTMP3 |
168 | 168 | ||
169 | /* Rounds 36-39 */ | 169 | /* Rounds 36-39 */ |
170 | mova128 MSGTMP1, MSG | 170 | mova128 MSGTMP1, MSG |
171 | paddd 9*16-8*16(SHA256CONSTANTS), MSG | 171 | paddd 9*16-8*16(SHA256CONSTANTS), MSG |
172 | sha256rnds2 STATE0, STATE1 | 172 | sha256rnds2 MSG, STATE0, STATE1 |
173 | mova128 MSGTMP1, XMMTMP | 173 | mova128 MSGTMP1, XMMTMP |
174 | palignr $4, MSGTMP0, XMMTMP | 174 | palignr $4, MSGTMP0, XMMTMP |
175 | paddd XMMTMP, MSGTMP2 | 175 | paddd XMMTMP, MSGTMP2 |
176 | sha256msg2 MSGTMP1, MSGTMP2 | 176 | sha256msg2 MSGTMP1, MSGTMP2 |
177 | shuf128_32 $0x0E, MSG, MSG | 177 | shuf128_32 $0x0E, MSG, MSG |
178 | sha256rnds2 STATE1, STATE0 | 178 | sha256rnds2 MSG, STATE1, STATE0 |
179 | sha256msg1 MSGTMP1, MSGTMP0 | 179 | sha256msg1 MSGTMP1, MSGTMP0 |
180 | 180 | ||
181 | /* Rounds 40-43 */ | 181 | /* Rounds 40-43 */ |
182 | mova128 MSGTMP2, MSG | 182 | mova128 MSGTMP2, MSG |
183 | paddd 10*16-8*16(SHA256CONSTANTS), MSG | 183 | paddd 10*16-8*16(SHA256CONSTANTS), MSG |
184 | sha256rnds2 STATE0, STATE1 | 184 | sha256rnds2 MSG, STATE0, STATE1 |
185 | mova128 MSGTMP2, XMMTMP | 185 | mova128 MSGTMP2, XMMTMP |
186 | palignr $4, MSGTMP1, XMMTMP | 186 | palignr $4, MSGTMP1, XMMTMP |
187 | paddd XMMTMP, MSGTMP3 | 187 | paddd XMMTMP, MSGTMP3 |
188 | sha256msg2 MSGTMP2, MSGTMP3 | 188 | sha256msg2 MSGTMP2, MSGTMP3 |
189 | shuf128_32 $0x0E, MSG, MSG | 189 | shuf128_32 $0x0E, MSG, MSG |
190 | sha256rnds2 STATE1, STATE0 | 190 | sha256rnds2 MSG, STATE1, STATE0 |
191 | sha256msg1 MSGTMP2, MSGTMP1 | 191 | sha256msg1 MSGTMP2, MSGTMP1 |
192 | 192 | ||
193 | /* Rounds 44-47 */ | 193 | /* Rounds 44-47 */ |
194 | mova128 MSGTMP3, MSG | 194 | mova128 MSGTMP3, MSG |
195 | paddd 11*16-8*16(SHA256CONSTANTS), MSG | 195 | paddd 11*16-8*16(SHA256CONSTANTS), MSG |
196 | sha256rnds2 STATE0, STATE1 | 196 | sha256rnds2 MSG, STATE0, STATE1 |
197 | mova128 MSGTMP3, XMMTMP | 197 | mova128 MSGTMP3, XMMTMP |
198 | palignr $4, MSGTMP2, XMMTMP | 198 | palignr $4, MSGTMP2, XMMTMP |
199 | paddd XMMTMP, MSGTMP0 | 199 | paddd XMMTMP, MSGTMP0 |
200 | sha256msg2 MSGTMP3, MSGTMP0 | 200 | sha256msg2 MSGTMP3, MSGTMP0 |
201 | shuf128_32 $0x0E, MSG, MSG | 201 | shuf128_32 $0x0E, MSG, MSG |
202 | sha256rnds2 STATE1, STATE0 | 202 | sha256rnds2 MSG, STATE1, STATE0 |
203 | sha256msg1 MSGTMP3, MSGTMP2 | 203 | sha256msg1 MSGTMP3, MSGTMP2 |
204 | 204 | ||
205 | /* Rounds 48-51 */ | 205 | /* Rounds 48-51 */ |
206 | mova128 MSGTMP0, MSG | 206 | mova128 MSGTMP0, MSG |
207 | paddd 12*16-8*16(SHA256CONSTANTS), MSG | 207 | paddd 12*16-8*16(SHA256CONSTANTS), MSG |
208 | sha256rnds2 STATE0, STATE1 | 208 | sha256rnds2 MSG, STATE0, STATE1 |
209 | mova128 MSGTMP0, XMMTMP | 209 | mova128 MSGTMP0, XMMTMP |
210 | palignr $4, MSGTMP3, XMMTMP | 210 | palignr $4, MSGTMP3, XMMTMP |
211 | paddd XMMTMP, MSGTMP1 | 211 | paddd XMMTMP, MSGTMP1 |
212 | sha256msg2 MSGTMP0, MSGTMP1 | 212 | sha256msg2 MSGTMP0, MSGTMP1 |
213 | shuf128_32 $0x0E, MSG, MSG | 213 | shuf128_32 $0x0E, MSG, MSG |
214 | sha256rnds2 STATE1, STATE0 | 214 | sha256rnds2 MSG, STATE1, STATE0 |
215 | sha256msg1 MSGTMP0, MSGTMP3 | 215 | sha256msg1 MSGTMP0, MSGTMP3 |
216 | 216 | ||
217 | /* Rounds 52-55 */ | 217 | /* Rounds 52-55 */ |
218 | mova128 MSGTMP1, MSG | 218 | mova128 MSGTMP1, MSG |
219 | paddd 13*16-8*16(SHA256CONSTANTS), MSG | 219 | paddd 13*16-8*16(SHA256CONSTANTS), MSG |
220 | sha256rnds2 STATE0, STATE1 | 220 | sha256rnds2 MSG, STATE0, STATE1 |
221 | mova128 MSGTMP1, XMMTMP | 221 | mova128 MSGTMP1, XMMTMP |
222 | palignr $4, MSGTMP0, XMMTMP | 222 | palignr $4, MSGTMP0, XMMTMP |
223 | paddd XMMTMP, MSGTMP2 | 223 | paddd XMMTMP, MSGTMP2 |
224 | sha256msg2 MSGTMP1, MSGTMP2 | 224 | sha256msg2 MSGTMP1, MSGTMP2 |
225 | shuf128_32 $0x0E, MSG, MSG | 225 | shuf128_32 $0x0E, MSG, MSG |
226 | sha256rnds2 STATE1, STATE0 | 226 | sha256rnds2 MSG, STATE1, STATE0 |
227 | 227 | ||
228 | /* Rounds 56-59 */ | 228 | /* Rounds 56-59 */ |
229 | mova128 MSGTMP2, MSG | 229 | mova128 MSGTMP2, MSG |
230 | paddd 14*16-8*16(SHA256CONSTANTS), MSG | 230 | paddd 14*16-8*16(SHA256CONSTANTS), MSG |
231 | sha256rnds2 STATE0, STATE1 | 231 | sha256rnds2 MSG, STATE0, STATE1 |
232 | mova128 MSGTMP2, XMMTMP | 232 | mova128 MSGTMP2, XMMTMP |
233 | palignr $4, MSGTMP1, XMMTMP | 233 | palignr $4, MSGTMP1, XMMTMP |
234 | paddd XMMTMP, MSGTMP3 | 234 | paddd XMMTMP, MSGTMP3 |
235 | sha256msg2 MSGTMP2, MSGTMP3 | 235 | sha256msg2 MSGTMP2, MSGTMP3 |
236 | shuf128_32 $0x0E, MSG, MSG | 236 | shuf128_32 $0x0E, MSG, MSG |
237 | sha256rnds2 STATE1, STATE0 | 237 | sha256rnds2 MSG, STATE1, STATE0 |
238 | 238 | ||
239 | /* Rounds 60-63 */ | 239 | /* Rounds 60-63 */ |
240 | mova128 MSGTMP3, MSG | 240 | mova128 MSGTMP3, MSG |
241 | paddd 15*16-8*16(SHA256CONSTANTS), MSG | 241 | paddd 15*16-8*16(SHA256CONSTANTS), MSG |
242 | sha256rnds2 STATE0, STATE1 | 242 | sha256rnds2 MSG, STATE0, STATE1 |
243 | shuf128_32 $0x0E, MSG, MSG | 243 | shuf128_32 $0x0E, MSG, MSG |
244 | sha256rnds2 STATE1, STATE0 | 244 | sha256rnds2 MSG, STATE1, STATE0 |
245 | 245 | ||
246 | /* Add current hash values with previously saved */ | 246 | /* Add current hash values with previously saved */ |
247 | paddd ABEF_SAVE, STATE0 | 247 | paddd SAVE0, STATE0 |
248 | paddd CDGH_SAVE, STATE1 | 248 | paddd SAVE1, STATE1 |
249 | 249 | ||
250 | /* Write hash values back in the correct order */ | 250 | /* Write hash values back in the correct order */ |
251 | mova128 STATE0, XMMTMP | 251 | mova128 STATE0, XMMTMP |