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. 3 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 7# 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 18 19 .text 20 .globl main 21 .type main, %function 22main: 23# FDATA: 0 [unknown] 0 1 main 0 0 0 24 .cfi_startproc 25.LBB06: 26 pushq %rbp 27 .cfi_def_cfa_offset 16 28 .cfi_offset %rbp, -16 29 movq %rsp, %rbp 30 .cfi_def_cfa_register %rbp 31 callq blake2b_compress_avx2 32 movl $0x0, %eax 33 popq %rbp 34 .cfi_def_cfa %rsp, 8 35 retq 36 37 .cfi_endproc 38.size main, .-main 39 40 .globl blake2b_compress_avx2 41 .type blake2b_compress_avx2, %function 42blake2b_compress_avx2: 43# FDATA: 0 [unknown] 0 1 blake2b_compress_avx2 0 0 0 44 .cfi_startproc 45.LBB07: 46 leaq 0x8(%rsp), %r10 47 .cfi_def_cfa %r10, 0 48 andq $-0x20, %rsp 49 pushq -0x8(%r10) 50 pushq %rbp 51 .cfi_escape 0x10, 0x06, 0x02, 0x76, 0x00 # 52 movq %rsp, %rbp 53 pushq %r10 54 .cfi_escape 0x0f, 0x03, 0x76, 0x78, 0x06 # 55 subq $0x170, %rsp 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 64 vmovdqa %ymm4, %ymm15 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) 680 vzeroupper 681 xorl %eax, %eax 682 addq $0x170, %rsp 683 popq %r10 684 .cfi_def_cfa %r10, 0 685 popq %rbp 686 leaq -0x8(%r10), %rsp 687 .cfi_def_cfa %rsp, 8 688 retq 689 690 .cfi_endproc 691.size blake2b_compress_avx2, .-blake2b_compress_avx2 692.section .rodata 693"blake2b_IV/1": 694"DATAat0x4013a0": 695"DATAat0x401380": 696