aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2022-02-12 00:52:12 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2022-02-12 00:52:12 +0100
commitc2e7780e526b0f421c3b43367a53019d1dc5f2d6 (patch)
treeb08d9b78c24ed3b9d77fe23b44b93fa210aabacf
parent1f272c06d02e7c7f0f3af1f97165722255c8828d (diff)
downloadbusybox-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.S64
-rw-r--r--libbb/hash_md5_sha256_x86-64_shaNI.S76
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