1 # Check that llvm-bolt is able to parse DWARF expressions in CFI instructions,
2 # store them in memory and correctly write them back to the output binary.
4 # RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown %s -o %t.o
5 # RUN: %clang %cflags %t.o -o %t.exe
6 # RUN: llvm-bolt %t.exe -o %t && llvm-dwarfdump --eh-frame %t | FileCheck %s
8 # CHECK: DW_CFA_advance_loc: 5
9 # CHECK-NEXT: DW_CFA_def_cfa: R10 +0
10 # CHECK-NEXT: DW_CFA_advance_loc: 9
11 # CHECK-NEXT: DW_CFA_expression: RBP DW_OP_breg6 RBP+0
12 # CHECK-NEXT: DW_CFA_advance_loc: 5
13 # CHECK-NEXT: DW_CFA_def_cfa_expression: DW_OP_breg6 RBP-8, DW_OP_deref
14 # CHECK-NEXT: DW_CFA_advance_loc2: 3130
15 # CHECK-NEXT: DW_CFA_def_cfa: R10 +0
16 # CHECK-NEXT: DW_CFA_advance_loc: 5
17 # CHECK-NEXT: DW_CFA_def_cfa: RSP +8
23 # FDATA: 0 [unknown] 0 1 main 0 0 0
27 .cfi_def_cfa_offset 16
30 .cfi_def_cfa_register %rbp
31 callq blake2b_compress_avx2
40 .globl blake2b_compress_avx2
41 .type blake2b_compress_avx2, %function
42 blake2b_compress_avx2
:
43 # FDATA: 0 [unknown] 0 1 blake2b_compress_avx2 0 0 0
51 .cfi_escape 0x10, 0x06, 0x02, 0x76, 0x00 #
54 .cfi_escape 0x0f, 0x03, 0x76, 0x78, 0x06 #
56 vbroadcasti128
(%rsi
), %ymm10
57 vbroadcasti128
0x10(%rsi
), %ymm8
58 vbroadcasti128
0x30(%rsi
), %ymm7
59 vbroadcasti128
0x70(%rsi
), %ymm4
60 vpunpcklqdq
%ymm8
, %ymm10
, %ymm0
61 vbroadcasti128
0x20(%rsi
), %ymm11
62 vmovdqa
%ymm7
, -0x30(%rbp
)
63 vpunpcklqdq
-0x30(%rbp
), %ymm11
, %ymm1
65 vpblendd $
0xf0, %ymm1
, %ymm0
, %ymm4
66 vpaddq
(%rdi
), %ymm4
, %ymm13
67 vpaddq
0x20(%rdi
), %ymm13
, %ymm13
68 vmovdqa
%ymm4
, -0x190(%rbp
)
69 vbroadcasti128
0x60(%rsi
), %ymm7
70 vbroadcasti128
0x50(%rsi
), %ymm6
71 vbroadcasti128
0x40(%rsi
), %ymm9
72 vpunpcklqdq
%ymm15
, %ymm7
, %ymm14
73 vmovq
0x50(%rdi
), %xmm5
74 vpinsrq $
0x1, 0x58(%rdi
), %xmm5
, %xmm1
75 vmovq
0x40(%rdi
), %xmm5
76 vpinsrq $
0x1, 0x48(%rdi
), %xmm5
, %xmm0
77 vinserti128 $
0x1, %xmm1
, %ymm0
, %ymm1
78 vpunpckhqdq
%ymm8
, %ymm10
, %ymm0
79 vpxor
"blake2b_IV/1"+32(%rip
), %ymm1
, %ymm1
80 vpunpckhqdq
-0x30(%rbp
), %ymm11
, %ymm4
81 vpblendd $
0xf0, %ymm4
, %ymm0
, %ymm0
82 vmovdqa DATAat0x401380
(%rip
), %ymm5
83 vmovdqa
%ymm0
, -0xb0(%rbp
)
84 vpxor
%ymm13
, %ymm1
, %ymm1
85 vpaddq
-0xb0(%rbp
), %ymm13
, %ymm13
86 vpshufd $
0xb1, %ymm1
, %ymm1
87 vmovdqa DATAat0x4013a0
(%rip
), %ymm4
88 vpaddq
"blake2b_IV/1"(%rip
), %ymm1
, %ymm3
89 vpxor
0x20(%rdi
), %ymm3
, %ymm2
90 vpshufb
%ymm5
, %ymm2
, %ymm2
91 vpaddq
%ymm2
, %ymm13
, %ymm13
92 vpxor
%ymm1
, %ymm13
, %ymm1
93 vpshufb
%ymm4
, %ymm1
, %ymm1
94 vpaddq
%ymm1
, %ymm3
, %ymm3
95 vpermq $
0x93, %ymm1
, %ymm1
96 vpxor
%ymm2
, %ymm3
, %ymm2
97 vpsrlq $
0x3f, %ymm2
, %ymm12
98 vpaddq
%ymm2
, %ymm2
, %ymm2
99 vpermq $
0x4e, %ymm3
, %ymm3
100 vpor
%ymm12
, %ymm2
, %ymm2
101 vpermq $
0x39, %ymm2
, %ymm0
102 vpunpcklqdq
%ymm6
, %ymm9
, %ymm2
103 vpunpckhqdq
%ymm15
, %ymm7
, %ymm12
104 vpblendd $
0xf0, %ymm14
, %ymm2
, %ymm2
105 vmovdqa
%ymm2
, -0xd0(%rbp
)
106 vpaddq
-0xd0(%rbp
), %ymm13
, %ymm13
107 vpunpckhqdq
%ymm6
, %ymm9
, %ymm2
108 vpblendd $
0xf0, %ymm12
, %ymm2
, %ymm2
109 vmovdqa
%ymm2
, -0xf0(%rbp
)
110 vmovdqa
%ymm15
, %ymm12
111 vpaddq
%ymm0
, %ymm13
, %ymm13
112 vmovdqa
%ymm12
, -0x50(%rbp
)
113 vpxor
%ymm13
, %ymm1
, %ymm1
114 vpaddq
-0xf0(%rbp
), %ymm13
, %ymm13
115 vpshufd $
0xb1, %ymm1
, %ymm1
116 vpaddq
%ymm1
, %ymm3
, %ymm3
117 vpxor
%ymm0
, %ymm3
, %ymm0
118 vpshufb
%ymm5
, %ymm0
, %ymm0
119 vpaddq
%ymm0
, %ymm13
, %ymm13
120 vpxor
%ymm1
, %ymm13
, %ymm1
121 vpshufb
%ymm4
, %ymm1
, %ymm1
122 vpaddq
%ymm1
, %ymm3
, %ymm3
123 vpermq $
0x39, %ymm1
, %ymm1
124 vpxor
%ymm0
, %ymm3
, %ymm0
125 vpsrlq $
0x3f, %ymm0
, %ymm2
126 vpaddq
%ymm0
, %ymm0
, %ymm0
127 vpermq $
0x4e, %ymm3
, %ymm3
128 vpor
%ymm2
, %ymm0
, %ymm0
129 vpunpcklqdq
%ymm11
, %ymm15
, %ymm2
130 vmovdqa
%ymm2
, %ymm15
131 vpunpckhqdq
%ymm7
, %ymm9
, %ymm2
132 vpblendd $
0xf0, %ymm2
, %ymm15
, %ymm2
133 vmovdqa
%ymm15
, -0x1b0(%rbp
)
134 vpermq $
0x93, %ymm0
, %ymm0
135 vmovdqa
%ymm2
, -0x110(%rbp
)
136 vpunpcklqdq
%ymm9
, %ymm6
, %ymm2
137 vpaddq
-0x110(%rbp
), %ymm13
, %ymm13
138 vmovdqa
%ymm2
, %ymm15
139 vmovdqa
-0x30(%rbp
), %ymm2
140 vpalignr $
0x8, -0x50(%rbp
), %ymm2
, %ymm2
141 vmovdqa
%ymm15
, -0x1d0(%rbp
)
142 vpaddq
%ymm0
, %ymm13
, %ymm13
143 vpblendd $
0xf0, %ymm2
, %ymm15
, %ymm12
144 vpxor
%ymm13
, %ymm1
, %ymm1
145 vpshufd $
0xb1, %ymm1
, %ymm1
146 vpaddq
%ymm1
, %ymm3
, %ymm3
147 vmovdqa
%ymm12
, -0x130(%rbp
)
148 vpxor
%ymm0
, %ymm3
, %ymm0
149 vpshufb
%ymm5
, %ymm0
, %ymm0
150 vpaddq
-0x130(%rbp
), %ymm13
, %ymm13
151 vmovdqa
-0x30(%rbp
), %ymm15
152 vpunpckhqdq
%ymm11
, %ymm6
, %ymm12
153 vpaddq
%ymm0
, %ymm13
, %ymm13
154 vpxor
%ymm1
, %ymm13
, %ymm1
155 vpshufb
%ymm4
, %ymm1
, %ymm1
156 vpaddq
%ymm1
, %ymm3
, %ymm3
157 vpermq $
0x93, %ymm1
, %ymm1
158 vpxor
%ymm0
, %ymm3
, %ymm0
159 vpsrlq $
0x3f, %ymm0
, %ymm2
160 vpaddq
%ymm0
, %ymm0
, %ymm0
161 vpermq $
0x4e, %ymm3
, %ymm3
162 vpor
%ymm2
, %ymm0
, %ymm0
163 vpshufd $
0x4e, %ymm10
, %ymm2
164 vpblendd $
0xf0, %ymm12
, %ymm2
, %ymm12
165 vpermq $
0x39, %ymm0
, %ymm0
166 vmovdqa
%ymm12
, -0x150(%rbp
)
167 vpunpckhqdq
%ymm8
, %ymm15
, %ymm12
168 vpunpcklqdq
%ymm8
, %ymm7
, %ymm2
169 vpaddq
-0x150(%rbp
), %ymm13
, %ymm13
170 vmovdqa
%ymm12
, -0x70(%rbp
)
171 vmovdqa
-0x50(%rbp
), %ymm15
172 vpblendd $
0xf0, -0x70(%rbp
), %ymm2
, %ymm2
173 vpaddq
%ymm0
, %ymm13
, %ymm13
174 vmovdqa
%ymm2
, -0x170(%rbp
)
175 vpxor
%ymm13
, %ymm1
, %ymm1
176 vpunpckhqdq
%ymm15
, %ymm11
, %ymm12
177 vpaddq
-0x170(%rbp
), %ymm13
, %ymm13
178 vpshufd $
0xb1, %ymm1
, %ymm1
179 vpaddq
%ymm1
, %ymm3
, %ymm3
180 vmovdqa
%ymm12
, -0x90(%rbp
)
181 vpunpcklqdq
%ymm10
, %ymm9
, %ymm12
182 vpxor
%ymm0
, %ymm3
, %ymm0
183 vpshufb
%ymm5
, %ymm0
, %ymm0
184 vpaddq
%ymm0
, %ymm13
, %ymm13
185 vpxor
%ymm1
, %ymm13
, %ymm1
186 vpshufb
%ymm4
, %ymm1
, %ymm1
187 vpaddq
%ymm1
, %ymm3
, %ymm3
188 vpermq $
0x39, %ymm1
, %ymm1
189 vpxor
%ymm0
, %ymm3
, %ymm0
190 vpsrlq $
0x3f, %ymm0
, %ymm2
191 vpaddq
%ymm0
, %ymm0
, %ymm0
192 vpermq $
0x4e, %ymm3
, %ymm3
193 vpor
%ymm2
, %ymm0
, %ymm0
194 vpalignr $
0x8, %ymm6
, %ymm7
, %ymm2
195 vpermq $
0x93, %ymm0
, %ymm0
196 vpblendd $
0xf0, -0x90(%rbp
), %ymm2
, %ymm2
197 vpaddq
%ymm2
, %ymm13
, %ymm2
198 vpblendd $
0x33, %ymm8
, %ymm7
, %ymm13
199 vpaddq
%ymm0
, %ymm2
, %ymm2
200 vpblendd $
0xf0, %ymm13
, %ymm12
, %ymm12
201 vmovdqa
-0x30(%rbp
), %ymm13
202 vpxor
%ymm2
, %ymm1
, %ymm1
203 vpaddq
%ymm12
, %ymm2
, %ymm12
204 vpshufd $
0xb1, %ymm1
, %ymm1
205 vpaddq
%ymm1
, %ymm3
, %ymm3
206 vpxor
%ymm0
, %ymm3
, %ymm0
207 vpshufb
%ymm5
, %ymm0
, %ymm0
208 vpaddq
%ymm0
, %ymm12
, %ymm12
209 vpunpckhqdq
%ymm9
, %ymm13
, %ymm13
210 vpxor
%ymm1
, %ymm12
, %ymm1
211 vpshufb
%ymm4
, %ymm1
, %ymm1
212 vpaddq
%ymm1
, %ymm3
, %ymm3
213 vpermq $
0x93, %ymm1
, %ymm1
214 vpxor
%ymm0
, %ymm3
, %ymm0
215 vpsrlq $
0x3f, %ymm0
, %ymm2
216 vpaddq
%ymm0
, %ymm0
, %ymm0
217 vpermq $
0x4e, %ymm3
, %ymm3
218 vpor
%ymm2
, %ymm0
, %ymm0
219 vpblendd $
0x33, %ymm6
, %ymm8
, %ymm2
220 vpermq $
0x39, %ymm0
, %ymm0
221 vpblendd $
0xf0, %ymm13
, %ymm2
, %ymm13
222 vpunpcklqdq
-0x30(%rbp
), %ymm15
, %ymm2
223 vmovdqa
-0x70(%rbp
), %ymm15
224 vpaddq
%ymm13
, %ymm12
, %ymm13
225 vpalignr $
0x8, %ymm10
, %ymm11
, %ymm12
226 vpaddq
%ymm0
, %ymm13
, %ymm13
227 vpblendd $
0xf0, %ymm12
, %ymm2
, %ymm2
228 vpxor
%ymm13
, %ymm1
, %ymm1
229 vpaddq
%ymm2
, %ymm13
, %ymm2
230 vpshufd $
0xb1, %ymm1
, %ymm1
231 vpaddq
%ymm1
, %ymm3
, %ymm3
232 vpxor
%ymm0
, %ymm3
, %ymm0
233 vpshufb
%ymm5
, %ymm0
, %ymm0
234 vpaddq
%ymm0
, %ymm2
, %ymm2
235 vpunpckhqdq
%ymm10
, %ymm9
, %ymm13
236 vpxor
%ymm1
, %ymm2
, %ymm1
237 vpshufb
%ymm4
, %ymm1
, %ymm1
238 vpaddq
%ymm1
, %ymm3
, %ymm3
239 vpblendd $
0xf0, %ymm14
, %ymm13
, %ymm13
240 vpxor
%ymm0
, %ymm3
, %ymm0
241 vpsrlq $
0x3f, %ymm0
, %ymm12
242 vpaddq
%ymm0
, %ymm0
, %ymm0
243 vpermq $
0x39, %ymm1
, %ymm1
244 vpor
%ymm12
, %ymm0
, %ymm0
245 vpunpckhqdq
%ymm6
, %ymm7
, %ymm12
246 vpermq $
0x93, %ymm0
, %ymm0
247 vpermq $
0x4e, %ymm3
, %ymm3
248 vpblendd $
0xf0, %ymm12
, %ymm15
, %ymm12
249 vmovdqa
-0x50(%rbp
), %ymm15
250 vpaddq
%ymm12
, %ymm2
, %ymm12
251 vpaddq
%ymm0
, %ymm12
, %ymm12
252 vpblendd $
0x33, %ymm11
, %ymm15
, %ymm14
253 vpunpcklqdq
%ymm6
, %ymm8
, %ymm15
254 vpxor
%ymm12
, %ymm1
, %ymm1
255 vpaddq
%ymm13
, %ymm12
, %ymm13
256 vpshufd $
0xb1, %ymm1
, %ymm1
257 vpaddq
%ymm1
, %ymm3
, %ymm3
258 vpxor
%ymm0
, %ymm3
, %ymm0
259 vpshufb
%ymm5
, %ymm0
, %ymm0
260 vpaddq
%ymm0
, %ymm13
, %ymm13
261 vpxor
%ymm1
, %ymm13
, %ymm1
262 vpshufb
%ymm4
, %ymm1
, %ymm1
263 vpaddq
%ymm1
, %ymm3
, %ymm3
264 vpermq $
0x93, %ymm1
, %ymm1
265 vpxor
%ymm0
, %ymm3
, %ymm0
266 vpsrlq $
0x3f, %ymm0
, %ymm2
267 vpaddq
%ymm0
, %ymm0
, %ymm0
268 vpermq $
0x4e, %ymm3
, %ymm3
269 vpor
%ymm2
, %ymm0
, %ymm0
270 vpblendd $
0x33, %ymm8
, %ymm11
, %ymm2
271 vpermq $
0x39, %ymm0
, %ymm12
272 vmovdqa
-0x30(%rbp
), %ymm0
273 vpblendd $
0xf0, %ymm14
, %ymm2
, %ymm2
274 vpaddq
%ymm2
, %ymm13
, %ymm2
275 vpunpcklqdq
%ymm6
, %ymm0
, %ymm13
276 vmovdqa
%ymm13
, %ymm0
277 vpunpcklqdq
%ymm9
, %ymm10
, %ymm13
278 vmovdqa
%ymm0
, -0x1f0(%rbp
)
279 vpaddq
%ymm12
, %ymm2
, %ymm2
280 vpblendd $
0xf0, %ymm13
, %ymm0
, %ymm0
281 vpxor
%ymm2
, %ymm1
, %ymm1
282 vpaddq
%ymm0
, %ymm2
, %ymm2
283 vpshufd $
0xb1, %ymm1
, %ymm1
284 vpaddq
%ymm1
, %ymm3
, %ymm3
285 vpxor
%ymm12
, %ymm3
, %ymm12
286 vpshufb
%ymm5
, %ymm12
, %ymm12
287 vpaddq
%ymm12
, %ymm2
, %ymm2
288 vpxor
%ymm1
, %ymm2
, %ymm1
289 vpshufb
%ymm4
, %ymm1
, %ymm1
290 vpaddq
%ymm1
, %ymm3
, %ymm3
291 vpermq $
0x39, %ymm1
, %ymm1
292 vpxor
%ymm12
, %ymm3
, %ymm12
293 vpsrlq $
0x3f, %ymm12
, %ymm0
294 vpaddq
%ymm12
, %ymm12
, %ymm12
295 vpermq $
0x4e, %ymm3
, %ymm3
296 vpor
%ymm0
, %ymm12
, %ymm12
297 vpermq $
0x93, %ymm12
, %ymm0
298 vpunpckhqdq
%ymm11
, %ymm9
, %ymm12
299 vpblendd $
0xf0, %ymm15
, %ymm12
, %ymm12
300 vmovdqa
-0x30(%rbp
), %ymm15
301 vpaddq
%ymm12
, %ymm2
, %ymm2
302 vpaddq
%ymm0
, %ymm2
, %ymm2
303 vpblendd $
0x33, %ymm10
, %ymm15
, %ymm12
304 vpxor
%ymm2
, %ymm1
, %ymm1
305 vpshufd $
0xb1, %ymm1
, %ymm1
306 vpaddq
%ymm1
, %ymm3
, %ymm3
307 vpblendd $
0xf0, %ymm14
, %ymm12
, %ymm14
308 vpxor
%ymm0
, %ymm3
, %ymm0
309 vpshufb
%ymm5
, %ymm0
, %ymm0
310 vmovdqa
-0x50(%rbp
), %ymm15
311 vpaddq
%ymm14
, %ymm2
, %ymm2
312 vpblendd $
0x33, -0x30(%rbp
), %ymm8
, %ymm14
313 vpaddq
%ymm0
, %ymm2
, %ymm2
314 vpxor
%ymm1
, %ymm2
, %ymm1
315 vpshufb
%ymm4
, %ymm1
, %ymm1
316 vpaddq
%ymm1
, %ymm3
, %ymm3
317 vpermq $
0x93, %ymm1
, %ymm1
318 vpxor
%ymm0
, %ymm3
, %ymm0
319 vpsrlq $
0x3f, %ymm0
, %ymm12
320 vpaddq
%ymm0
, %ymm0
, %ymm0
321 vpermq $
0x4e, %ymm3
, %ymm3
322 vpor
%ymm12
, %ymm0
, %ymm0
323 vpblendd $
0x33, %ymm15
, %ymm6
, %ymm12
324 vpermq $
0x39, %ymm0
, %ymm0
325 vpblendd $
0xf0, %ymm14
, %ymm12
, %ymm12
326 vpblendd $
0x33, %ymm9
, %ymm7
, %ymm14
327 vpaddq
%ymm12
, %ymm2
, %ymm2
328 vpalignr $
0x8, %ymm10
, %ymm7
, %ymm12
329 vpaddq
%ymm0
, %ymm2
, %ymm2
330 vpblendd $
0xf0, %ymm14
, %ymm12
, %ymm12
331 vmovdqa
-0x30(%rbp
), %ymm14
332 vpxor
%ymm2
, %ymm1
, %ymm1
333 vpaddq
%ymm12
, %ymm2
, %ymm2
334 vpshufd $
0xb1, %ymm1
, %ymm1
335 vpaddq
%ymm1
, %ymm3
, %ymm3
336 vpxor
%ymm0
, %ymm3
, %ymm0
337 vpshufb
%ymm5
, %ymm0
, %ymm0
338 vpaddq
%ymm0
, %ymm2
, %ymm2
339 vpxor
%ymm1
, %ymm2
, %ymm1
340 vpshufb
%ymm4
, %ymm1
, %ymm1
341 vpaddq
%ymm1
, %ymm3
, %ymm3
342 vpermq $
0x39, %ymm1
, %ymm1
343 vpxor
%ymm0
, %ymm3
, %ymm0
344 vpsrlq $
0x3f, %ymm0
, %ymm12
345 vpaddq
%ymm0
, %ymm0
, %ymm0
346 vpermq $
0x4e, %ymm3
, %ymm3
347 vpor
%ymm12
, %ymm0
, %ymm0
348 vpunpcklqdq
-0x30(%rbp
), %ymm8
, %ymm12
349 vpblendd $
0xf0, %ymm13
, %ymm12
, %ymm13
350 vpermq $
0x93, %ymm0
, %ymm0
351 vpaddq
%ymm13
, %ymm2
, %ymm2
352 vpunpcklqdq
%ymm6
, %ymm7
, %ymm12
353 vpunpckhqdq
%ymm8
, %ymm6
, %ymm13
354 vpblendd $
0xf0, %ymm13
, %ymm12
, %ymm12
355 vpaddq
%ymm0
, %ymm2
, %ymm2
356 vpunpckhqdq
%ymm10
, %ymm15
, %ymm13
357 vpxor
%ymm2
, %ymm1
, %ymm1
358 vpaddq
%ymm12
, %ymm2
, %ymm2
359 vpshufd $
0xb1, %ymm1
, %ymm1
360 vpaddq
%ymm1
, %ymm3
, %ymm3
361 vpxor
%ymm0
, %ymm3
, %ymm0
362 vpshufb
%ymm5
, %ymm0
, %ymm0
363 vpaddq
%ymm0
, %ymm2
, %ymm2
364 vpxor
%ymm1
, %ymm2
, %ymm1
365 vpshufb
%ymm4
, %ymm1
, %ymm1
366 vpaddq
%ymm1
, %ymm3
, %ymm3
367 vpermq $
0x93, %ymm1
, %ymm1
368 vpxor
%ymm0
, %ymm3
, %ymm0
369 vpsrlq $
0x3f, %ymm0
, %ymm12
370 vpaddq
%ymm0
, %ymm0
, %ymm0
371 vpermq $
0x4e, %ymm3
, %ymm3
372 vpor
%ymm12
, %ymm0
, %ymm0
373 vpblendd $
0x33, %ymm11
, %ymm14
, %ymm12
374 vmovdqa
%ymm15
, %ymm14
375 vpermq $
0x39, %ymm0
, %ymm0
376 vpblendd $
0xf0, %ymm13
, %ymm12
, %ymm12
377 vpblendd $
0x33, %ymm14
, %ymm9
, %ymm13
378 vmovdqa
-0x90(%rbp
), %ymm15
379 vpaddq
%ymm12
, %ymm2
, %ymm2
380 vpunpckhqdq
%ymm11
, %ymm7
, %ymm12
381 vpblendd $
0xf0, %ymm13
, %ymm12
, %ymm12
382 vpshufd $
0x4e, %ymm9
, %ymm13
383 vpaddq
%ymm0
, %ymm2
, %ymm2
384 vpxor
%ymm2
, %ymm1
, %ymm1
385 vpaddq
%ymm12
, %ymm2
, %ymm2
386 vpshufd $
0xb1, %ymm1
, %ymm1
387 vpaddq
%ymm1
, %ymm3
, %ymm3
388 vpxor
%ymm0
, %ymm3
, %ymm0
389 vpshufb
%ymm5
, %ymm0
, %ymm0
390 vpaddq
%ymm0
, %ymm2
, %ymm2
391 vpxor
%ymm1
, %ymm2
, %ymm1
392 vpshufb
%ymm4
, %ymm1
, %ymm1
393 vpaddq
%ymm1
, %ymm3
, %ymm3
394 vpermq $
0x39, %ymm1
, %ymm1
395 vpxor
%ymm0
, %ymm3
, %ymm0
396 vpsrlq $
0x3f, %ymm0
, %ymm12
397 vpaddq
%ymm0
, %ymm0
, %ymm0
398 vpermq $
0x4e, %ymm3
, %ymm3
399 vpor
%ymm12
, %ymm0
, %ymm0
400 vpblendd $
0x33, %ymm7
, %ymm10
, %ymm12
401 vpermq $
0x93, %ymm0
, %ymm0
402 vpblendd $
0xf0, -0x1b0(%rbp
), %ymm12
, %ymm12
403 vpaddq
%ymm12
, %ymm2
, %ymm2
404 vpalignr $
0x8, %ymm7
, %ymm6
, %ymm12
405 vpaddq
%ymm0
, %ymm2
, %ymm2
406 vpblendd $
0xf0, %ymm12
, %ymm15
, %ymm12
407 vmovdqa
-0x70(%rbp
), %ymm15
408 vpxor
%ymm2
, %ymm1
, %ymm1
409 vpaddq
%ymm12
, %ymm2
, %ymm2
410 vpshufd $
0xb1, %ymm1
, %ymm1
411 vpaddq
%ymm1
, %ymm3
, %ymm3
412 vpxor
%ymm0
, %ymm3
, %ymm0
413 vpshufb
%ymm5
, %ymm0
, %ymm0
414 vpaddq
%ymm0
, %ymm2
, %ymm2
415 vpxor
%ymm1
, %ymm2
, %ymm1
416 vpshufb
%ymm4
, %ymm1
, %ymm1
417 vpaddq
%ymm1
, %ymm3
, %ymm3
418 vpermq $
0x93, %ymm1
, %ymm1
419 vpxor
%ymm0
, %ymm3
, %ymm0
420 vpsrlq $
0x3f, %ymm0
, %ymm12
421 vpaddq
%ymm0
, %ymm0
, %ymm0
422 vpermq $
0x4e, %ymm3
, %ymm3
423 vpor
%ymm12
, %ymm0
, %ymm0
424 vpunpcklqdq
-0x30(%rbp
), %ymm10
, %ymm12
425 vpblendd $
0xf0, %ymm13
, %ymm12
, %ymm12
426 vpermq $
0x39, %ymm0
, %ymm0
427 vpaddq
%ymm12
, %ymm2
, %ymm2
428 vpblendd $
0x33, %ymm8
, %ymm6
, %ymm12
429 vpblendd $
0x33, %ymm7
, %ymm8
, %ymm13
430 vpaddq
%ymm0
, %ymm2
, %ymm2
431 vpblendd $
0xf0, %ymm12
, %ymm15
, %ymm12
432 vmovdqa
-0x90(%rbp
), %ymm15
433 vpxor
%ymm2
, %ymm1
, %ymm1
434 vpaddq
%ymm12
, %ymm2
, %ymm2
435 vpshufd $
0xb1, %ymm1
, %ymm1
436 vpaddq
%ymm1
, %ymm3
, %ymm3
437 vpxor
%ymm0
, %ymm3
, %ymm0
438 vpshufb
%ymm5
, %ymm0
, %ymm0
439 vpaddq
%ymm0
, %ymm2
, %ymm2
440 vpxor
%ymm1
, %ymm2
, %ymm1
441 vpshufb
%ymm4
, %ymm1
, %ymm1
442 vpaddq
%ymm1
, %ymm3
, %ymm3
443 vpermq $
0x39, %ymm1
, %ymm1
444 vpxor
%ymm0
, %ymm3
, %ymm0
445 vpsrlq $
0x3f, %ymm0
, %ymm12
446 vpaddq
%ymm0
, %ymm0
, %ymm0
447 vpermq $
0x4e, %ymm3
, %ymm3
448 vpor
%ymm12
, %ymm0
, %ymm0
449 vpunpckhqdq
-0x30(%rbp
), %ymm7
, %ymm12
450 vpblendd $
0xf0, %ymm13
, %ymm12
, %ymm12
451 vmovdqa
%ymm14
, %ymm13
452 vpaddq
%ymm12
, %ymm2
, %ymm2
453 vpalignr $
0x8, %ymm6
, %ymm14
, %ymm14
454 vpunpckhqdq
%ymm9
, %ymm10
, %ymm12
455 vpermq $
0x93, %ymm0
, %ymm0
456 vpblendd $
0xf0, %ymm12
, %ymm14
, %ymm12
457 vpaddq
%ymm0
, %ymm2
, %ymm2
458 vpxor
%ymm2
, %ymm1
, %ymm1
459 vpaddq
%ymm12
, %ymm2
, %ymm2
460 vpshufd $
0xb1, %ymm1
, %ymm1
461 vpaddq
%ymm1
, %ymm3
, %ymm3
462 vpxor
%ymm0
, %ymm3
, %ymm0
463 vpshufb
%ymm5
, %ymm0
, %ymm0
464 vpaddq
%ymm0
, %ymm2
, %ymm2
465 vpxor
%ymm1
, %ymm2
, %ymm1
466 vpshufb
%ymm4
, %ymm1
, %ymm1
467 vpaddq
%ymm1
, %ymm3
, %ymm3
468 vpermq $
0x93, %ymm1
, %ymm1
469 vpxor
%ymm0
, %ymm3
, %ymm0
470 vpsrlq $
0x3f, %ymm0
, %ymm12
471 vpaddq
%ymm0
, %ymm0
, %ymm0
472 vpermq $
0x4e, %ymm3
, %ymm3
473 vpor
%ymm12
, %ymm0
, %ymm0
474 vpunpcklqdq
%ymm8
, %ymm9
, %ymm12
475 vpblendd $
0xf0, %ymm12
, %ymm15
, %ymm12
476 vpermq $
0x39, %ymm0
, %ymm0
477 vpaddq
%ymm12
, %ymm2
, %ymm2
478 vpunpcklqdq
%ymm11
, %ymm10
, %ymm12
479 vmovdqa
%ymm13
, %ymm15
480 vpblendd $
0xf0, -0x1f0(%rbp
), %ymm12
, %ymm12
481 vpaddq
%ymm0
, %ymm2
, %ymm2
482 vpxor
%ymm2
, %ymm1
, %ymm1
483 vpaddq
%ymm12
, %ymm2
, %ymm2
484 vpshufd $
0xb1, %ymm1
, %ymm1
485 vpaddq
%ymm1
, %ymm3
, %ymm3
486 vpxor
%ymm0
, %ymm3
, %ymm0
487 vpshufb
%ymm5
, %ymm0
, %ymm0
488 vpaddq
%ymm0
, %ymm2
, %ymm2
489 vpxor
%ymm1
, %ymm2
, %ymm1
490 vpshufb
%ymm4
, %ymm1
, %ymm1
491 vpaddq
%ymm1
, %ymm3
, %ymm3
492 vpermq $
0x39, %ymm1
, %ymm1
493 vpxor
%ymm0
, %ymm3
, %ymm0
494 vpsrlq $
0x3f, %ymm0
, %ymm12
495 vpaddq
%ymm0
, %ymm0
, %ymm0
496 vpermq $
0x4e, %ymm3
, %ymm3
497 vpor
%ymm12
, %ymm0
, %ymm0
498 vmovdqa
-0x30(%rbp
), %ymm12
499 vpermq $
0x93, %ymm0
, %ymm0
500 vpunpcklqdq
%ymm13
, %ymm12
, %ymm12
501 vpalignr $
0x8, %ymm6
, %ymm10
, %ymm13
502 vpblendd $
0xf0, %ymm13
, %ymm12
, %ymm12
503 vpunpckhqdq
%ymm9
, %ymm15
, %ymm13
504 vpalignr $
0x8, %ymm8
, %ymm9
, %ymm9
505 vpaddq
%ymm12
, %ymm2
, %ymm12
506 vpalignr $
0x8, %ymm10
, %ymm6
, %ymm6
507 vpblendd $
0xf0, %ymm9
, %ymm13
, %ymm9
508 vpaddq
%ymm0
, %ymm12
, %ymm12
509 vpblendd $
0xf0, %ymm6
, %ymm7
, %ymm6
510 vpxor
%ymm12
, %ymm1
, %ymm1
511 vpaddq
%ymm9
, %ymm12
, %ymm12
512 vpshufd $
0xb1, %ymm1
, %ymm1
513 vpaddq
%ymm1
, %ymm3
, %ymm3
514 vpxor
%ymm3
, %ymm0
, %ymm0
515 vpshufb
%ymm5
, %ymm0
, %ymm0
516 vpaddq
%ymm0
, %ymm12
, %ymm12
517 vpxor
%ymm1
, %ymm12
, %ymm1
518 vpaddq
%ymm6
, %ymm12
, %ymm12
519 vpshufb
%ymm4
, %ymm1
, %ymm1
520 vmovdqa
-0x30(%rbp
), %ymm6
521 vpaddq
%ymm1
, %ymm3
, %ymm3
522 vpermq $
0x93, %ymm1
, %ymm1
523 vpxor
%ymm0
, %ymm3
, %ymm0
524 vpsrlq $
0x3f, %ymm0
, %ymm2
525 vpaddq
%ymm0
, %ymm0
, %ymm0
526 vpermq $
0x4e, %ymm3
, %ymm3
527 vpor
%ymm2
, %ymm0
, %ymm0
528 vpblendd $
0x33, %ymm8
, %ymm6
, %ymm2
529 vpermq $
0x39, %ymm0
, %ymm0
530 vpaddq
%ymm0
, %ymm12
, %ymm12
531 vpblendd $
0xf0, %ymm11
, %ymm2
, %ymm2
532 vpxor
%ymm12
, %ymm1
, %ymm1
533 vpshufd $
0xb1, %ymm1
, %ymm1
534 vpaddq
%ymm1
, %ymm3
, %ymm3
535 vpaddq
%ymm2
, %ymm12
, %ymm12
536 vpxor
%ymm3
, %ymm0
, %ymm0
537 vpshufb
%ymm5
, %ymm0
, %ymm0
538 vmovdqa
-0x30(%rbp
), %ymm6
539 vpaddq
%ymm0
, %ymm12
, %ymm12
540 vpxor
%ymm1
, %ymm12
, %ymm1
541 vpshufb
%ymm4
, %ymm1
, %ymm1
542 vpaddq
%ymm1
, %ymm3
, %ymm3
543 vpermq $
0x39, %ymm1
, %ymm1
544 vpxor
%ymm0
, %ymm3
, %ymm0
545 vpsrlq $
0x3f, %ymm0
, %ymm2
546 vpaddq
%ymm0
, %ymm0
, %ymm0
547 vpermq $
0x4e, %ymm3
, %ymm3
548 vpor
%ymm2
, %ymm0
, %ymm2
549 vpunpckhqdq
%ymm10
, %ymm6
, %ymm0
550 vmovdqa
-0x1d0(%rbp
), %ymm6
551 vpermq $
0x93, %ymm2
, %ymm2
552 vpblendd $
0xf0, %ymm0
, %ymm6
, %ymm0
553 vpaddq
%ymm0
, %ymm12
, %ymm12
554 vpunpcklqdq
%ymm11
, %ymm8
, %ymm0
555 vpblendd $
0x33, -0x30(%rbp
), %ymm11
, %ymm11
556 vpunpckhqdq
%ymm7
, %ymm8
, %ymm8
557 vpaddq
%ymm2
, %ymm12
, %ymm12
558 vpblendd $
0xf0, %ymm11
, %ymm0
, %ymm11
559 vpblendd $
0xf0, %ymm8
, %ymm13
, %ymm8
560 vpunpcklqdq
%ymm10
, %ymm7
, %ymm7
561 vpxor
%ymm12
, %ymm1
, %ymm1
562 vpaddq
%ymm11
, %ymm12
, %ymm12
563 vpshufd $
0xb1, %ymm1
, %ymm1
564 vpaddq
%ymm1
, %ymm3
, %ymm3
565 vpxor
%ymm3
, %ymm2
, %ymm2
566 vpshufb
%ymm5
, %ymm2
, %ymm2
567 vpaddq
%ymm2
, %ymm12
, %ymm12
568 vpblendd $
0xf0, %ymm7
, %ymm14
, %ymm7
569 vpxor
%ymm1
, %ymm12
, %ymm1
570 vpshufb
%ymm4
, %ymm1
, %ymm1
571 vpaddq
%ymm1
, %ymm3
, %ymm3
572 vpaddq
%ymm8
, %ymm12
, %ymm8
573 vpxor
%ymm2
, %ymm3
, %ymm2
574 vpsrlq $
0x3f, %ymm2
, %ymm0
575 vpaddq
%ymm2
, %ymm2
, %ymm2
576 vpermq $
0x93, %ymm1
, %ymm1
577 vpor
%ymm0
, %ymm2
, %ymm2
578 vpermq $
0x39, %ymm2
, %ymm2
579 vpaddq
%ymm2
, %ymm8
, %ymm8
580 vpermq $
0x4e, %ymm3
, %ymm3
581 vpxor
%ymm8
, %ymm1
, %ymm1
582 vpaddq
%ymm7
, %ymm8
, %ymm8
583 vpshufd $
0xb1, %ymm1
, %ymm1
584 vpaddq
%ymm1
, %ymm3
, %ymm3
585 vpxor
%ymm3
, %ymm2
, %ymm2
586 vpshufb
%ymm5
, %ymm2
, %ymm2
587 vpaddq
%ymm2
, %ymm8
, %ymm8
588 vpxor
%ymm1
, %ymm8
, %ymm1
589 vpaddq
-0x190(%rbp
), %ymm8
, %ymm8
590 vpshufb
%ymm4
, %ymm1
, %ymm1
591 vpaddq
%ymm1
, %ymm3
, %ymm3
592 vpxor
%ymm2
, %ymm3
, %ymm2
593 vpsrlq $
0x3f, %ymm2
, %ymm0
594 vpaddq
%ymm2
, %ymm2
, %ymm2
595 vpermq $
0x39, %ymm1
, %ymm1
596 vpor
%ymm0
, %ymm2
, %ymm2
597 vpermq $
0x93, %ymm2
, %ymm0
598 vpaddq
%ymm0
, %ymm8
, %ymm8
599 vpermq $
0x4e, %ymm3
, %ymm3
600 vpxor
%ymm8
, %ymm1
, %ymm1
601 vpaddq
-0xb0(%rbp
), %ymm8
, %ymm8
602 vpshufd $
0xb1, %ymm1
, %ymm1
603 vpaddq
%ymm1
, %ymm3
, %ymm3
604 vpxor
%ymm3
, %ymm0
, %ymm0
605 vpshufb
%ymm5
, %ymm0
, %ymm0
606 vpaddq
%ymm0
, %ymm8
, %ymm8
607 vpxor
%ymm1
, %ymm8
, %ymm1
608 vpaddq
-0xd0(%rbp
), %ymm8
, %ymm8
609 vpshufb
%ymm4
, %ymm1
, %ymm1
610 vpaddq
%ymm1
, %ymm3
, %ymm3
611 vpxor
%ymm0
, %ymm3
, %ymm0
612 vpaddq
%ymm0
, %ymm0
, %ymm6
613 vpermq $
0x93, %ymm1
, %ymm1
614 vpermq $
0x4e, %ymm3
, %ymm3
615 vpsrlq $
0x3f, %ymm0
, %ymm2
616 vpor
%ymm2
, %ymm6
, %ymm6
617 vpermq $
0x39, %ymm6
, %ymm6
618 vpaddq
%ymm6
, %ymm8
, %ymm2
619 vpxor
%ymm2
, %ymm1
, %ymm1
620 vpaddq
-0xf0(%rbp
), %ymm2
, %ymm2
621 vpshufd $
0xb1, %ymm1
, %ymm1
622 vpaddq
%ymm1
, %ymm3
, %ymm3
623 vpxor
%ymm3
, %ymm6
, %ymm6
624 vpshufb
%ymm5
, %ymm6
, %ymm6
625 vpaddq
%ymm6
, %ymm2
, %ymm2
626 vpxor
%ymm1
, %ymm2
, %ymm1
627 vpaddq
-0x110(%rbp
), %ymm2
, %ymm2
628 vpshufb
%ymm4
, %ymm1
, %ymm1
629 vpaddq
%ymm1
, %ymm3
, %ymm3
630 vpxor
%ymm6
, %ymm3
, %ymm6
631 vpsrlq $
0x3f, %ymm6
, %ymm0
632 vpaddq
%ymm6
, %ymm6
, %ymm6
633 vpermq $
0x39, %ymm1
, %ymm1
634 vpor
%ymm0
, %ymm6
, %ymm0
635 vpermq $
0x93, %ymm0
, %ymm0
636 vpaddq
%ymm0
, %ymm2
, %ymm2
637 vpermq $
0x4e, %ymm3
, %ymm3
638 vpxor
%ymm2
, %ymm1
, %ymm1
639 vpaddq
-0x130(%rbp
), %ymm2
, %ymm2
640 vpshufd $
0xb1, %ymm1
, %ymm1
641 vpaddq
%ymm1
, %ymm3
, %ymm3
642 vpxor
%ymm3
, %ymm0
, %ymm0
643 vpshufb
%ymm5
, %ymm0
, %ymm0
644 vpaddq
%ymm0
, %ymm2
, %ymm2
645 vpxor
%ymm1
, %ymm2
, %ymm1
646 vpaddq
-0x150(%rbp
), %ymm2
, %ymm2
647 vpshufb
%ymm4
, %ymm1
, %ymm1
648 vpaddq
%ymm1
, %ymm3
, %ymm3
649 vpxor
%ymm0
, %ymm3
, %ymm0
650 vpsrlq $
0x3f, %ymm0
, %ymm6
651 vpaddq
%ymm0
, %ymm0
, %ymm0
652 vpermq $
0x93, %ymm1
, %ymm1
653 vpor
%ymm6
, %ymm0
, %ymm0
654 vpermq $
0x39, %ymm0
, %ymm0
655 vpaddq
%ymm0
, %ymm2
, %ymm2
656 vpermq $
0x4e, %ymm3
, %ymm3
657 vpxor
%ymm2
, %ymm1
, %ymm1
658 vpaddq
-0x170(%rbp
), %ymm2
, %ymm2
659 vpshufd $
0xb1, %ymm1
, %ymm1
660 vpaddq
%ymm1
, %ymm3
, %ymm3
661 vpxor
%ymm3
, %ymm0
, %ymm0
662 vpshufb
%ymm5
, %ymm0
, %ymm5
663 vpaddq
%ymm5
, %ymm2
, %ymm2
664 vpxor
%ymm1
, %ymm2
, %ymm1
665 vpshufb
%ymm4
, %ymm1
, %ymm4
666 vpaddq
%ymm4
, %ymm3
, %ymm0
667 vpermq $
0x39, %ymm4
, %ymm4
668 vpxor
%ymm5
, %ymm0
, %ymm5
669 vpsrlq $
0x3f, %ymm5
, %ymm1
670 vpaddq
%ymm5
, %ymm5
, %ymm5
671 vpermq $
0x4e, %ymm0
, %ymm0
672 vpor
%ymm1
, %ymm5
, %ymm5
673 vpxor
(%rdi
), %ymm0
, %ymm0
674 vpermq $
0x93, %ymm5
, %ymm5
675 vpxor
%ymm2
, %ymm0
, %ymm2
676 vmovdqu
%ymm2
, (%rdi
)
677 vpxor
0x20(%rdi
), %ymm5
, %ymm5
678 vpxor
%ymm4
, %ymm5
, %ymm4
679 vmovdqu
%ymm4
, 0x20(%rdi
)
686 leaq
-0x8(%r10), %rsp
691 .size blake2b_compress_avx2, .-blake2b_compress_avx2