1*4757b351SPierre Pronchery/* Do not modify. This file is auto-generated from aesni-xts-avx512.pl. */ 2*4757b351SPierre Pronchery.text 3*4757b351SPierre Pronchery 4*4757b351SPierre Pronchery.globl aesni_xts_avx512_eligible 5*4757b351SPierre Pronchery.type aesni_xts_avx512_eligible,@function 6*4757b351SPierre Pronchery.align 32 7*4757b351SPierre Proncheryaesni_xts_avx512_eligible: 8*4757b351SPierre Pronchery movl OPENSSL_ia32cap_P+8(%rip),%ecx 9*4757b351SPierre Pronchery xorl %eax,%eax 10*4757b351SPierre Pronchery 11*4757b351SPierre Pronchery andl $0xc0030000,%ecx 12*4757b351SPierre Pronchery cmpl $0xc0030000,%ecx 13*4757b351SPierre Pronchery jne .L_done 14*4757b351SPierre Pronchery movl OPENSSL_ia32cap_P+12(%rip),%ecx 15*4757b351SPierre Pronchery 16*4757b351SPierre Pronchery andl $0x640,%ecx 17*4757b351SPierre Pronchery cmpl $0x640,%ecx 18*4757b351SPierre Pronchery cmovel %ecx,%eax 19*4757b351SPierre Pronchery.L_done: 20*4757b351SPierre Pronchery .byte 0xf3,0xc3 21*4757b351SPierre Pronchery.size aesni_xts_avx512_eligible, .-aesni_xts_avx512_eligible 22*4757b351SPierre Pronchery.globl aesni_xts_128_encrypt_avx512 23*4757b351SPierre Pronchery.hidden aesni_xts_128_encrypt_avx512 24*4757b351SPierre Pronchery.type aesni_xts_128_encrypt_avx512,@function 25*4757b351SPierre Pronchery.align 32 26*4757b351SPierre Proncheryaesni_xts_128_encrypt_avx512: 27*4757b351SPierre Pronchery.cfi_startproc 28*4757b351SPierre Pronchery.byte 243,15,30,250 29*4757b351SPierre Pronchery pushq %rbp 30*4757b351SPierre Pronchery movq %rsp,%rbp 31*4757b351SPierre Pronchery subq $136,%rsp 32*4757b351SPierre Pronchery andq $0xffffffffffffffc0,%rsp 33*4757b351SPierre Pronchery movq %rbx,128(%rsp) 34*4757b351SPierre Pronchery movq $0x87,%r10 35*4757b351SPierre Pronchery vmovdqu (%r9),%xmm1 36*4757b351SPierre Pronchery vpxor (%r8),%xmm1,%xmm1 37*4757b351SPierre Pronchery vaesenc 16(%r8),%xmm1,%xmm1 38*4757b351SPierre Pronchery vaesenc 32(%r8),%xmm1,%xmm1 39*4757b351SPierre Pronchery vaesenc 48(%r8),%xmm1,%xmm1 40*4757b351SPierre Pronchery vaesenc 64(%r8),%xmm1,%xmm1 41*4757b351SPierre Pronchery vaesenc 80(%r8),%xmm1,%xmm1 42*4757b351SPierre Pronchery vaesenc 96(%r8),%xmm1,%xmm1 43*4757b351SPierre Pronchery vaesenc 112(%r8),%xmm1,%xmm1 44*4757b351SPierre Pronchery vaesenc 128(%r8),%xmm1,%xmm1 45*4757b351SPierre Pronchery vaesenc 144(%r8),%xmm1,%xmm1 46*4757b351SPierre Pronchery vaesenclast 160(%r8),%xmm1,%xmm1 47*4757b351SPierre Pronchery vmovdqa %xmm1,(%rsp) 48*4757b351SPierre Pronchery 49*4757b351SPierre Pronchery cmpq $0x80,%rdx 50*4757b351SPierre Pronchery jl .L_less_than_128_bytes_hEgxyDlCngwrfFe 51*4757b351SPierre Pronchery vpbroadcastq %r10,%zmm25 52*4757b351SPierre Pronchery cmpq $0x100,%rdx 53*4757b351SPierre Pronchery jge .L_start_by16_hEgxyDlCngwrfFe 54*4757b351SPierre Pronchery cmpq $0x80,%rdx 55*4757b351SPierre Pronchery jge .L_start_by8_hEgxyDlCngwrfFe 56*4757b351SPierre Pronchery 57*4757b351SPierre Pronchery.L_do_n_blocks_hEgxyDlCngwrfFe: 58*4757b351SPierre Pronchery cmpq $0x0,%rdx 59*4757b351SPierre Pronchery je .L_ret_hEgxyDlCngwrfFe 60*4757b351SPierre Pronchery cmpq $0x70,%rdx 61*4757b351SPierre Pronchery jge .L_remaining_num_blocks_is_7_hEgxyDlCngwrfFe 62*4757b351SPierre Pronchery cmpq $0x60,%rdx 63*4757b351SPierre Pronchery jge .L_remaining_num_blocks_is_6_hEgxyDlCngwrfFe 64*4757b351SPierre Pronchery cmpq $0x50,%rdx 65*4757b351SPierre Pronchery jge .L_remaining_num_blocks_is_5_hEgxyDlCngwrfFe 66*4757b351SPierre Pronchery cmpq $0x40,%rdx 67*4757b351SPierre Pronchery jge .L_remaining_num_blocks_is_4_hEgxyDlCngwrfFe 68*4757b351SPierre Pronchery cmpq $0x30,%rdx 69*4757b351SPierre Pronchery jge .L_remaining_num_blocks_is_3_hEgxyDlCngwrfFe 70*4757b351SPierre Pronchery cmpq $0x20,%rdx 71*4757b351SPierre Pronchery jge .L_remaining_num_blocks_is_2_hEgxyDlCngwrfFe 72*4757b351SPierre Pronchery cmpq $0x10,%rdx 73*4757b351SPierre Pronchery jge .L_remaining_num_blocks_is_1_hEgxyDlCngwrfFe 74*4757b351SPierre Pronchery vmovdqa %xmm0,%xmm8 75*4757b351SPierre Pronchery vmovdqa %xmm9,%xmm0 76*4757b351SPierre Pronchery jmp .L_steal_cipher_hEgxyDlCngwrfFe 77*4757b351SPierre Pronchery 78*4757b351SPierre Pronchery.L_remaining_num_blocks_is_7_hEgxyDlCngwrfFe: 79*4757b351SPierre Pronchery movq $0x0000ffffffffffff,%r8 80*4757b351SPierre Pronchery kmovq %r8,%k1 81*4757b351SPierre Pronchery vmovdqu8 (%rdi),%zmm1 82*4757b351SPierre Pronchery vmovdqu8 64(%rdi),%zmm2{%k1} 83*4757b351SPierre Pronchery addq $0x70,%rdi 84*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 85*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm9,%zmm1 86*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm10,%zmm2 87*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 88*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 89*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 90*4757b351SPierre Pronchery 91*4757b351SPierre Pronchery 92*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 93*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 94*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 95*4757b351SPierre Pronchery 96*4757b351SPierre Pronchery 97*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 98*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 99*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 100*4757b351SPierre Pronchery 101*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 102*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 103*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 104*4757b351SPierre Pronchery 105*4757b351SPierre Pronchery 106*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 107*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 108*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 109*4757b351SPierre Pronchery 110*4757b351SPierre Pronchery 111*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 112*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 113*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 114*4757b351SPierre Pronchery 115*4757b351SPierre Pronchery 116*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 117*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 118*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 119*4757b351SPierre Pronchery 120*4757b351SPierre Pronchery 121*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 122*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 123*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 124*4757b351SPierre Pronchery 125*4757b351SPierre Pronchery 126*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 127*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 128*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 129*4757b351SPierre Pronchery 130*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 131*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm1,%zmm1 132*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm2,%zmm2 133*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 134*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 135*4757b351SPierre Pronchery vmovdqu8 %zmm1,(%rsi) 136*4757b351SPierre Pronchery vmovdqu8 %zmm2,64(%rsi){%k1} 137*4757b351SPierre Pronchery addq $0x70,%rsi 138*4757b351SPierre Pronchery vextracti32x4 $0x2,%zmm2,%xmm8 139*4757b351SPierre Pronchery vextracti32x4 $0x3,%zmm10,%xmm0 140*4757b351SPierre Pronchery andq $0xf,%rdx 141*4757b351SPierre Pronchery je .L_ret_hEgxyDlCngwrfFe 142*4757b351SPierre Pronchery jmp .L_steal_cipher_hEgxyDlCngwrfFe 143*4757b351SPierre Pronchery 144*4757b351SPierre Pronchery.L_remaining_num_blocks_is_6_hEgxyDlCngwrfFe: 145*4757b351SPierre Pronchery vmovdqu8 (%rdi),%zmm1 146*4757b351SPierre Pronchery vmovdqu8 64(%rdi),%ymm2 147*4757b351SPierre Pronchery addq $0x60,%rdi 148*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 149*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm9,%zmm1 150*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm10,%zmm2 151*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 152*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 153*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 154*4757b351SPierre Pronchery 155*4757b351SPierre Pronchery 156*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 157*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 158*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 159*4757b351SPierre Pronchery 160*4757b351SPierre Pronchery 161*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 162*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 163*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 164*4757b351SPierre Pronchery 165*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 166*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 167*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 168*4757b351SPierre Pronchery 169*4757b351SPierre Pronchery 170*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 171*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 172*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 173*4757b351SPierre Pronchery 174*4757b351SPierre Pronchery 175*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 176*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 177*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 178*4757b351SPierre Pronchery 179*4757b351SPierre Pronchery 180*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 181*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 182*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 183*4757b351SPierre Pronchery 184*4757b351SPierre Pronchery 185*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 186*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 187*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 188*4757b351SPierre Pronchery 189*4757b351SPierre Pronchery 190*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 191*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 192*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 193*4757b351SPierre Pronchery 194*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 195*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm1,%zmm1 196*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm2,%zmm2 197*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 198*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 199*4757b351SPierre Pronchery vmovdqu8 %zmm1,(%rsi) 200*4757b351SPierre Pronchery vmovdqu8 %ymm2,64(%rsi) 201*4757b351SPierre Pronchery addq $0x60,%rsi 202*4757b351SPierre Pronchery vextracti32x4 $0x1,%zmm2,%xmm8 203*4757b351SPierre Pronchery vextracti32x4 $0x2,%zmm10,%xmm0 204*4757b351SPierre Pronchery andq $0xf,%rdx 205*4757b351SPierre Pronchery je .L_ret_hEgxyDlCngwrfFe 206*4757b351SPierre Pronchery jmp .L_steal_cipher_hEgxyDlCngwrfFe 207*4757b351SPierre Pronchery 208*4757b351SPierre Pronchery.L_remaining_num_blocks_is_5_hEgxyDlCngwrfFe: 209*4757b351SPierre Pronchery vmovdqu8 (%rdi),%zmm1 210*4757b351SPierre Pronchery vmovdqu 64(%rdi),%xmm2 211*4757b351SPierre Pronchery addq $0x50,%rdi 212*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 213*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm9,%zmm1 214*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm10,%zmm2 215*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 216*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 217*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 218*4757b351SPierre Pronchery 219*4757b351SPierre Pronchery 220*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 221*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 222*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 223*4757b351SPierre Pronchery 224*4757b351SPierre Pronchery 225*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 226*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 227*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 228*4757b351SPierre Pronchery 229*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 230*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 231*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 232*4757b351SPierre Pronchery 233*4757b351SPierre Pronchery 234*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 235*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 236*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 237*4757b351SPierre Pronchery 238*4757b351SPierre Pronchery 239*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 240*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 241*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 242*4757b351SPierre Pronchery 243*4757b351SPierre Pronchery 244*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 245*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 246*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 247*4757b351SPierre Pronchery 248*4757b351SPierre Pronchery 249*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 250*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 251*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 252*4757b351SPierre Pronchery 253*4757b351SPierre Pronchery 254*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 255*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 256*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 257*4757b351SPierre Pronchery 258*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 259*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm1,%zmm1 260*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm2,%zmm2 261*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 262*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 263*4757b351SPierre Pronchery vmovdqu8 %zmm1,(%rsi) 264*4757b351SPierre Pronchery vmovdqu %xmm2,64(%rsi) 265*4757b351SPierre Pronchery addq $0x50,%rsi 266*4757b351SPierre Pronchery vmovdqa %xmm2,%xmm8 267*4757b351SPierre Pronchery vextracti32x4 $0x1,%zmm10,%xmm0 268*4757b351SPierre Pronchery andq $0xf,%rdx 269*4757b351SPierre Pronchery je .L_ret_hEgxyDlCngwrfFe 270*4757b351SPierre Pronchery jmp .L_steal_cipher_hEgxyDlCngwrfFe 271*4757b351SPierre Pronchery 272*4757b351SPierre Pronchery.L_remaining_num_blocks_is_4_hEgxyDlCngwrfFe: 273*4757b351SPierre Pronchery vmovdqu8 (%rdi),%zmm1 274*4757b351SPierre Pronchery addq $0x40,%rdi 275*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 276*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm9,%zmm1 277*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 278*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 279*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 280*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 281*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 282*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 283*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 284*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 285*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 286*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 287*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 288*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 289*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 290*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 291*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 292*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 293*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 294*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 295*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 296*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm1,%zmm1 297*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 298*4757b351SPierre Pronchery vmovdqu8 %zmm1,(%rsi) 299*4757b351SPierre Pronchery addq $0x40,%rsi 300*4757b351SPierre Pronchery vextracti32x4 $0x3,%zmm1,%xmm8 301*4757b351SPierre Pronchery vmovdqa64 %xmm10,%xmm0 302*4757b351SPierre Pronchery andq $0xf,%rdx 303*4757b351SPierre Pronchery je .L_ret_hEgxyDlCngwrfFe 304*4757b351SPierre Pronchery jmp .L_steal_cipher_hEgxyDlCngwrfFe 305*4757b351SPierre Pronchery.L_remaining_num_blocks_is_3_hEgxyDlCngwrfFe: 306*4757b351SPierre Pronchery movq $-1,%r8 307*4757b351SPierre Pronchery shrq $0x10,%r8 308*4757b351SPierre Pronchery kmovq %r8,%k1 309*4757b351SPierre Pronchery vmovdqu8 (%rdi),%zmm1{%k1} 310*4757b351SPierre Pronchery addq $0x30,%rdi 311*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 312*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm9,%zmm1 313*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 314*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 315*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 316*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 317*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 318*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 319*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 320*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 321*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 322*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 323*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 324*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 325*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 326*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 327*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 328*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 329*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 330*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 331*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 332*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm1,%zmm1 333*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 334*4757b351SPierre Pronchery vmovdqu8 %zmm1,(%rsi){%k1} 335*4757b351SPierre Pronchery addq $0x30,%rsi 336*4757b351SPierre Pronchery vextracti32x4 $0x2,%zmm1,%xmm8 337*4757b351SPierre Pronchery vextracti32x4 $0x3,%zmm9,%xmm0 338*4757b351SPierre Pronchery andq $0xf,%rdx 339*4757b351SPierre Pronchery je .L_ret_hEgxyDlCngwrfFe 340*4757b351SPierre Pronchery jmp .L_steal_cipher_hEgxyDlCngwrfFe 341*4757b351SPierre Pronchery.L_remaining_num_blocks_is_2_hEgxyDlCngwrfFe: 342*4757b351SPierre Pronchery vmovdqu8 (%rdi),%ymm1 343*4757b351SPierre Pronchery addq $0x20,%rdi 344*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%ymm0 345*4757b351SPierre Pronchery vpternlogq $0x96,%ymm0,%ymm9,%ymm1 346*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%ymm0 347*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 348*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%ymm0 349*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 350*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%ymm0 351*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 352*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%ymm0 353*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 354*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%ymm0 355*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 356*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%ymm0 357*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 358*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%ymm0 359*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 360*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%ymm0 361*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 362*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%ymm0 363*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 364*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%ymm0 365*4757b351SPierre Pronchery vaesenclast %ymm0,%ymm1,%ymm1 366*4757b351SPierre Pronchery vpxorq %ymm9,%ymm1,%ymm1 367*4757b351SPierre Pronchery vmovdqu %ymm1,(%rsi) 368*4757b351SPierre Pronchery addq $0x20,%rsi 369*4757b351SPierre Pronchery vextracti32x4 $0x1,%zmm1,%xmm8 370*4757b351SPierre Pronchery vextracti32x4 $0x2,%zmm9,%xmm0 371*4757b351SPierre Pronchery andq $0xf,%rdx 372*4757b351SPierre Pronchery je .L_ret_hEgxyDlCngwrfFe 373*4757b351SPierre Pronchery jmp .L_steal_cipher_hEgxyDlCngwrfFe 374*4757b351SPierre Pronchery.L_remaining_num_blocks_is_1_hEgxyDlCngwrfFe: 375*4757b351SPierre Pronchery vmovdqu (%rdi),%xmm1 376*4757b351SPierre Pronchery addq $0x10,%rdi 377*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 378*4757b351SPierre Pronchery vpxor (%rcx),%xmm1,%xmm1 379*4757b351SPierre Pronchery vaesenc 16(%rcx),%xmm1,%xmm1 380*4757b351SPierre Pronchery vaesenc 32(%rcx),%xmm1,%xmm1 381*4757b351SPierre Pronchery vaesenc 48(%rcx),%xmm1,%xmm1 382*4757b351SPierre Pronchery vaesenc 64(%rcx),%xmm1,%xmm1 383*4757b351SPierre Pronchery vaesenc 80(%rcx),%xmm1,%xmm1 384*4757b351SPierre Pronchery vaesenc 96(%rcx),%xmm1,%xmm1 385*4757b351SPierre Pronchery vaesenc 112(%rcx),%xmm1,%xmm1 386*4757b351SPierre Pronchery vaesenc 128(%rcx),%xmm1,%xmm1 387*4757b351SPierre Pronchery vaesenc 144(%rcx),%xmm1,%xmm1 388*4757b351SPierre Pronchery vaesenclast 160(%rcx),%xmm1,%xmm1 389*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 390*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 391*4757b351SPierre Pronchery addq $0x10,%rsi 392*4757b351SPierre Pronchery vmovdqa %xmm1,%xmm8 393*4757b351SPierre Pronchery vextracti32x4 $0x1,%zmm9,%xmm0 394*4757b351SPierre Pronchery andq $0xf,%rdx 395*4757b351SPierre Pronchery je .L_ret_hEgxyDlCngwrfFe 396*4757b351SPierre Pronchery jmp .L_steal_cipher_hEgxyDlCngwrfFe 397*4757b351SPierre Pronchery 398*4757b351SPierre Pronchery 399*4757b351SPierre Pronchery.L_start_by16_hEgxyDlCngwrfFe: 400*4757b351SPierre Pronchery vbroadcasti32x4 (%rsp),%zmm0 401*4757b351SPierre Pronchery vbroadcasti32x4 shufb_15_7(%rip),%zmm8 402*4757b351SPierre Pronchery movq $0xaa,%r8 403*4757b351SPierre Pronchery kmovq %r8,%k2 404*4757b351SPierre Pronchery vpshufb %zmm8,%zmm0,%zmm1 405*4757b351SPierre Pronchery vpsllvq const_dq3210(%rip),%zmm0,%zmm4 406*4757b351SPierre Pronchery vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 407*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm2,%zmm3 408*4757b351SPierre Pronchery vpxorq %zmm2,%zmm4,%zmm4{%k2} 409*4757b351SPierre Pronchery vpxord %zmm4,%zmm3,%zmm9 410*4757b351SPierre Pronchery vpsllvq const_dq7654(%rip),%zmm0,%zmm5 411*4757b351SPierre Pronchery vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 412*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm6,%zmm7 413*4757b351SPierre Pronchery vpxorq %zmm6,%zmm5,%zmm5{%k2} 414*4757b351SPierre Pronchery vpxord %zmm5,%zmm7,%zmm10 415*4757b351SPierre Pronchery vpsrldq $0xf,%zmm9,%zmm13 416*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 417*4757b351SPierre Pronchery vpslldq $0x1,%zmm9,%zmm11 418*4757b351SPierre Pronchery vpxord %zmm14,%zmm11,%zmm11 419*4757b351SPierre Pronchery vpsrldq $0xf,%zmm10,%zmm15 420*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm15,%zmm16 421*4757b351SPierre Pronchery vpslldq $0x1,%zmm10,%zmm12 422*4757b351SPierre Pronchery vpxord %zmm16,%zmm12,%zmm12 423*4757b351SPierre Pronchery 424*4757b351SPierre Pronchery.L_main_loop_run_16_hEgxyDlCngwrfFe: 425*4757b351SPierre Pronchery vmovdqu8 (%rdi),%zmm1 426*4757b351SPierre Pronchery vmovdqu8 64(%rdi),%zmm2 427*4757b351SPierre Pronchery vmovdqu8 128(%rdi),%zmm3 428*4757b351SPierre Pronchery vmovdqu8 192(%rdi),%zmm4 429*4757b351SPierre Pronchery addq $0x100,%rdi 430*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 431*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 432*4757b351SPierre Pronchery vpxorq %zmm11,%zmm3,%zmm3 433*4757b351SPierre Pronchery vpxorq %zmm12,%zmm4,%zmm4 434*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 435*4757b351SPierre Pronchery vpxorq %zmm0,%zmm1,%zmm1 436*4757b351SPierre Pronchery vpxorq %zmm0,%zmm2,%zmm2 437*4757b351SPierre Pronchery vpxorq %zmm0,%zmm3,%zmm3 438*4757b351SPierre Pronchery vpxorq %zmm0,%zmm4,%zmm4 439*4757b351SPierre Pronchery vpsrldq $0xf,%zmm11,%zmm13 440*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 441*4757b351SPierre Pronchery vpslldq $0x1,%zmm11,%zmm15 442*4757b351SPierre Pronchery vpxord %zmm14,%zmm15,%zmm15 443*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 444*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 445*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 446*4757b351SPierre Pronchery vaesenc %zmm0,%zmm3,%zmm3 447*4757b351SPierre Pronchery vaesenc %zmm0,%zmm4,%zmm4 448*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 449*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 450*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 451*4757b351SPierre Pronchery vaesenc %zmm0,%zmm3,%zmm3 452*4757b351SPierre Pronchery vaesenc %zmm0,%zmm4,%zmm4 453*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 454*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 455*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 456*4757b351SPierre Pronchery vaesenc %zmm0,%zmm3,%zmm3 457*4757b351SPierre Pronchery vaesenc %zmm0,%zmm4,%zmm4 458*4757b351SPierre Pronchery vpsrldq $0xf,%zmm12,%zmm13 459*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 460*4757b351SPierre Pronchery vpslldq $0x1,%zmm12,%zmm16 461*4757b351SPierre Pronchery vpxord %zmm14,%zmm16,%zmm16 462*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 463*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 464*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 465*4757b351SPierre Pronchery vaesenc %zmm0,%zmm3,%zmm3 466*4757b351SPierre Pronchery vaesenc %zmm0,%zmm4,%zmm4 467*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 468*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 469*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 470*4757b351SPierre Pronchery vaesenc %zmm0,%zmm3,%zmm3 471*4757b351SPierre Pronchery vaesenc %zmm0,%zmm4,%zmm4 472*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 473*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 474*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 475*4757b351SPierre Pronchery vaesenc %zmm0,%zmm3,%zmm3 476*4757b351SPierre Pronchery vaesenc %zmm0,%zmm4,%zmm4 477*4757b351SPierre Pronchery vpsrldq $0xf,%zmm15,%zmm13 478*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 479*4757b351SPierre Pronchery vpslldq $0x1,%zmm15,%zmm17 480*4757b351SPierre Pronchery vpxord %zmm14,%zmm17,%zmm17 481*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 482*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 483*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 484*4757b351SPierre Pronchery vaesenc %zmm0,%zmm3,%zmm3 485*4757b351SPierre Pronchery vaesenc %zmm0,%zmm4,%zmm4 486*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 487*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 488*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 489*4757b351SPierre Pronchery vaesenc %zmm0,%zmm3,%zmm3 490*4757b351SPierre Pronchery vaesenc %zmm0,%zmm4,%zmm4 491*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 492*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 493*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 494*4757b351SPierre Pronchery vaesenc %zmm0,%zmm3,%zmm3 495*4757b351SPierre Pronchery vaesenc %zmm0,%zmm4,%zmm4 496*4757b351SPierre Pronchery vpsrldq $0xf,%zmm16,%zmm13 497*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 498*4757b351SPierre Pronchery vpslldq $0x1,%zmm16,%zmm18 499*4757b351SPierre Pronchery vpxord %zmm14,%zmm18,%zmm18 500*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 501*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm1,%zmm1 502*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm2,%zmm2 503*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm3,%zmm3 504*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm4,%zmm4 505*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 506*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 507*4757b351SPierre Pronchery vpxorq %zmm11,%zmm3,%zmm3 508*4757b351SPierre Pronchery vpxorq %zmm12,%zmm4,%zmm4 509*4757b351SPierre Pronchery 510*4757b351SPierre Pronchery vmovdqa32 %zmm15,%zmm9 511*4757b351SPierre Pronchery vmovdqa32 %zmm16,%zmm10 512*4757b351SPierre Pronchery vmovdqa32 %zmm17,%zmm11 513*4757b351SPierre Pronchery vmovdqa32 %zmm18,%zmm12 514*4757b351SPierre Pronchery vmovdqu8 %zmm1,(%rsi) 515*4757b351SPierre Pronchery vmovdqu8 %zmm2,64(%rsi) 516*4757b351SPierre Pronchery vmovdqu8 %zmm3,128(%rsi) 517*4757b351SPierre Pronchery vmovdqu8 %zmm4,192(%rsi) 518*4757b351SPierre Pronchery addq $0x100,%rsi 519*4757b351SPierre Pronchery subq $0x100,%rdx 520*4757b351SPierre Pronchery cmpq $0x100,%rdx 521*4757b351SPierre Pronchery jae .L_main_loop_run_16_hEgxyDlCngwrfFe 522*4757b351SPierre Pronchery cmpq $0x80,%rdx 523*4757b351SPierre Pronchery jae .L_main_loop_run_8_hEgxyDlCngwrfFe 524*4757b351SPierre Pronchery vextracti32x4 $0x3,%zmm4,%xmm0 525*4757b351SPierre Pronchery jmp .L_do_n_blocks_hEgxyDlCngwrfFe 526*4757b351SPierre Pronchery 527*4757b351SPierre Pronchery.L_start_by8_hEgxyDlCngwrfFe: 528*4757b351SPierre Pronchery vbroadcasti32x4 (%rsp),%zmm0 529*4757b351SPierre Pronchery vbroadcasti32x4 shufb_15_7(%rip),%zmm8 530*4757b351SPierre Pronchery movq $0xaa,%r8 531*4757b351SPierre Pronchery kmovq %r8,%k2 532*4757b351SPierre Pronchery vpshufb %zmm8,%zmm0,%zmm1 533*4757b351SPierre Pronchery vpsllvq const_dq3210(%rip),%zmm0,%zmm4 534*4757b351SPierre Pronchery vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 535*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm2,%zmm3 536*4757b351SPierre Pronchery vpxorq %zmm2,%zmm4,%zmm4{%k2} 537*4757b351SPierre Pronchery vpxord %zmm4,%zmm3,%zmm9 538*4757b351SPierre Pronchery vpsllvq const_dq7654(%rip),%zmm0,%zmm5 539*4757b351SPierre Pronchery vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 540*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm6,%zmm7 541*4757b351SPierre Pronchery vpxorq %zmm6,%zmm5,%zmm5{%k2} 542*4757b351SPierre Pronchery vpxord %zmm5,%zmm7,%zmm10 543*4757b351SPierre Pronchery 544*4757b351SPierre Pronchery.L_main_loop_run_8_hEgxyDlCngwrfFe: 545*4757b351SPierre Pronchery vmovdqu8 (%rdi),%zmm1 546*4757b351SPierre Pronchery vmovdqu8 64(%rdi),%zmm2 547*4757b351SPierre Pronchery addq $0x80,%rdi 548*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 549*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm9,%zmm1 550*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm10,%zmm2 551*4757b351SPierre Pronchery vpsrldq $0xf,%zmm9,%zmm13 552*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 553*4757b351SPierre Pronchery vpslldq $0x1,%zmm9,%zmm15 554*4757b351SPierre Pronchery vpxord %zmm14,%zmm15,%zmm15 555*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 556*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 557*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 558*4757b351SPierre Pronchery 559*4757b351SPierre Pronchery 560*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 561*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 562*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 563*4757b351SPierre Pronchery 564*4757b351SPierre Pronchery 565*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 566*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 567*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 568*4757b351SPierre Pronchery vpsrldq $0xf,%zmm10,%zmm13 569*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 570*4757b351SPierre Pronchery vpslldq $0x1,%zmm10,%zmm16 571*4757b351SPierre Pronchery vpxord %zmm14,%zmm16,%zmm16 572*4757b351SPierre Pronchery 573*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 574*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 575*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 576*4757b351SPierre Pronchery 577*4757b351SPierre Pronchery 578*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 579*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 580*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 581*4757b351SPierre Pronchery 582*4757b351SPierre Pronchery 583*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 584*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 585*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 586*4757b351SPierre Pronchery 587*4757b351SPierre Pronchery 588*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 589*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 590*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 591*4757b351SPierre Pronchery 592*4757b351SPierre Pronchery 593*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 594*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 595*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 596*4757b351SPierre Pronchery 597*4757b351SPierre Pronchery 598*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 599*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 600*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 601*4757b351SPierre Pronchery 602*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 603*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm1,%zmm1 604*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm2,%zmm2 605*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 606*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 607*4757b351SPierre Pronchery vmovdqa32 %zmm15,%zmm9 608*4757b351SPierre Pronchery vmovdqa32 %zmm16,%zmm10 609*4757b351SPierre Pronchery vmovdqu8 %zmm1,(%rsi) 610*4757b351SPierre Pronchery vmovdqu8 %zmm2,64(%rsi) 611*4757b351SPierre Pronchery addq $0x80,%rsi 612*4757b351SPierre Pronchery subq $0x80,%rdx 613*4757b351SPierre Pronchery cmpq $0x80,%rdx 614*4757b351SPierre Pronchery jae .L_main_loop_run_8_hEgxyDlCngwrfFe 615*4757b351SPierre Pronchery vextracti32x4 $0x3,%zmm2,%xmm0 616*4757b351SPierre Pronchery jmp .L_do_n_blocks_hEgxyDlCngwrfFe 617*4757b351SPierre Pronchery 618*4757b351SPierre Pronchery.L_steal_cipher_hEgxyDlCngwrfFe: 619*4757b351SPierre Pronchery vmovdqa %xmm8,%xmm2 620*4757b351SPierre Pronchery leaq vpshufb_shf_table(%rip),%rax 621*4757b351SPierre Pronchery vmovdqu (%rax,%rdx,1),%xmm10 622*4757b351SPierre Pronchery vpshufb %xmm10,%xmm8,%xmm8 623*4757b351SPierre Pronchery vmovdqu -16(%rdi,%rdx,1),%xmm3 624*4757b351SPierre Pronchery vmovdqu %xmm8,-16(%rsi,%rdx,1) 625*4757b351SPierre Pronchery leaq vpshufb_shf_table(%rip),%rax 626*4757b351SPierre Pronchery addq $16,%rax 627*4757b351SPierre Pronchery subq %rdx,%rax 628*4757b351SPierre Pronchery vmovdqu (%rax),%xmm10 629*4757b351SPierre Pronchery vpxor mask1(%rip),%xmm10,%xmm10 630*4757b351SPierre Pronchery vpshufb %xmm10,%xmm3,%xmm3 631*4757b351SPierre Pronchery vpblendvb %xmm10,%xmm2,%xmm3,%xmm3 632*4757b351SPierre Pronchery vpxor %xmm0,%xmm3,%xmm8 633*4757b351SPierre Pronchery vpxor (%rcx),%xmm8,%xmm8 634*4757b351SPierre Pronchery vaesenc 16(%rcx),%xmm8,%xmm8 635*4757b351SPierre Pronchery vaesenc 32(%rcx),%xmm8,%xmm8 636*4757b351SPierre Pronchery vaesenc 48(%rcx),%xmm8,%xmm8 637*4757b351SPierre Pronchery vaesenc 64(%rcx),%xmm8,%xmm8 638*4757b351SPierre Pronchery vaesenc 80(%rcx),%xmm8,%xmm8 639*4757b351SPierre Pronchery vaesenc 96(%rcx),%xmm8,%xmm8 640*4757b351SPierre Pronchery vaesenc 112(%rcx),%xmm8,%xmm8 641*4757b351SPierre Pronchery vaesenc 128(%rcx),%xmm8,%xmm8 642*4757b351SPierre Pronchery vaesenc 144(%rcx),%xmm8,%xmm8 643*4757b351SPierre Pronchery vaesenclast 160(%rcx),%xmm8,%xmm8 644*4757b351SPierre Pronchery vpxor %xmm0,%xmm8,%xmm8 645*4757b351SPierre Pronchery vmovdqu %xmm8,-16(%rsi) 646*4757b351SPierre Pronchery.L_ret_hEgxyDlCngwrfFe: 647*4757b351SPierre Pronchery movq 128(%rsp),%rbx 648*4757b351SPierre Pronchery xorq %r8,%r8 649*4757b351SPierre Pronchery movq %r8,128(%rsp) 650*4757b351SPierre Pronchery 651*4757b351SPierre Pronchery vpxorq %zmm0,%zmm0,%zmm0 652*4757b351SPierre Pronchery movq %rbp,%rsp 653*4757b351SPierre Pronchery popq %rbp 654*4757b351SPierre Pronchery vzeroupper 655*4757b351SPierre Pronchery .byte 0xf3,0xc3 656*4757b351SPierre Pronchery 657*4757b351SPierre Pronchery.L_less_than_128_bytes_hEgxyDlCngwrfFe: 658*4757b351SPierre Pronchery vpbroadcastq %r10,%zmm25 659*4757b351SPierre Pronchery cmpq $0x10,%rdx 660*4757b351SPierre Pronchery jb .L_ret_hEgxyDlCngwrfFe 661*4757b351SPierre Pronchery vbroadcasti32x4 (%rsp),%zmm0 662*4757b351SPierre Pronchery vbroadcasti32x4 shufb_15_7(%rip),%zmm8 663*4757b351SPierre Pronchery movl $0xaa,%r8d 664*4757b351SPierre Pronchery kmovq %r8,%k2 665*4757b351SPierre Pronchery movq %rdx,%r8 666*4757b351SPierre Pronchery andq $0x70,%r8 667*4757b351SPierre Pronchery cmpq $0x60,%r8 668*4757b351SPierre Pronchery je .L_num_blocks_is_6_hEgxyDlCngwrfFe 669*4757b351SPierre Pronchery cmpq $0x50,%r8 670*4757b351SPierre Pronchery je .L_num_blocks_is_5_hEgxyDlCngwrfFe 671*4757b351SPierre Pronchery cmpq $0x40,%r8 672*4757b351SPierre Pronchery je .L_num_blocks_is_4_hEgxyDlCngwrfFe 673*4757b351SPierre Pronchery cmpq $0x30,%r8 674*4757b351SPierre Pronchery je .L_num_blocks_is_3_hEgxyDlCngwrfFe 675*4757b351SPierre Pronchery cmpq $0x20,%r8 676*4757b351SPierre Pronchery je .L_num_blocks_is_2_hEgxyDlCngwrfFe 677*4757b351SPierre Pronchery cmpq $0x10,%r8 678*4757b351SPierre Pronchery je .L_num_blocks_is_1_hEgxyDlCngwrfFe 679*4757b351SPierre Pronchery 680*4757b351SPierre Pronchery.L_num_blocks_is_7_hEgxyDlCngwrfFe: 681*4757b351SPierre Pronchery vpshufb %zmm8,%zmm0,%zmm1 682*4757b351SPierre Pronchery vpsllvq const_dq3210(%rip),%zmm0,%zmm4 683*4757b351SPierre Pronchery vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 684*4757b351SPierre Pronchery vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 685*4757b351SPierre Pronchery vpxorq %zmm2,%zmm4,%zmm4{%k2} 686*4757b351SPierre Pronchery vpxord %zmm4,%zmm3,%zmm9 687*4757b351SPierre Pronchery vpsllvq const_dq7654(%rip),%zmm0,%zmm5 688*4757b351SPierre Pronchery vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 689*4757b351SPierre Pronchery vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7 690*4757b351SPierre Pronchery vpxorq %zmm6,%zmm5,%zmm5{%k2} 691*4757b351SPierre Pronchery vpxord %zmm5,%zmm7,%zmm10 692*4757b351SPierre Pronchery movq $0x0000ffffffffffff,%r8 693*4757b351SPierre Pronchery kmovq %r8,%k1 694*4757b351SPierre Pronchery vmovdqu8 0(%rdi),%zmm1 695*4757b351SPierre Pronchery vmovdqu8 64(%rdi),%zmm2{%k1} 696*4757b351SPierre Pronchery 697*4757b351SPierre Pronchery addq $0x70,%rdi 698*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 699*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm9,%zmm1 700*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm10,%zmm2 701*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 702*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 703*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 704*4757b351SPierre Pronchery 705*4757b351SPierre Pronchery 706*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 707*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 708*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 709*4757b351SPierre Pronchery 710*4757b351SPierre Pronchery 711*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 712*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 713*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 714*4757b351SPierre Pronchery 715*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 716*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 717*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 718*4757b351SPierre Pronchery 719*4757b351SPierre Pronchery 720*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 721*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 722*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 723*4757b351SPierre Pronchery 724*4757b351SPierre Pronchery 725*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 726*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 727*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 728*4757b351SPierre Pronchery 729*4757b351SPierre Pronchery 730*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 731*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 732*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 733*4757b351SPierre Pronchery 734*4757b351SPierre Pronchery 735*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 736*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 737*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 738*4757b351SPierre Pronchery 739*4757b351SPierre Pronchery 740*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 741*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 742*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 743*4757b351SPierre Pronchery 744*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 745*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm1,%zmm1 746*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm2,%zmm2 747*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 748*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 749*4757b351SPierre Pronchery vmovdqu8 %zmm1,0(%rsi) 750*4757b351SPierre Pronchery vmovdqu8 %zmm2,64(%rsi){%k1} 751*4757b351SPierre Pronchery addq $0x70,%rsi 752*4757b351SPierre Pronchery vextracti32x4 $0x2,%zmm2,%xmm8 753*4757b351SPierre Pronchery vextracti32x4 $0x3,%zmm10,%xmm0 754*4757b351SPierre Pronchery andq $0xf,%rdx 755*4757b351SPierre Pronchery je .L_ret_hEgxyDlCngwrfFe 756*4757b351SPierre Pronchery jmp .L_steal_cipher_hEgxyDlCngwrfFe 757*4757b351SPierre Pronchery.L_num_blocks_is_6_hEgxyDlCngwrfFe: 758*4757b351SPierre Pronchery vpshufb %zmm8,%zmm0,%zmm1 759*4757b351SPierre Pronchery vpsllvq const_dq3210(%rip),%zmm0,%zmm4 760*4757b351SPierre Pronchery vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 761*4757b351SPierre Pronchery vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 762*4757b351SPierre Pronchery vpxorq %zmm2,%zmm4,%zmm4{%k2} 763*4757b351SPierre Pronchery vpxord %zmm4,%zmm3,%zmm9 764*4757b351SPierre Pronchery vpsllvq const_dq7654(%rip),%zmm0,%zmm5 765*4757b351SPierre Pronchery vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 766*4757b351SPierre Pronchery vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7 767*4757b351SPierre Pronchery vpxorq %zmm6,%zmm5,%zmm5{%k2} 768*4757b351SPierre Pronchery vpxord %zmm5,%zmm7,%zmm10 769*4757b351SPierre Pronchery vmovdqu8 0(%rdi),%zmm1 770*4757b351SPierre Pronchery vmovdqu8 64(%rdi),%ymm2 771*4757b351SPierre Pronchery addq $96,%rdi 772*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 773*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm9,%zmm1 774*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm10,%zmm2 775*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 776*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 777*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 778*4757b351SPierre Pronchery 779*4757b351SPierre Pronchery 780*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 781*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 782*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 783*4757b351SPierre Pronchery 784*4757b351SPierre Pronchery 785*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 786*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 787*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 788*4757b351SPierre Pronchery 789*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 790*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 791*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 792*4757b351SPierre Pronchery 793*4757b351SPierre Pronchery 794*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 795*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 796*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 797*4757b351SPierre Pronchery 798*4757b351SPierre Pronchery 799*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 800*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 801*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 802*4757b351SPierre Pronchery 803*4757b351SPierre Pronchery 804*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 805*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 806*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 807*4757b351SPierre Pronchery 808*4757b351SPierre Pronchery 809*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 810*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 811*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 812*4757b351SPierre Pronchery 813*4757b351SPierre Pronchery 814*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 815*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 816*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 817*4757b351SPierre Pronchery 818*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 819*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm1,%zmm1 820*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm2,%zmm2 821*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 822*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 823*4757b351SPierre Pronchery vmovdqu8 %zmm1,0(%rsi) 824*4757b351SPierre Pronchery vmovdqu8 %ymm2,64(%rsi) 825*4757b351SPierre Pronchery addq $96,%rsi 826*4757b351SPierre Pronchery 827*4757b351SPierre Pronchery vextracti32x4 $0x1,%ymm2,%xmm8 828*4757b351SPierre Pronchery vextracti32x4 $0x2,%zmm10,%xmm0 829*4757b351SPierre Pronchery andq $0xf,%rdx 830*4757b351SPierre Pronchery je .L_ret_hEgxyDlCngwrfFe 831*4757b351SPierre Pronchery jmp .L_steal_cipher_hEgxyDlCngwrfFe 832*4757b351SPierre Pronchery.L_num_blocks_is_5_hEgxyDlCngwrfFe: 833*4757b351SPierre Pronchery vpshufb %zmm8,%zmm0,%zmm1 834*4757b351SPierre Pronchery vpsllvq const_dq3210(%rip),%zmm0,%zmm4 835*4757b351SPierre Pronchery vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 836*4757b351SPierre Pronchery vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 837*4757b351SPierre Pronchery vpxorq %zmm2,%zmm4,%zmm4{%k2} 838*4757b351SPierre Pronchery vpxord %zmm4,%zmm3,%zmm9 839*4757b351SPierre Pronchery vpsllvq const_dq7654(%rip),%zmm0,%zmm5 840*4757b351SPierre Pronchery vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 841*4757b351SPierre Pronchery vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7 842*4757b351SPierre Pronchery vpxorq %zmm6,%zmm5,%zmm5{%k2} 843*4757b351SPierre Pronchery vpxord %zmm5,%zmm7,%zmm10 844*4757b351SPierre Pronchery vmovdqu8 0(%rdi),%zmm1 845*4757b351SPierre Pronchery vmovdqu8 64(%rdi),%xmm2 846*4757b351SPierre Pronchery addq $80,%rdi 847*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 848*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm9,%zmm1 849*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm10,%zmm2 850*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 851*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 852*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 853*4757b351SPierre Pronchery 854*4757b351SPierre Pronchery 855*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 856*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 857*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 858*4757b351SPierre Pronchery 859*4757b351SPierre Pronchery 860*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 861*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 862*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 863*4757b351SPierre Pronchery 864*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 865*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 866*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 867*4757b351SPierre Pronchery 868*4757b351SPierre Pronchery 869*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 870*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 871*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 872*4757b351SPierre Pronchery 873*4757b351SPierre Pronchery 874*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 875*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 876*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 877*4757b351SPierre Pronchery 878*4757b351SPierre Pronchery 879*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 880*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 881*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 882*4757b351SPierre Pronchery 883*4757b351SPierre Pronchery 884*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 885*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 886*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 887*4757b351SPierre Pronchery 888*4757b351SPierre Pronchery 889*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 890*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 891*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 892*4757b351SPierre Pronchery 893*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 894*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm1,%zmm1 895*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm2,%zmm2 896*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 897*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 898*4757b351SPierre Pronchery vmovdqu8 %zmm1,0(%rsi) 899*4757b351SPierre Pronchery vmovdqu8 %xmm2,64(%rsi) 900*4757b351SPierre Pronchery addq $80,%rsi 901*4757b351SPierre Pronchery 902*4757b351SPierre Pronchery vmovdqa %xmm2,%xmm8 903*4757b351SPierre Pronchery vextracti32x4 $0x1,%zmm10,%xmm0 904*4757b351SPierre Pronchery andq $0xf,%rdx 905*4757b351SPierre Pronchery je .L_ret_hEgxyDlCngwrfFe 906*4757b351SPierre Pronchery jmp .L_steal_cipher_hEgxyDlCngwrfFe 907*4757b351SPierre Pronchery.L_num_blocks_is_4_hEgxyDlCngwrfFe: 908*4757b351SPierre Pronchery vpshufb %zmm8,%zmm0,%zmm1 909*4757b351SPierre Pronchery vpsllvq const_dq3210(%rip),%zmm0,%zmm4 910*4757b351SPierre Pronchery vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 911*4757b351SPierre Pronchery vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 912*4757b351SPierre Pronchery vpxorq %zmm2,%zmm4,%zmm4{%k2} 913*4757b351SPierre Pronchery vpxord %zmm4,%zmm3,%zmm9 914*4757b351SPierre Pronchery vpsllvq const_dq7654(%rip),%zmm0,%zmm5 915*4757b351SPierre Pronchery vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 916*4757b351SPierre Pronchery vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7 917*4757b351SPierre Pronchery vpxorq %zmm6,%zmm5,%zmm5{%k2} 918*4757b351SPierre Pronchery vpxord %zmm5,%zmm7,%zmm10 919*4757b351SPierre Pronchery vmovdqu8 0(%rdi),%zmm1 920*4757b351SPierre Pronchery addq $64,%rdi 921*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 922*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm9,%zmm1 923*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 924*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 925*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 926*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 927*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 928*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 929*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 930*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 931*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 932*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 933*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 934*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 935*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 936*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 937*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 938*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 939*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 940*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 941*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 942*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm1,%zmm1 943*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 944*4757b351SPierre Pronchery vmovdqu8 %zmm1,0(%rsi) 945*4757b351SPierre Pronchery addq $64,%rsi 946*4757b351SPierre Pronchery vextracti32x4 $0x3,%zmm1,%xmm8 947*4757b351SPierre Pronchery vmovdqa %xmm10,%xmm0 948*4757b351SPierre Pronchery andq $0xf,%rdx 949*4757b351SPierre Pronchery je .L_ret_hEgxyDlCngwrfFe 950*4757b351SPierre Pronchery jmp .L_steal_cipher_hEgxyDlCngwrfFe 951*4757b351SPierre Pronchery.L_num_blocks_is_3_hEgxyDlCngwrfFe: 952*4757b351SPierre Pronchery vpshufb %zmm8,%zmm0,%zmm1 953*4757b351SPierre Pronchery vpsllvq const_dq3210(%rip),%zmm0,%zmm4 954*4757b351SPierre Pronchery vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 955*4757b351SPierre Pronchery vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 956*4757b351SPierre Pronchery vpxorq %zmm2,%zmm4,%zmm4{%k2} 957*4757b351SPierre Pronchery vpxord %zmm4,%zmm3,%zmm9 958*4757b351SPierre Pronchery movq $0x0000ffffffffffff,%r8 959*4757b351SPierre Pronchery kmovq %r8,%k1 960*4757b351SPierre Pronchery vmovdqu8 0(%rdi),%zmm1{%k1} 961*4757b351SPierre Pronchery addq $48,%rdi 962*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 963*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm9,%zmm1 964*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 965*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 966*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 967*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 968*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 969*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 970*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 971*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 972*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 973*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 974*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 975*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 976*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 977*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 978*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 979*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 980*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 981*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 982*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 983*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm1,%zmm1 984*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 985*4757b351SPierre Pronchery vmovdqu8 %zmm1,0(%rsi){%k1} 986*4757b351SPierre Pronchery addq $48,%rsi 987*4757b351SPierre Pronchery vextracti32x4 $2,%zmm1,%xmm8 988*4757b351SPierre Pronchery vextracti32x4 $3,%zmm9,%xmm0 989*4757b351SPierre Pronchery andq $0xf,%rdx 990*4757b351SPierre Pronchery je .L_ret_hEgxyDlCngwrfFe 991*4757b351SPierre Pronchery jmp .L_steal_cipher_hEgxyDlCngwrfFe 992*4757b351SPierre Pronchery.L_num_blocks_is_2_hEgxyDlCngwrfFe: 993*4757b351SPierre Pronchery vpshufb %zmm8,%zmm0,%zmm1 994*4757b351SPierre Pronchery vpsllvq const_dq3210(%rip),%zmm0,%zmm4 995*4757b351SPierre Pronchery vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 996*4757b351SPierre Pronchery vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 997*4757b351SPierre Pronchery vpxorq %zmm2,%zmm4,%zmm4{%k2} 998*4757b351SPierre Pronchery vpxord %zmm4,%zmm3,%zmm9 999*4757b351SPierre Pronchery 1000*4757b351SPierre Pronchery vmovdqu8 0(%rdi),%ymm1 1001*4757b351SPierre Pronchery addq $32,%rdi 1002*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%ymm0 1003*4757b351SPierre Pronchery vpternlogq $0x96,%ymm0,%ymm9,%ymm1 1004*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%ymm0 1005*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 1006*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%ymm0 1007*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 1008*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%ymm0 1009*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 1010*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%ymm0 1011*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 1012*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%ymm0 1013*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 1014*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%ymm0 1015*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 1016*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%ymm0 1017*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 1018*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%ymm0 1019*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 1020*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%ymm0 1021*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 1022*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%ymm0 1023*4757b351SPierre Pronchery vaesenclast %ymm0,%ymm1,%ymm1 1024*4757b351SPierre Pronchery vpxorq %ymm9,%ymm1,%ymm1 1025*4757b351SPierre Pronchery vmovdqu8 %ymm1,0(%rsi) 1026*4757b351SPierre Pronchery addq $32,%rsi 1027*4757b351SPierre Pronchery 1028*4757b351SPierre Pronchery vextracti32x4 $1,%ymm1,%xmm8 1029*4757b351SPierre Pronchery vextracti32x4 $2,%zmm9,%xmm0 1030*4757b351SPierre Pronchery andq $0xf,%rdx 1031*4757b351SPierre Pronchery je .L_ret_hEgxyDlCngwrfFe 1032*4757b351SPierre Pronchery jmp .L_steal_cipher_hEgxyDlCngwrfFe 1033*4757b351SPierre Pronchery.L_num_blocks_is_1_hEgxyDlCngwrfFe: 1034*4757b351SPierre Pronchery vpshufb %zmm8,%zmm0,%zmm1 1035*4757b351SPierre Pronchery vpsllvq const_dq3210(%rip),%zmm0,%zmm4 1036*4757b351SPierre Pronchery vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 1037*4757b351SPierre Pronchery vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 1038*4757b351SPierre Pronchery vpxorq %zmm2,%zmm4,%zmm4{%k2} 1039*4757b351SPierre Pronchery vpxord %zmm4,%zmm3,%zmm9 1040*4757b351SPierre Pronchery 1041*4757b351SPierre Pronchery vmovdqu8 0(%rdi),%xmm1 1042*4757b351SPierre Pronchery addq $16,%rdi 1043*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%ymm0 1044*4757b351SPierre Pronchery vpternlogq $0x96,%ymm0,%ymm9,%ymm1 1045*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%ymm0 1046*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 1047*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%ymm0 1048*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 1049*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%ymm0 1050*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 1051*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%ymm0 1052*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 1053*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%ymm0 1054*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 1055*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%ymm0 1056*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 1057*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%ymm0 1058*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 1059*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%ymm0 1060*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 1061*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%ymm0 1062*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 1063*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%ymm0 1064*4757b351SPierre Pronchery vaesenclast %ymm0,%ymm1,%ymm1 1065*4757b351SPierre Pronchery vpxorq %ymm9,%ymm1,%ymm1 1066*4757b351SPierre Pronchery vmovdqu8 %xmm1,0(%rsi) 1067*4757b351SPierre Pronchery addq $16,%rsi 1068*4757b351SPierre Pronchery 1069*4757b351SPierre Pronchery vmovdqa %xmm1,%xmm8 1070*4757b351SPierre Pronchery vextracti32x4 $1,%zmm9,%xmm0 1071*4757b351SPierre Pronchery andq $0xf,%rdx 1072*4757b351SPierre Pronchery je .L_ret_hEgxyDlCngwrfFe 1073*4757b351SPierre Pronchery jmp .L_steal_cipher_hEgxyDlCngwrfFe 1074*4757b351SPierre Pronchery.cfi_endproc 1075*4757b351SPierre Pronchery.globl aesni_xts_128_decrypt_avx512 1076*4757b351SPierre Pronchery.hidden aesni_xts_128_decrypt_avx512 1077*4757b351SPierre Pronchery.type aesni_xts_128_decrypt_avx512,@function 1078*4757b351SPierre Pronchery.align 32 1079*4757b351SPierre Proncheryaesni_xts_128_decrypt_avx512: 1080*4757b351SPierre Pronchery.cfi_startproc 1081*4757b351SPierre Pronchery.byte 243,15,30,250 1082*4757b351SPierre Pronchery pushq %rbp 1083*4757b351SPierre Pronchery movq %rsp,%rbp 1084*4757b351SPierre Pronchery subq $136,%rsp 1085*4757b351SPierre Pronchery andq $0xffffffffffffffc0,%rsp 1086*4757b351SPierre Pronchery movq %rbx,128(%rsp) 1087*4757b351SPierre Pronchery movq $0x87,%r10 1088*4757b351SPierre Pronchery vmovdqu (%r9),%xmm1 1089*4757b351SPierre Pronchery vpxor (%r8),%xmm1,%xmm1 1090*4757b351SPierre Pronchery vaesenc 16(%r8),%xmm1,%xmm1 1091*4757b351SPierre Pronchery vaesenc 32(%r8),%xmm1,%xmm1 1092*4757b351SPierre Pronchery vaesenc 48(%r8),%xmm1,%xmm1 1093*4757b351SPierre Pronchery vaesenc 64(%r8),%xmm1,%xmm1 1094*4757b351SPierre Pronchery vaesenc 80(%r8),%xmm1,%xmm1 1095*4757b351SPierre Pronchery vaesenc 96(%r8),%xmm1,%xmm1 1096*4757b351SPierre Pronchery vaesenc 112(%r8),%xmm1,%xmm1 1097*4757b351SPierre Pronchery vaesenc 128(%r8),%xmm1,%xmm1 1098*4757b351SPierre Pronchery vaesenc 144(%r8),%xmm1,%xmm1 1099*4757b351SPierre Pronchery vaesenclast 160(%r8),%xmm1,%xmm1 1100*4757b351SPierre Pronchery vmovdqa %xmm1,(%rsp) 1101*4757b351SPierre Pronchery 1102*4757b351SPierre Pronchery cmpq $0x80,%rdx 1103*4757b351SPierre Pronchery jb .L_less_than_128_bytes_amivrujEyduiFoi 1104*4757b351SPierre Pronchery vpbroadcastq %r10,%zmm25 1105*4757b351SPierre Pronchery cmpq $0x100,%rdx 1106*4757b351SPierre Pronchery jge .L_start_by16_amivrujEyduiFoi 1107*4757b351SPierre Pronchery jmp .L_start_by8_amivrujEyduiFoi 1108*4757b351SPierre Pronchery 1109*4757b351SPierre Pronchery.L_do_n_blocks_amivrujEyduiFoi: 1110*4757b351SPierre Pronchery cmpq $0x0,%rdx 1111*4757b351SPierre Pronchery je .L_ret_amivrujEyduiFoi 1112*4757b351SPierre Pronchery cmpq $0x70,%rdx 1113*4757b351SPierre Pronchery jge .L_remaining_num_blocks_is_7_amivrujEyduiFoi 1114*4757b351SPierre Pronchery cmpq $0x60,%rdx 1115*4757b351SPierre Pronchery jge .L_remaining_num_blocks_is_6_amivrujEyduiFoi 1116*4757b351SPierre Pronchery cmpq $0x50,%rdx 1117*4757b351SPierre Pronchery jge .L_remaining_num_blocks_is_5_amivrujEyduiFoi 1118*4757b351SPierre Pronchery cmpq $0x40,%rdx 1119*4757b351SPierre Pronchery jge .L_remaining_num_blocks_is_4_amivrujEyduiFoi 1120*4757b351SPierre Pronchery cmpq $0x30,%rdx 1121*4757b351SPierre Pronchery jge .L_remaining_num_blocks_is_3_amivrujEyduiFoi 1122*4757b351SPierre Pronchery cmpq $0x20,%rdx 1123*4757b351SPierre Pronchery jge .L_remaining_num_blocks_is_2_amivrujEyduiFoi 1124*4757b351SPierre Pronchery cmpq $0x10,%rdx 1125*4757b351SPierre Pronchery jge .L_remaining_num_blocks_is_1_amivrujEyduiFoi 1126*4757b351SPierre Pronchery 1127*4757b351SPierre Pronchery 1128*4757b351SPierre Pronchery vmovdqu %xmm5,%xmm1 1129*4757b351SPierre Pronchery 1130*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 1131*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 1132*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 1133*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 1134*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1135*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 1136*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1137*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 1138*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1139*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 1140*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1141*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 1142*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1143*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 1144*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1145*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 1146*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1147*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 1148*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1149*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 1150*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1151*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 1152*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 1153*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 1154*4757b351SPierre Pronchery vmovdqu %xmm1,-16(%rsi) 1155*4757b351SPierre Pronchery vmovdqa %xmm1,%xmm8 1156*4757b351SPierre Pronchery 1157*4757b351SPierre Pronchery 1158*4757b351SPierre Pronchery movq $0x1,%r8 1159*4757b351SPierre Pronchery kmovq %r8,%k1 1160*4757b351SPierre Pronchery vpsllq $0x3f,%xmm9,%xmm13 1161*4757b351SPierre Pronchery vpsraq $0x3f,%xmm13,%xmm14 1162*4757b351SPierre Pronchery vpandq %xmm25,%xmm14,%xmm5 1163*4757b351SPierre Pronchery vpxorq %xmm5,%xmm9,%xmm9{%k1} 1164*4757b351SPierre Pronchery vpsrldq $0x8,%xmm9,%xmm10 1165*4757b351SPierre Pronchery.byte 98, 211, 181, 8, 115, 194, 1 1166*4757b351SPierre Pronchery vpslldq $0x8,%xmm13,%xmm13 1167*4757b351SPierre Pronchery vpxorq %xmm13,%xmm0,%xmm0 1168*4757b351SPierre Pronchery jmp .L_steal_cipher_amivrujEyduiFoi 1169*4757b351SPierre Pronchery 1170*4757b351SPierre Pronchery.L_remaining_num_blocks_is_7_amivrujEyduiFoi: 1171*4757b351SPierre Pronchery movq $0xffffffffffffffff,%r8 1172*4757b351SPierre Pronchery shrq $0x10,%r8 1173*4757b351SPierre Pronchery kmovq %r8,%k1 1174*4757b351SPierre Pronchery vmovdqu8 (%rdi),%zmm1 1175*4757b351SPierre Pronchery vmovdqu8 64(%rdi),%zmm2{%k1} 1176*4757b351SPierre Pronchery addq $0x70,%rdi 1177*4757b351SPierre Pronchery andq $0xf,%rdx 1178*4757b351SPierre Pronchery je .L_done_7_remain_amivrujEyduiFoi 1179*4757b351SPierre Pronchery vextracti32x4 $0x2,%zmm10,%xmm12 1180*4757b351SPierre Pronchery vextracti32x4 $0x3,%zmm10,%xmm13 1181*4757b351SPierre Pronchery vinserti32x4 $0x2,%xmm13,%zmm10,%zmm10 1182*4757b351SPierre Pronchery 1183*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 1184*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 1185*4757b351SPierre Pronchery 1186*4757b351SPierre Pronchery 1187*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 1188*4757b351SPierre Pronchery vpxorq %zmm0,%zmm1,%zmm1 1189*4757b351SPierre Pronchery vpxorq %zmm0,%zmm2,%zmm2 1190*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 1191*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1192*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1193*4757b351SPierre Pronchery 1194*4757b351SPierre Pronchery 1195*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 1196*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1197*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1198*4757b351SPierre Pronchery 1199*4757b351SPierre Pronchery 1200*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 1201*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1202*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1203*4757b351SPierre Pronchery 1204*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 1205*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1206*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1207*4757b351SPierre Pronchery 1208*4757b351SPierre Pronchery 1209*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 1210*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1211*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1212*4757b351SPierre Pronchery 1213*4757b351SPierre Pronchery 1214*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 1215*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1216*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1217*4757b351SPierre Pronchery 1218*4757b351SPierre Pronchery 1219*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 1220*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1221*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1222*4757b351SPierre Pronchery 1223*4757b351SPierre Pronchery 1224*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 1225*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1226*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1227*4757b351SPierre Pronchery 1228*4757b351SPierre Pronchery 1229*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 1230*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1231*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1232*4757b351SPierre Pronchery 1233*4757b351SPierre Pronchery 1234*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 1235*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm1,%zmm1 1236*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm2,%zmm2 1237*4757b351SPierre Pronchery 1238*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 1239*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 1240*4757b351SPierre Pronchery 1241*4757b351SPierre Pronchery 1242*4757b351SPierre Pronchery vmovdqa32 %zmm15,%zmm9 1243*4757b351SPierre Pronchery vmovdqa32 %zmm16,%zmm10 1244*4757b351SPierre Pronchery vmovdqu8 %zmm1,(%rsi) 1245*4757b351SPierre Pronchery vmovdqu8 %zmm2,64(%rsi){%k1} 1246*4757b351SPierre Pronchery addq $0x70,%rsi 1247*4757b351SPierre Pronchery vextracti32x4 $0x2,%zmm2,%xmm8 1248*4757b351SPierre Pronchery vmovdqa %xmm12,%xmm0 1249*4757b351SPierre Pronchery jmp .L_steal_cipher_amivrujEyduiFoi 1250*4757b351SPierre Pronchery 1251*4757b351SPierre Pronchery.L_done_7_remain_amivrujEyduiFoi: 1252*4757b351SPierre Pronchery 1253*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 1254*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 1255*4757b351SPierre Pronchery 1256*4757b351SPierre Pronchery 1257*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 1258*4757b351SPierre Pronchery vpxorq %zmm0,%zmm1,%zmm1 1259*4757b351SPierre Pronchery vpxorq %zmm0,%zmm2,%zmm2 1260*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 1261*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1262*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1263*4757b351SPierre Pronchery 1264*4757b351SPierre Pronchery 1265*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 1266*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1267*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1268*4757b351SPierre Pronchery 1269*4757b351SPierre Pronchery 1270*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 1271*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1272*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1273*4757b351SPierre Pronchery 1274*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 1275*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1276*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1277*4757b351SPierre Pronchery 1278*4757b351SPierre Pronchery 1279*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 1280*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1281*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1282*4757b351SPierre Pronchery 1283*4757b351SPierre Pronchery 1284*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 1285*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1286*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1287*4757b351SPierre Pronchery 1288*4757b351SPierre Pronchery 1289*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 1290*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1291*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1292*4757b351SPierre Pronchery 1293*4757b351SPierre Pronchery 1294*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 1295*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1296*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1297*4757b351SPierre Pronchery 1298*4757b351SPierre Pronchery 1299*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 1300*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1301*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1302*4757b351SPierre Pronchery 1303*4757b351SPierre Pronchery 1304*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 1305*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm1,%zmm1 1306*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm2,%zmm2 1307*4757b351SPierre Pronchery 1308*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 1309*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 1310*4757b351SPierre Pronchery 1311*4757b351SPierre Pronchery 1312*4757b351SPierre Pronchery vmovdqa32 %zmm15,%zmm9 1313*4757b351SPierre Pronchery vmovdqa32 %zmm16,%zmm10 1314*4757b351SPierre Pronchery vmovdqu8 %zmm1,(%rsi) 1315*4757b351SPierre Pronchery vmovdqu8 %zmm2,64(%rsi){%k1} 1316*4757b351SPierre Pronchery jmp .L_ret_amivrujEyduiFoi 1317*4757b351SPierre Pronchery 1318*4757b351SPierre Pronchery.L_remaining_num_blocks_is_6_amivrujEyduiFoi: 1319*4757b351SPierre Pronchery vmovdqu8 (%rdi),%zmm1 1320*4757b351SPierre Pronchery vmovdqu8 64(%rdi),%ymm2 1321*4757b351SPierre Pronchery addq $0x60,%rdi 1322*4757b351SPierre Pronchery andq $0xf,%rdx 1323*4757b351SPierre Pronchery je .L_done_6_remain_amivrujEyduiFoi 1324*4757b351SPierre Pronchery vextracti32x4 $0x1,%zmm10,%xmm12 1325*4757b351SPierre Pronchery vextracti32x4 $0x2,%zmm10,%xmm13 1326*4757b351SPierre Pronchery vinserti32x4 $0x1,%xmm13,%zmm10,%zmm10 1327*4757b351SPierre Pronchery 1328*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 1329*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 1330*4757b351SPierre Pronchery 1331*4757b351SPierre Pronchery 1332*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 1333*4757b351SPierre Pronchery vpxorq %zmm0,%zmm1,%zmm1 1334*4757b351SPierre Pronchery vpxorq %zmm0,%zmm2,%zmm2 1335*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 1336*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1337*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1338*4757b351SPierre Pronchery 1339*4757b351SPierre Pronchery 1340*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 1341*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1342*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1343*4757b351SPierre Pronchery 1344*4757b351SPierre Pronchery 1345*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 1346*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1347*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1348*4757b351SPierre Pronchery 1349*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 1350*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1351*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1352*4757b351SPierre Pronchery 1353*4757b351SPierre Pronchery 1354*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 1355*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1356*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1357*4757b351SPierre Pronchery 1358*4757b351SPierre Pronchery 1359*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 1360*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1361*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1362*4757b351SPierre Pronchery 1363*4757b351SPierre Pronchery 1364*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 1365*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1366*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1367*4757b351SPierre Pronchery 1368*4757b351SPierre Pronchery 1369*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 1370*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1371*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1372*4757b351SPierre Pronchery 1373*4757b351SPierre Pronchery 1374*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 1375*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1376*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1377*4757b351SPierre Pronchery 1378*4757b351SPierre Pronchery 1379*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 1380*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm1,%zmm1 1381*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm2,%zmm2 1382*4757b351SPierre Pronchery 1383*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 1384*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 1385*4757b351SPierre Pronchery 1386*4757b351SPierre Pronchery 1387*4757b351SPierre Pronchery vmovdqa32 %zmm15,%zmm9 1388*4757b351SPierre Pronchery vmovdqa32 %zmm16,%zmm10 1389*4757b351SPierre Pronchery vmovdqu8 %zmm1,(%rsi) 1390*4757b351SPierre Pronchery vmovdqu8 %ymm2,64(%rsi) 1391*4757b351SPierre Pronchery addq $0x60,%rsi 1392*4757b351SPierre Pronchery vextracti32x4 $0x1,%zmm2,%xmm8 1393*4757b351SPierre Pronchery vmovdqa %xmm12,%xmm0 1394*4757b351SPierre Pronchery jmp .L_steal_cipher_amivrujEyduiFoi 1395*4757b351SPierre Pronchery 1396*4757b351SPierre Pronchery.L_done_6_remain_amivrujEyduiFoi: 1397*4757b351SPierre Pronchery 1398*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 1399*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 1400*4757b351SPierre Pronchery 1401*4757b351SPierre Pronchery 1402*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 1403*4757b351SPierre Pronchery vpxorq %zmm0,%zmm1,%zmm1 1404*4757b351SPierre Pronchery vpxorq %zmm0,%zmm2,%zmm2 1405*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 1406*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1407*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1408*4757b351SPierre Pronchery 1409*4757b351SPierre Pronchery 1410*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 1411*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1412*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1413*4757b351SPierre Pronchery 1414*4757b351SPierre Pronchery 1415*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 1416*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1417*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1418*4757b351SPierre Pronchery 1419*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 1420*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1421*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1422*4757b351SPierre Pronchery 1423*4757b351SPierre Pronchery 1424*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 1425*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1426*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1427*4757b351SPierre Pronchery 1428*4757b351SPierre Pronchery 1429*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 1430*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1431*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1432*4757b351SPierre Pronchery 1433*4757b351SPierre Pronchery 1434*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 1435*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1436*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1437*4757b351SPierre Pronchery 1438*4757b351SPierre Pronchery 1439*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 1440*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1441*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1442*4757b351SPierre Pronchery 1443*4757b351SPierre Pronchery 1444*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 1445*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1446*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1447*4757b351SPierre Pronchery 1448*4757b351SPierre Pronchery 1449*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 1450*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm1,%zmm1 1451*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm2,%zmm2 1452*4757b351SPierre Pronchery 1453*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 1454*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 1455*4757b351SPierre Pronchery 1456*4757b351SPierre Pronchery 1457*4757b351SPierre Pronchery vmovdqa32 %zmm15,%zmm9 1458*4757b351SPierre Pronchery vmovdqa32 %zmm16,%zmm10 1459*4757b351SPierre Pronchery vmovdqu8 %zmm1,(%rsi) 1460*4757b351SPierre Pronchery vmovdqu8 %ymm2,64(%rsi) 1461*4757b351SPierre Pronchery jmp .L_ret_amivrujEyduiFoi 1462*4757b351SPierre Pronchery 1463*4757b351SPierre Pronchery.L_remaining_num_blocks_is_5_amivrujEyduiFoi: 1464*4757b351SPierre Pronchery vmovdqu8 (%rdi),%zmm1 1465*4757b351SPierre Pronchery vmovdqu 64(%rdi),%xmm2 1466*4757b351SPierre Pronchery addq $0x50,%rdi 1467*4757b351SPierre Pronchery andq $0xf,%rdx 1468*4757b351SPierre Pronchery je .L_done_5_remain_amivrujEyduiFoi 1469*4757b351SPierre Pronchery vmovdqa %xmm10,%xmm12 1470*4757b351SPierre Pronchery vextracti32x4 $0x1,%zmm10,%xmm10 1471*4757b351SPierre Pronchery 1472*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 1473*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 1474*4757b351SPierre Pronchery 1475*4757b351SPierre Pronchery 1476*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 1477*4757b351SPierre Pronchery vpxorq %zmm0,%zmm1,%zmm1 1478*4757b351SPierre Pronchery vpxorq %zmm0,%zmm2,%zmm2 1479*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 1480*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1481*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1482*4757b351SPierre Pronchery 1483*4757b351SPierre Pronchery 1484*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 1485*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1486*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1487*4757b351SPierre Pronchery 1488*4757b351SPierre Pronchery 1489*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 1490*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1491*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1492*4757b351SPierre Pronchery 1493*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 1494*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1495*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1496*4757b351SPierre Pronchery 1497*4757b351SPierre Pronchery 1498*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 1499*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1500*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1501*4757b351SPierre Pronchery 1502*4757b351SPierre Pronchery 1503*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 1504*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1505*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1506*4757b351SPierre Pronchery 1507*4757b351SPierre Pronchery 1508*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 1509*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1510*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1511*4757b351SPierre Pronchery 1512*4757b351SPierre Pronchery 1513*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 1514*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1515*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1516*4757b351SPierre Pronchery 1517*4757b351SPierre Pronchery 1518*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 1519*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1520*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1521*4757b351SPierre Pronchery 1522*4757b351SPierre Pronchery 1523*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 1524*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm1,%zmm1 1525*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm2,%zmm2 1526*4757b351SPierre Pronchery 1527*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 1528*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 1529*4757b351SPierre Pronchery 1530*4757b351SPierre Pronchery 1531*4757b351SPierre Pronchery vmovdqa32 %zmm15,%zmm9 1532*4757b351SPierre Pronchery vmovdqa32 %zmm16,%zmm10 1533*4757b351SPierre Pronchery vmovdqu8 %zmm1,(%rsi) 1534*4757b351SPierre Pronchery vmovdqu %xmm2,64(%rsi) 1535*4757b351SPierre Pronchery addq $0x50,%rsi 1536*4757b351SPierre Pronchery vmovdqa %xmm2,%xmm8 1537*4757b351SPierre Pronchery vmovdqa %xmm12,%xmm0 1538*4757b351SPierre Pronchery jmp .L_steal_cipher_amivrujEyduiFoi 1539*4757b351SPierre Pronchery 1540*4757b351SPierre Pronchery.L_done_5_remain_amivrujEyduiFoi: 1541*4757b351SPierre Pronchery 1542*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 1543*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 1544*4757b351SPierre Pronchery 1545*4757b351SPierre Pronchery 1546*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 1547*4757b351SPierre Pronchery vpxorq %zmm0,%zmm1,%zmm1 1548*4757b351SPierre Pronchery vpxorq %zmm0,%zmm2,%zmm2 1549*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 1550*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1551*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1552*4757b351SPierre Pronchery 1553*4757b351SPierre Pronchery 1554*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 1555*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1556*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1557*4757b351SPierre Pronchery 1558*4757b351SPierre Pronchery 1559*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 1560*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1561*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1562*4757b351SPierre Pronchery 1563*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 1564*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1565*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1566*4757b351SPierre Pronchery 1567*4757b351SPierre Pronchery 1568*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 1569*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1570*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1571*4757b351SPierre Pronchery 1572*4757b351SPierre Pronchery 1573*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 1574*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1575*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1576*4757b351SPierre Pronchery 1577*4757b351SPierre Pronchery 1578*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 1579*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1580*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1581*4757b351SPierre Pronchery 1582*4757b351SPierre Pronchery 1583*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 1584*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1585*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1586*4757b351SPierre Pronchery 1587*4757b351SPierre Pronchery 1588*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 1589*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1590*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1591*4757b351SPierre Pronchery 1592*4757b351SPierre Pronchery 1593*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 1594*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm1,%zmm1 1595*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm2,%zmm2 1596*4757b351SPierre Pronchery 1597*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 1598*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 1599*4757b351SPierre Pronchery 1600*4757b351SPierre Pronchery 1601*4757b351SPierre Pronchery vmovdqa32 %zmm15,%zmm9 1602*4757b351SPierre Pronchery vmovdqa32 %zmm16,%zmm10 1603*4757b351SPierre Pronchery vmovdqu8 %zmm1,(%rsi) 1604*4757b351SPierre Pronchery vmovdqu8 %xmm2,64(%rsi) 1605*4757b351SPierre Pronchery jmp .L_ret_amivrujEyduiFoi 1606*4757b351SPierre Pronchery 1607*4757b351SPierre Pronchery.L_remaining_num_blocks_is_4_amivrujEyduiFoi: 1608*4757b351SPierre Pronchery vmovdqu8 (%rdi),%zmm1 1609*4757b351SPierre Pronchery addq $0x40,%rdi 1610*4757b351SPierre Pronchery andq $0xf,%rdx 1611*4757b351SPierre Pronchery je .L_done_4_remain_amivrujEyduiFoi 1612*4757b351SPierre Pronchery vextracti32x4 $0x3,%zmm9,%xmm12 1613*4757b351SPierre Pronchery vinserti32x4 $0x3,%xmm10,%zmm9,%zmm9 1614*4757b351SPierre Pronchery 1615*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 1616*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 1617*4757b351SPierre Pronchery 1618*4757b351SPierre Pronchery 1619*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 1620*4757b351SPierre Pronchery vpxorq %zmm0,%zmm1,%zmm1 1621*4757b351SPierre Pronchery vpxorq %zmm0,%zmm2,%zmm2 1622*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 1623*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1624*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1625*4757b351SPierre Pronchery 1626*4757b351SPierre Pronchery 1627*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 1628*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1629*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1630*4757b351SPierre Pronchery 1631*4757b351SPierre Pronchery 1632*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 1633*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1634*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1635*4757b351SPierre Pronchery 1636*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 1637*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1638*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1639*4757b351SPierre Pronchery 1640*4757b351SPierre Pronchery 1641*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 1642*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1643*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1644*4757b351SPierre Pronchery 1645*4757b351SPierre Pronchery 1646*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 1647*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1648*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1649*4757b351SPierre Pronchery 1650*4757b351SPierre Pronchery 1651*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 1652*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1653*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1654*4757b351SPierre Pronchery 1655*4757b351SPierre Pronchery 1656*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 1657*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1658*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1659*4757b351SPierre Pronchery 1660*4757b351SPierre Pronchery 1661*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 1662*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1663*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1664*4757b351SPierre Pronchery 1665*4757b351SPierre Pronchery 1666*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 1667*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm1,%zmm1 1668*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm2,%zmm2 1669*4757b351SPierre Pronchery 1670*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 1671*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 1672*4757b351SPierre Pronchery 1673*4757b351SPierre Pronchery 1674*4757b351SPierre Pronchery vmovdqa32 %zmm15,%zmm9 1675*4757b351SPierre Pronchery vmovdqa32 %zmm16,%zmm10 1676*4757b351SPierre Pronchery vmovdqu8 %zmm1,(%rsi) 1677*4757b351SPierre Pronchery addq $0x40,%rsi 1678*4757b351SPierre Pronchery vextracti32x4 $0x3,%zmm1,%xmm8 1679*4757b351SPierre Pronchery vmovdqa %xmm12,%xmm0 1680*4757b351SPierre Pronchery jmp .L_steal_cipher_amivrujEyduiFoi 1681*4757b351SPierre Pronchery 1682*4757b351SPierre Pronchery.L_done_4_remain_amivrujEyduiFoi: 1683*4757b351SPierre Pronchery 1684*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 1685*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 1686*4757b351SPierre Pronchery 1687*4757b351SPierre Pronchery 1688*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 1689*4757b351SPierre Pronchery vpxorq %zmm0,%zmm1,%zmm1 1690*4757b351SPierre Pronchery vpxorq %zmm0,%zmm2,%zmm2 1691*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 1692*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1693*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1694*4757b351SPierre Pronchery 1695*4757b351SPierre Pronchery 1696*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 1697*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1698*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1699*4757b351SPierre Pronchery 1700*4757b351SPierre Pronchery 1701*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 1702*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1703*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1704*4757b351SPierre Pronchery 1705*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 1706*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1707*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1708*4757b351SPierre Pronchery 1709*4757b351SPierre Pronchery 1710*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 1711*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1712*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1713*4757b351SPierre Pronchery 1714*4757b351SPierre Pronchery 1715*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 1716*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1717*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1718*4757b351SPierre Pronchery 1719*4757b351SPierre Pronchery 1720*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 1721*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1722*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1723*4757b351SPierre Pronchery 1724*4757b351SPierre Pronchery 1725*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 1726*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1727*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1728*4757b351SPierre Pronchery 1729*4757b351SPierre Pronchery 1730*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 1731*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 1732*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 1733*4757b351SPierre Pronchery 1734*4757b351SPierre Pronchery 1735*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 1736*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm1,%zmm1 1737*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm2,%zmm2 1738*4757b351SPierre Pronchery 1739*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 1740*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 1741*4757b351SPierre Pronchery 1742*4757b351SPierre Pronchery 1743*4757b351SPierre Pronchery vmovdqa32 %zmm15,%zmm9 1744*4757b351SPierre Pronchery vmovdqa32 %zmm16,%zmm10 1745*4757b351SPierre Pronchery vmovdqu8 %zmm1,(%rsi) 1746*4757b351SPierre Pronchery jmp .L_ret_amivrujEyduiFoi 1747*4757b351SPierre Pronchery 1748*4757b351SPierre Pronchery.L_remaining_num_blocks_is_3_amivrujEyduiFoi: 1749*4757b351SPierre Pronchery vmovdqu (%rdi),%xmm1 1750*4757b351SPierre Pronchery vmovdqu 16(%rdi),%xmm2 1751*4757b351SPierre Pronchery vmovdqu 32(%rdi),%xmm3 1752*4757b351SPierre Pronchery addq $0x30,%rdi 1753*4757b351SPierre Pronchery andq $0xf,%rdx 1754*4757b351SPierre Pronchery je .L_done_3_remain_amivrujEyduiFoi 1755*4757b351SPierre Pronchery vextracti32x4 $0x2,%zmm9,%xmm13 1756*4757b351SPierre Pronchery vextracti32x4 $0x1,%zmm9,%xmm10 1757*4757b351SPierre Pronchery vextracti32x4 $0x3,%zmm9,%xmm11 1758*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 1759*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 1760*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 1761*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 1762*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 1763*4757b351SPierre Pronchery vpxor %xmm0,%xmm2,%xmm2 1764*4757b351SPierre Pronchery vpxor %xmm0,%xmm3,%xmm3 1765*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 1766*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1767*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1768*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 1769*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 1770*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1771*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1772*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 1773*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 1774*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1775*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1776*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 1777*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 1778*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1779*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1780*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 1781*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 1782*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1783*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1784*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 1785*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 1786*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1787*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1788*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 1789*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 1790*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1791*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1792*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 1793*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 1794*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1795*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1796*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 1797*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 1798*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1799*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1800*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 1801*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 1802*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 1803*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm2,%xmm2 1804*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm3,%xmm3 1805*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 1806*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 1807*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 1808*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 1809*4757b351SPierre Pronchery vmovdqu %xmm2,16(%rsi) 1810*4757b351SPierre Pronchery vmovdqu %xmm3,32(%rsi) 1811*4757b351SPierre Pronchery addq $0x30,%rsi 1812*4757b351SPierre Pronchery vmovdqa %xmm3,%xmm8 1813*4757b351SPierre Pronchery vmovdqa %xmm13,%xmm0 1814*4757b351SPierre Pronchery jmp .L_steal_cipher_amivrujEyduiFoi 1815*4757b351SPierre Pronchery 1816*4757b351SPierre Pronchery.L_done_3_remain_amivrujEyduiFoi: 1817*4757b351SPierre Pronchery vextracti32x4 $0x1,%zmm9,%xmm10 1818*4757b351SPierre Pronchery vextracti32x4 $0x2,%zmm9,%xmm11 1819*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 1820*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 1821*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 1822*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 1823*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 1824*4757b351SPierre Pronchery vpxor %xmm0,%xmm2,%xmm2 1825*4757b351SPierre Pronchery vpxor %xmm0,%xmm3,%xmm3 1826*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 1827*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1828*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1829*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 1830*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 1831*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1832*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1833*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 1834*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 1835*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1836*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1837*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 1838*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 1839*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1840*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1841*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 1842*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 1843*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1844*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1845*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 1846*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 1847*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1848*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1849*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 1850*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 1851*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1852*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1853*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 1854*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 1855*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1856*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1857*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 1858*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 1859*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1860*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1861*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 1862*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 1863*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 1864*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm2,%xmm2 1865*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm3,%xmm3 1866*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 1867*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 1868*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 1869*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 1870*4757b351SPierre Pronchery vmovdqu %xmm2,16(%rsi) 1871*4757b351SPierre Pronchery vmovdqu %xmm3,32(%rsi) 1872*4757b351SPierre Pronchery jmp .L_ret_amivrujEyduiFoi 1873*4757b351SPierre Pronchery 1874*4757b351SPierre Pronchery.L_remaining_num_blocks_is_2_amivrujEyduiFoi: 1875*4757b351SPierre Pronchery vmovdqu (%rdi),%xmm1 1876*4757b351SPierre Pronchery vmovdqu 16(%rdi),%xmm2 1877*4757b351SPierre Pronchery addq $0x20,%rdi 1878*4757b351SPierre Pronchery andq $0xf,%rdx 1879*4757b351SPierre Pronchery je .L_done_2_remain_amivrujEyduiFoi 1880*4757b351SPierre Pronchery vextracti32x4 $0x2,%zmm9,%xmm10 1881*4757b351SPierre Pronchery vextracti32x4 $0x1,%zmm9,%xmm12 1882*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 1883*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 1884*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 1885*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 1886*4757b351SPierre Pronchery vpxor %xmm0,%xmm2,%xmm2 1887*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 1888*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1889*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1890*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 1891*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1892*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1893*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 1894*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1895*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1896*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 1897*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1898*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1899*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 1900*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1901*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1902*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 1903*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1904*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1905*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 1906*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1907*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1908*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 1909*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1910*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1911*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 1912*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1913*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1914*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 1915*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 1916*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm2,%xmm2 1917*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 1918*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 1919*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 1920*4757b351SPierre Pronchery vmovdqu %xmm2,16(%rsi) 1921*4757b351SPierre Pronchery addq $0x20,%rsi 1922*4757b351SPierre Pronchery vmovdqa %xmm2,%xmm8 1923*4757b351SPierre Pronchery vmovdqa %xmm12,%xmm0 1924*4757b351SPierre Pronchery jmp .L_steal_cipher_amivrujEyduiFoi 1925*4757b351SPierre Pronchery 1926*4757b351SPierre Pronchery.L_done_2_remain_amivrujEyduiFoi: 1927*4757b351SPierre Pronchery vextracti32x4 $0x1,%zmm9,%xmm10 1928*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 1929*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 1930*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 1931*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 1932*4757b351SPierre Pronchery vpxor %xmm0,%xmm2,%xmm2 1933*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 1934*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1935*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1936*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 1937*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1938*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1939*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 1940*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1941*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1942*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 1943*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1944*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1945*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 1946*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1947*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1948*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 1949*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1950*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1951*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 1952*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1953*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1954*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 1955*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1956*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1957*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 1958*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1959*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 1960*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 1961*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 1962*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm2,%xmm2 1963*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 1964*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 1965*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 1966*4757b351SPierre Pronchery vmovdqu %xmm2,16(%rsi) 1967*4757b351SPierre Pronchery jmp .L_ret_amivrujEyduiFoi 1968*4757b351SPierre Pronchery 1969*4757b351SPierre Pronchery.L_remaining_num_blocks_is_1_amivrujEyduiFoi: 1970*4757b351SPierre Pronchery vmovdqu (%rdi),%xmm1 1971*4757b351SPierre Pronchery addq $0x10,%rdi 1972*4757b351SPierre Pronchery andq $0xf,%rdx 1973*4757b351SPierre Pronchery je .L_done_1_remain_amivrujEyduiFoi 1974*4757b351SPierre Pronchery vextracti32x4 $0x1,%zmm9,%xmm11 1975*4757b351SPierre Pronchery vpxor %xmm11,%xmm1,%xmm1 1976*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 1977*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 1978*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 1979*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1980*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 1981*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1982*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 1983*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1984*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 1985*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1986*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 1987*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1988*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 1989*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1990*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 1991*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1992*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 1993*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1994*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 1995*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 1996*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 1997*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 1998*4757b351SPierre Pronchery vpxor %xmm11,%xmm1,%xmm1 1999*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 2000*4757b351SPierre Pronchery addq $0x10,%rsi 2001*4757b351SPierre Pronchery vmovdqa %xmm1,%xmm8 2002*4757b351SPierre Pronchery vmovdqa %xmm9,%xmm0 2003*4757b351SPierre Pronchery jmp .L_steal_cipher_amivrujEyduiFoi 2004*4757b351SPierre Pronchery 2005*4757b351SPierre Pronchery.L_done_1_remain_amivrujEyduiFoi: 2006*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 2007*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 2008*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 2009*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 2010*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2011*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 2012*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2013*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 2014*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2015*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 2016*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2017*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 2018*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2019*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 2020*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2021*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 2022*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2023*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 2024*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2025*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 2026*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2027*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 2028*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 2029*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 2030*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 2031*4757b351SPierre Pronchery jmp .L_ret_amivrujEyduiFoi 2032*4757b351SPierre Pronchery 2033*4757b351SPierre Pronchery.L_start_by16_amivrujEyduiFoi: 2034*4757b351SPierre Pronchery vbroadcasti32x4 (%rsp),%zmm0 2035*4757b351SPierre Pronchery vbroadcasti32x4 shufb_15_7(%rip),%zmm8 2036*4757b351SPierre Pronchery movq $0xaa,%r8 2037*4757b351SPierre Pronchery kmovq %r8,%k2 2038*4757b351SPierre Pronchery 2039*4757b351SPierre Pronchery 2040*4757b351SPierre Pronchery vpshufb %zmm8,%zmm0,%zmm1 2041*4757b351SPierre Pronchery vpsllvq const_dq3210(%rip),%zmm0,%zmm4 2042*4757b351SPierre Pronchery vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 2043*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm2,%zmm3 2044*4757b351SPierre Pronchery vpxorq %zmm2,%zmm4,%zmm4{%k2} 2045*4757b351SPierre Pronchery vpxord %zmm4,%zmm3,%zmm9 2046*4757b351SPierre Pronchery 2047*4757b351SPierre Pronchery 2048*4757b351SPierre Pronchery vpsllvq const_dq7654(%rip),%zmm0,%zmm5 2049*4757b351SPierre Pronchery vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 2050*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm6,%zmm7 2051*4757b351SPierre Pronchery vpxorq %zmm6,%zmm5,%zmm5{%k2} 2052*4757b351SPierre Pronchery vpxord %zmm5,%zmm7,%zmm10 2053*4757b351SPierre Pronchery 2054*4757b351SPierre Pronchery 2055*4757b351SPierre Pronchery vpsrldq $0xf,%zmm9,%zmm13 2056*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 2057*4757b351SPierre Pronchery vpslldq $0x1,%zmm9,%zmm11 2058*4757b351SPierre Pronchery vpxord %zmm14,%zmm11,%zmm11 2059*4757b351SPierre Pronchery 2060*4757b351SPierre Pronchery vpsrldq $0xf,%zmm10,%zmm15 2061*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm15,%zmm16 2062*4757b351SPierre Pronchery vpslldq $0x1,%zmm10,%zmm12 2063*4757b351SPierre Pronchery vpxord %zmm16,%zmm12,%zmm12 2064*4757b351SPierre Pronchery 2065*4757b351SPierre Pronchery.L_main_loop_run_16_amivrujEyduiFoi: 2066*4757b351SPierre Pronchery vmovdqu8 (%rdi),%zmm1 2067*4757b351SPierre Pronchery vmovdqu8 64(%rdi),%zmm2 2068*4757b351SPierre Pronchery vmovdqu8 128(%rdi),%zmm3 2069*4757b351SPierre Pronchery vmovdqu8 192(%rdi),%zmm4 2070*4757b351SPierre Pronchery vmovdqu8 240(%rdi),%xmm5 2071*4757b351SPierre Pronchery addq $0x100,%rdi 2072*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 2073*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 2074*4757b351SPierre Pronchery vpxorq %zmm11,%zmm3,%zmm3 2075*4757b351SPierre Pronchery vpxorq %zmm12,%zmm4,%zmm4 2076*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 2077*4757b351SPierre Pronchery vpxorq %zmm0,%zmm1,%zmm1 2078*4757b351SPierre Pronchery vpxorq %zmm0,%zmm2,%zmm2 2079*4757b351SPierre Pronchery vpxorq %zmm0,%zmm3,%zmm3 2080*4757b351SPierre Pronchery vpxorq %zmm0,%zmm4,%zmm4 2081*4757b351SPierre Pronchery vpsrldq $0xf,%zmm11,%zmm13 2082*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 2083*4757b351SPierre Pronchery vpslldq $0x1,%zmm11,%zmm15 2084*4757b351SPierre Pronchery vpxord %zmm14,%zmm15,%zmm15 2085*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 2086*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 2087*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 2088*4757b351SPierre Pronchery vaesdec %zmm0,%zmm3,%zmm3 2089*4757b351SPierre Pronchery vaesdec %zmm0,%zmm4,%zmm4 2090*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 2091*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 2092*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 2093*4757b351SPierre Pronchery vaesdec %zmm0,%zmm3,%zmm3 2094*4757b351SPierre Pronchery vaesdec %zmm0,%zmm4,%zmm4 2095*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 2096*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 2097*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 2098*4757b351SPierre Pronchery vaesdec %zmm0,%zmm3,%zmm3 2099*4757b351SPierre Pronchery vaesdec %zmm0,%zmm4,%zmm4 2100*4757b351SPierre Pronchery vpsrldq $0xf,%zmm12,%zmm13 2101*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 2102*4757b351SPierre Pronchery vpslldq $0x1,%zmm12,%zmm16 2103*4757b351SPierre Pronchery vpxord %zmm14,%zmm16,%zmm16 2104*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 2105*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 2106*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 2107*4757b351SPierre Pronchery vaesdec %zmm0,%zmm3,%zmm3 2108*4757b351SPierre Pronchery vaesdec %zmm0,%zmm4,%zmm4 2109*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 2110*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 2111*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 2112*4757b351SPierre Pronchery vaesdec %zmm0,%zmm3,%zmm3 2113*4757b351SPierre Pronchery vaesdec %zmm0,%zmm4,%zmm4 2114*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 2115*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 2116*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 2117*4757b351SPierre Pronchery vaesdec %zmm0,%zmm3,%zmm3 2118*4757b351SPierre Pronchery vaesdec %zmm0,%zmm4,%zmm4 2119*4757b351SPierre Pronchery vpsrldq $0xf,%zmm15,%zmm13 2120*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 2121*4757b351SPierre Pronchery vpslldq $0x1,%zmm15,%zmm17 2122*4757b351SPierre Pronchery vpxord %zmm14,%zmm17,%zmm17 2123*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 2124*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 2125*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 2126*4757b351SPierre Pronchery vaesdec %zmm0,%zmm3,%zmm3 2127*4757b351SPierre Pronchery vaesdec %zmm0,%zmm4,%zmm4 2128*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 2129*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 2130*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 2131*4757b351SPierre Pronchery vaesdec %zmm0,%zmm3,%zmm3 2132*4757b351SPierre Pronchery vaesdec %zmm0,%zmm4,%zmm4 2133*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 2134*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 2135*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 2136*4757b351SPierre Pronchery vaesdec %zmm0,%zmm3,%zmm3 2137*4757b351SPierre Pronchery vaesdec %zmm0,%zmm4,%zmm4 2138*4757b351SPierre Pronchery vpsrldq $0xf,%zmm16,%zmm13 2139*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 2140*4757b351SPierre Pronchery vpslldq $0x1,%zmm16,%zmm18 2141*4757b351SPierre Pronchery vpxord %zmm14,%zmm18,%zmm18 2142*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 2143*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm1,%zmm1 2144*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm2,%zmm2 2145*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm3,%zmm3 2146*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm4,%zmm4 2147*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 2148*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 2149*4757b351SPierre Pronchery vpxorq %zmm11,%zmm3,%zmm3 2150*4757b351SPierre Pronchery vpxorq %zmm12,%zmm4,%zmm4 2151*4757b351SPierre Pronchery 2152*4757b351SPierre Pronchery vmovdqa32 %zmm15,%zmm9 2153*4757b351SPierre Pronchery vmovdqa32 %zmm16,%zmm10 2154*4757b351SPierre Pronchery vmovdqa32 %zmm17,%zmm11 2155*4757b351SPierre Pronchery vmovdqa32 %zmm18,%zmm12 2156*4757b351SPierre Pronchery vmovdqu8 %zmm1,(%rsi) 2157*4757b351SPierre Pronchery vmovdqu8 %zmm2,64(%rsi) 2158*4757b351SPierre Pronchery vmovdqu8 %zmm3,128(%rsi) 2159*4757b351SPierre Pronchery vmovdqu8 %zmm4,192(%rsi) 2160*4757b351SPierre Pronchery addq $0x100,%rsi 2161*4757b351SPierre Pronchery subq $0x100,%rdx 2162*4757b351SPierre Pronchery cmpq $0x100,%rdx 2163*4757b351SPierre Pronchery jge .L_main_loop_run_16_amivrujEyduiFoi 2164*4757b351SPierre Pronchery 2165*4757b351SPierre Pronchery cmpq $0x80,%rdx 2166*4757b351SPierre Pronchery jge .L_main_loop_run_8_amivrujEyduiFoi 2167*4757b351SPierre Pronchery jmp .L_do_n_blocks_amivrujEyduiFoi 2168*4757b351SPierre Pronchery 2169*4757b351SPierre Pronchery.L_start_by8_amivrujEyduiFoi: 2170*4757b351SPierre Pronchery 2171*4757b351SPierre Pronchery vbroadcasti32x4 (%rsp),%zmm0 2172*4757b351SPierre Pronchery vbroadcasti32x4 shufb_15_7(%rip),%zmm8 2173*4757b351SPierre Pronchery movq $0xaa,%r8 2174*4757b351SPierre Pronchery kmovq %r8,%k2 2175*4757b351SPierre Pronchery 2176*4757b351SPierre Pronchery 2177*4757b351SPierre Pronchery vpshufb %zmm8,%zmm0,%zmm1 2178*4757b351SPierre Pronchery vpsllvq const_dq3210(%rip),%zmm0,%zmm4 2179*4757b351SPierre Pronchery vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 2180*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm2,%zmm3 2181*4757b351SPierre Pronchery vpxorq %zmm2,%zmm4,%zmm4{%k2} 2182*4757b351SPierre Pronchery vpxord %zmm4,%zmm3,%zmm9 2183*4757b351SPierre Pronchery 2184*4757b351SPierre Pronchery 2185*4757b351SPierre Pronchery vpsllvq const_dq7654(%rip),%zmm0,%zmm5 2186*4757b351SPierre Pronchery vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 2187*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm6,%zmm7 2188*4757b351SPierre Pronchery vpxorq %zmm6,%zmm5,%zmm5{%k2} 2189*4757b351SPierre Pronchery vpxord %zmm5,%zmm7,%zmm10 2190*4757b351SPierre Pronchery 2191*4757b351SPierre Pronchery.L_main_loop_run_8_amivrujEyduiFoi: 2192*4757b351SPierre Pronchery vmovdqu8 (%rdi),%zmm1 2193*4757b351SPierre Pronchery vmovdqu8 64(%rdi),%zmm2 2194*4757b351SPierre Pronchery vmovdqu8 112(%rdi),%xmm5 2195*4757b351SPierre Pronchery addq $0x80,%rdi 2196*4757b351SPierre Pronchery 2197*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 2198*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 2199*4757b351SPierre Pronchery 2200*4757b351SPierre Pronchery 2201*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 2202*4757b351SPierre Pronchery vpxorq %zmm0,%zmm1,%zmm1 2203*4757b351SPierre Pronchery vpxorq %zmm0,%zmm2,%zmm2 2204*4757b351SPierre Pronchery vpsrldq $0xf,%zmm9,%zmm13 2205*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 2206*4757b351SPierre Pronchery vpslldq $0x1,%zmm9,%zmm15 2207*4757b351SPierre Pronchery vpxord %zmm14,%zmm15,%zmm15 2208*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 2209*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 2210*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 2211*4757b351SPierre Pronchery 2212*4757b351SPierre Pronchery 2213*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 2214*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 2215*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 2216*4757b351SPierre Pronchery 2217*4757b351SPierre Pronchery 2218*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 2219*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 2220*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 2221*4757b351SPierre Pronchery vpsrldq $0xf,%zmm10,%zmm13 2222*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 2223*4757b351SPierre Pronchery vpslldq $0x1,%zmm10,%zmm16 2224*4757b351SPierre Pronchery vpxord %zmm14,%zmm16,%zmm16 2225*4757b351SPierre Pronchery 2226*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 2227*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 2228*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 2229*4757b351SPierre Pronchery 2230*4757b351SPierre Pronchery 2231*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 2232*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 2233*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 2234*4757b351SPierre Pronchery 2235*4757b351SPierre Pronchery 2236*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 2237*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 2238*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 2239*4757b351SPierre Pronchery 2240*4757b351SPierre Pronchery 2241*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 2242*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 2243*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 2244*4757b351SPierre Pronchery 2245*4757b351SPierre Pronchery 2246*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 2247*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 2248*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 2249*4757b351SPierre Pronchery 2250*4757b351SPierre Pronchery 2251*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 2252*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 2253*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 2254*4757b351SPierre Pronchery 2255*4757b351SPierre Pronchery 2256*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 2257*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm1,%zmm1 2258*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm2,%zmm2 2259*4757b351SPierre Pronchery 2260*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 2261*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 2262*4757b351SPierre Pronchery 2263*4757b351SPierre Pronchery 2264*4757b351SPierre Pronchery vmovdqa32 %zmm15,%zmm9 2265*4757b351SPierre Pronchery vmovdqa32 %zmm16,%zmm10 2266*4757b351SPierre Pronchery vmovdqu8 %zmm1,(%rsi) 2267*4757b351SPierre Pronchery vmovdqu8 %zmm2,64(%rsi) 2268*4757b351SPierre Pronchery addq $0x80,%rsi 2269*4757b351SPierre Pronchery subq $0x80,%rdx 2270*4757b351SPierre Pronchery cmpq $0x80,%rdx 2271*4757b351SPierre Pronchery jge .L_main_loop_run_8_amivrujEyduiFoi 2272*4757b351SPierre Pronchery jmp .L_do_n_blocks_amivrujEyduiFoi 2273*4757b351SPierre Pronchery 2274*4757b351SPierre Pronchery.L_steal_cipher_amivrujEyduiFoi: 2275*4757b351SPierre Pronchery 2276*4757b351SPierre Pronchery vmovdqa %xmm8,%xmm2 2277*4757b351SPierre Pronchery 2278*4757b351SPierre Pronchery 2279*4757b351SPierre Pronchery leaq vpshufb_shf_table(%rip),%rax 2280*4757b351SPierre Pronchery vmovdqu (%rax,%rdx,1),%xmm10 2281*4757b351SPierre Pronchery vpshufb %xmm10,%xmm8,%xmm8 2282*4757b351SPierre Pronchery 2283*4757b351SPierre Pronchery 2284*4757b351SPierre Pronchery vmovdqu -16(%rdi,%rdx,1),%xmm3 2285*4757b351SPierre Pronchery vmovdqu %xmm8,-16(%rsi,%rdx,1) 2286*4757b351SPierre Pronchery 2287*4757b351SPierre Pronchery 2288*4757b351SPierre Pronchery leaq vpshufb_shf_table(%rip),%rax 2289*4757b351SPierre Pronchery addq $16,%rax 2290*4757b351SPierre Pronchery subq %rdx,%rax 2291*4757b351SPierre Pronchery vmovdqu (%rax),%xmm10 2292*4757b351SPierre Pronchery vpxor mask1(%rip),%xmm10,%xmm10 2293*4757b351SPierre Pronchery vpshufb %xmm10,%xmm3,%xmm3 2294*4757b351SPierre Pronchery 2295*4757b351SPierre Pronchery vpblendvb %xmm10,%xmm2,%xmm3,%xmm3 2296*4757b351SPierre Pronchery 2297*4757b351SPierre Pronchery 2298*4757b351SPierre Pronchery vpxor %xmm0,%xmm3,%xmm8 2299*4757b351SPierre Pronchery 2300*4757b351SPierre Pronchery 2301*4757b351SPierre Pronchery vpxor (%rcx),%xmm8,%xmm8 2302*4757b351SPierre Pronchery vaesdec 16(%rcx),%xmm8,%xmm8 2303*4757b351SPierre Pronchery vaesdec 32(%rcx),%xmm8,%xmm8 2304*4757b351SPierre Pronchery vaesdec 48(%rcx),%xmm8,%xmm8 2305*4757b351SPierre Pronchery vaesdec 64(%rcx),%xmm8,%xmm8 2306*4757b351SPierre Pronchery vaesdec 80(%rcx),%xmm8,%xmm8 2307*4757b351SPierre Pronchery vaesdec 96(%rcx),%xmm8,%xmm8 2308*4757b351SPierre Pronchery vaesdec 112(%rcx),%xmm8,%xmm8 2309*4757b351SPierre Pronchery vaesdec 128(%rcx),%xmm8,%xmm8 2310*4757b351SPierre Pronchery vaesdec 144(%rcx),%xmm8,%xmm8 2311*4757b351SPierre Pronchery vaesdeclast 160(%rcx),%xmm8,%xmm8 2312*4757b351SPierre Pronchery 2313*4757b351SPierre Pronchery vpxor %xmm0,%xmm8,%xmm8 2314*4757b351SPierre Pronchery 2315*4757b351SPierre Pronchery.L_done_amivrujEyduiFoi: 2316*4757b351SPierre Pronchery 2317*4757b351SPierre Pronchery vmovdqu %xmm8,-16(%rsi) 2318*4757b351SPierre Pronchery.L_ret_amivrujEyduiFoi: 2319*4757b351SPierre Pronchery movq 128(%rsp),%rbx 2320*4757b351SPierre Pronchery xorq %r8,%r8 2321*4757b351SPierre Pronchery movq %r8,128(%rsp) 2322*4757b351SPierre Pronchery 2323*4757b351SPierre Pronchery vpxorq %zmm0,%zmm0,%zmm0 2324*4757b351SPierre Pronchery movq %rbp,%rsp 2325*4757b351SPierre Pronchery popq %rbp 2326*4757b351SPierre Pronchery vzeroupper 2327*4757b351SPierre Pronchery .byte 0xf3,0xc3 2328*4757b351SPierre Pronchery 2329*4757b351SPierre Pronchery.L_less_than_128_bytes_amivrujEyduiFoi: 2330*4757b351SPierre Pronchery cmpq $0x10,%rdx 2331*4757b351SPierre Pronchery jb .L_ret_amivrujEyduiFoi 2332*4757b351SPierre Pronchery 2333*4757b351SPierre Pronchery movq %rdx,%r8 2334*4757b351SPierre Pronchery andq $0x70,%r8 2335*4757b351SPierre Pronchery cmpq $0x60,%r8 2336*4757b351SPierre Pronchery je .L_num_blocks_is_6_amivrujEyduiFoi 2337*4757b351SPierre Pronchery cmpq $0x50,%r8 2338*4757b351SPierre Pronchery je .L_num_blocks_is_5_amivrujEyduiFoi 2339*4757b351SPierre Pronchery cmpq $0x40,%r8 2340*4757b351SPierre Pronchery je .L_num_blocks_is_4_amivrujEyduiFoi 2341*4757b351SPierre Pronchery cmpq $0x30,%r8 2342*4757b351SPierre Pronchery je .L_num_blocks_is_3_amivrujEyduiFoi 2343*4757b351SPierre Pronchery cmpq $0x20,%r8 2344*4757b351SPierre Pronchery je .L_num_blocks_is_2_amivrujEyduiFoi 2345*4757b351SPierre Pronchery cmpq $0x10,%r8 2346*4757b351SPierre Pronchery je .L_num_blocks_is_1_amivrujEyduiFoi 2347*4757b351SPierre Pronchery 2348*4757b351SPierre Pronchery.L_num_blocks_is_7_amivrujEyduiFoi: 2349*4757b351SPierre Pronchery vmovdqa 0(%rsp),%xmm9 2350*4757b351SPierre Pronchery movq 0(%rsp),%rax 2351*4757b351SPierre Pronchery movq 8(%rsp),%rbx 2352*4757b351SPierre Pronchery vmovdqu 0(%rdi),%xmm1 2353*4757b351SPierre Pronchery xorq %r11,%r11 2354*4757b351SPierre Pronchery shlq $1,%rax 2355*4757b351SPierre Pronchery adcq %rbx,%rbx 2356*4757b351SPierre Pronchery cmovcq %r10,%r11 2357*4757b351SPierre Pronchery xorq %r11,%rax 2358*4757b351SPierre Pronchery movq %rax,16(%rsp) 2359*4757b351SPierre Pronchery movq %rbx,16 + 8(%rsp) 2360*4757b351SPierre Pronchery vmovdqa 16(%rsp),%xmm10 2361*4757b351SPierre Pronchery vmovdqu 16(%rdi),%xmm2 2362*4757b351SPierre Pronchery xorq %r11,%r11 2363*4757b351SPierre Pronchery shlq $1,%rax 2364*4757b351SPierre Pronchery adcq %rbx,%rbx 2365*4757b351SPierre Pronchery cmovcq %r10,%r11 2366*4757b351SPierre Pronchery xorq %r11,%rax 2367*4757b351SPierre Pronchery movq %rax,32(%rsp) 2368*4757b351SPierre Pronchery movq %rbx,32 + 8(%rsp) 2369*4757b351SPierre Pronchery vmovdqa 32(%rsp),%xmm11 2370*4757b351SPierre Pronchery vmovdqu 32(%rdi),%xmm3 2371*4757b351SPierre Pronchery xorq %r11,%r11 2372*4757b351SPierre Pronchery shlq $1,%rax 2373*4757b351SPierre Pronchery adcq %rbx,%rbx 2374*4757b351SPierre Pronchery cmovcq %r10,%r11 2375*4757b351SPierre Pronchery xorq %r11,%rax 2376*4757b351SPierre Pronchery movq %rax,48(%rsp) 2377*4757b351SPierre Pronchery movq %rbx,48 + 8(%rsp) 2378*4757b351SPierre Pronchery vmovdqa 48(%rsp),%xmm12 2379*4757b351SPierre Pronchery vmovdqu 48(%rdi),%xmm4 2380*4757b351SPierre Pronchery xorq %r11,%r11 2381*4757b351SPierre Pronchery shlq $1,%rax 2382*4757b351SPierre Pronchery adcq %rbx,%rbx 2383*4757b351SPierre Pronchery cmovcq %r10,%r11 2384*4757b351SPierre Pronchery xorq %r11,%rax 2385*4757b351SPierre Pronchery movq %rax,64(%rsp) 2386*4757b351SPierre Pronchery movq %rbx,64 + 8(%rsp) 2387*4757b351SPierre Pronchery vmovdqa 64(%rsp),%xmm13 2388*4757b351SPierre Pronchery vmovdqu 64(%rdi),%xmm5 2389*4757b351SPierre Pronchery xorq %r11,%r11 2390*4757b351SPierre Pronchery shlq $1,%rax 2391*4757b351SPierre Pronchery adcq %rbx,%rbx 2392*4757b351SPierre Pronchery cmovcq %r10,%r11 2393*4757b351SPierre Pronchery xorq %r11,%rax 2394*4757b351SPierre Pronchery movq %rax,80(%rsp) 2395*4757b351SPierre Pronchery movq %rbx,80 + 8(%rsp) 2396*4757b351SPierre Pronchery vmovdqa 80(%rsp),%xmm14 2397*4757b351SPierre Pronchery vmovdqu 80(%rdi),%xmm6 2398*4757b351SPierre Pronchery xorq %r11,%r11 2399*4757b351SPierre Pronchery shlq $1,%rax 2400*4757b351SPierre Pronchery adcq %rbx,%rbx 2401*4757b351SPierre Pronchery cmovcq %r10,%r11 2402*4757b351SPierre Pronchery xorq %r11,%rax 2403*4757b351SPierre Pronchery movq %rax,96(%rsp) 2404*4757b351SPierre Pronchery movq %rbx,96 + 8(%rsp) 2405*4757b351SPierre Pronchery vmovdqa 96(%rsp),%xmm15 2406*4757b351SPierre Pronchery vmovdqu 96(%rdi),%xmm7 2407*4757b351SPierre Pronchery addq $0x70,%rdi 2408*4757b351SPierre Pronchery andq $0xf,%rdx 2409*4757b351SPierre Pronchery je .L_done_7_amivrujEyduiFoi 2410*4757b351SPierre Pronchery 2411*4757b351SPierre Pronchery.L_steal_cipher_7_amivrujEyduiFoi: 2412*4757b351SPierre Pronchery xorq %r11,%r11 2413*4757b351SPierre Pronchery shlq $1,%rax 2414*4757b351SPierre Pronchery adcq %rbx,%rbx 2415*4757b351SPierre Pronchery cmovcq %r10,%r11 2416*4757b351SPierre Pronchery xorq %r11,%rax 2417*4757b351SPierre Pronchery movq %rax,16(%rsp) 2418*4757b351SPierre Pronchery movq %rbx,24(%rsp) 2419*4757b351SPierre Pronchery vmovdqa64 %xmm15,%xmm16 2420*4757b351SPierre Pronchery vmovdqa 16(%rsp),%xmm15 2421*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 2422*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 2423*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 2424*4757b351SPierre Pronchery vpxor %xmm12,%xmm4,%xmm4 2425*4757b351SPierre Pronchery vpxor %xmm13,%xmm5,%xmm5 2426*4757b351SPierre Pronchery vpxor %xmm14,%xmm6,%xmm6 2427*4757b351SPierre Pronchery vpxor %xmm15,%xmm7,%xmm7 2428*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 2429*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 2430*4757b351SPierre Pronchery vpxor %xmm0,%xmm2,%xmm2 2431*4757b351SPierre Pronchery vpxor %xmm0,%xmm3,%xmm3 2432*4757b351SPierre Pronchery vpxor %xmm0,%xmm4,%xmm4 2433*4757b351SPierre Pronchery vpxor %xmm0,%xmm5,%xmm5 2434*4757b351SPierre Pronchery vpxor %xmm0,%xmm6,%xmm6 2435*4757b351SPierre Pronchery vpxor %xmm0,%xmm7,%xmm7 2436*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 2437*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2438*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2439*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2440*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2441*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2442*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2443*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 2444*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 2445*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2446*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2447*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2448*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2449*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2450*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2451*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 2452*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 2453*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2454*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2455*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2456*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2457*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2458*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2459*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 2460*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 2461*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2462*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2463*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2464*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2465*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2466*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2467*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 2468*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 2469*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2470*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2471*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2472*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2473*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2474*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2475*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 2476*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 2477*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2478*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2479*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2480*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2481*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2482*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2483*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 2484*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 2485*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2486*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2487*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2488*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2489*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2490*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2491*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 2492*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 2493*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2494*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2495*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2496*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2497*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2498*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2499*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 2500*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 2501*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2502*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2503*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2504*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2505*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2506*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2507*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 2508*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 2509*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 2510*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm2,%xmm2 2511*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm3,%xmm3 2512*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm4,%xmm4 2513*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm5,%xmm5 2514*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm6,%xmm6 2515*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm7,%xmm7 2516*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 2517*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 2518*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 2519*4757b351SPierre Pronchery vpxor %xmm12,%xmm4,%xmm4 2520*4757b351SPierre Pronchery vpxor %xmm13,%xmm5,%xmm5 2521*4757b351SPierre Pronchery vpxor %xmm14,%xmm6,%xmm6 2522*4757b351SPierre Pronchery vpxor %xmm15,%xmm7,%xmm7 2523*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 2524*4757b351SPierre Pronchery vmovdqu %xmm2,16(%rsi) 2525*4757b351SPierre Pronchery vmovdqu %xmm3,32(%rsi) 2526*4757b351SPierre Pronchery vmovdqu %xmm4,48(%rsi) 2527*4757b351SPierre Pronchery vmovdqu %xmm5,64(%rsi) 2528*4757b351SPierre Pronchery vmovdqu %xmm6,80(%rsi) 2529*4757b351SPierre Pronchery addq $0x70,%rsi 2530*4757b351SPierre Pronchery vmovdqa64 %xmm16,%xmm0 2531*4757b351SPierre Pronchery vmovdqa %xmm7,%xmm8 2532*4757b351SPierre Pronchery jmp .L_steal_cipher_amivrujEyduiFoi 2533*4757b351SPierre Pronchery 2534*4757b351SPierre Pronchery.L_done_7_amivrujEyduiFoi: 2535*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 2536*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 2537*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 2538*4757b351SPierre Pronchery vpxor %xmm12,%xmm4,%xmm4 2539*4757b351SPierre Pronchery vpxor %xmm13,%xmm5,%xmm5 2540*4757b351SPierre Pronchery vpxor %xmm14,%xmm6,%xmm6 2541*4757b351SPierre Pronchery vpxor %xmm15,%xmm7,%xmm7 2542*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 2543*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 2544*4757b351SPierre Pronchery vpxor %xmm0,%xmm2,%xmm2 2545*4757b351SPierre Pronchery vpxor %xmm0,%xmm3,%xmm3 2546*4757b351SPierre Pronchery vpxor %xmm0,%xmm4,%xmm4 2547*4757b351SPierre Pronchery vpxor %xmm0,%xmm5,%xmm5 2548*4757b351SPierre Pronchery vpxor %xmm0,%xmm6,%xmm6 2549*4757b351SPierre Pronchery vpxor %xmm0,%xmm7,%xmm7 2550*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 2551*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2552*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2553*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2554*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2555*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2556*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2557*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 2558*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 2559*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2560*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2561*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2562*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2563*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2564*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2565*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 2566*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 2567*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2568*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2569*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2570*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2571*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2572*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2573*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 2574*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 2575*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2576*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2577*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2578*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2579*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2580*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2581*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 2582*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 2583*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2584*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2585*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2586*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2587*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2588*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2589*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 2590*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 2591*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2592*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2593*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2594*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2595*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2596*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2597*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 2598*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 2599*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2600*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2601*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2602*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2603*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2604*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2605*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 2606*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 2607*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2608*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2609*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2610*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2611*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2612*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2613*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 2614*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 2615*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2616*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2617*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2618*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2619*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2620*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2621*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 2622*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 2623*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 2624*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm2,%xmm2 2625*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm3,%xmm3 2626*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm4,%xmm4 2627*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm5,%xmm5 2628*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm6,%xmm6 2629*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm7,%xmm7 2630*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 2631*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 2632*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 2633*4757b351SPierre Pronchery vpxor %xmm12,%xmm4,%xmm4 2634*4757b351SPierre Pronchery vpxor %xmm13,%xmm5,%xmm5 2635*4757b351SPierre Pronchery vpxor %xmm14,%xmm6,%xmm6 2636*4757b351SPierre Pronchery vpxor %xmm15,%xmm7,%xmm7 2637*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 2638*4757b351SPierre Pronchery vmovdqu %xmm2,16(%rsi) 2639*4757b351SPierre Pronchery vmovdqu %xmm3,32(%rsi) 2640*4757b351SPierre Pronchery vmovdqu %xmm4,48(%rsi) 2641*4757b351SPierre Pronchery vmovdqu %xmm5,64(%rsi) 2642*4757b351SPierre Pronchery vmovdqu %xmm6,80(%rsi) 2643*4757b351SPierre Pronchery addq $0x70,%rsi 2644*4757b351SPierre Pronchery vmovdqa %xmm7,%xmm8 2645*4757b351SPierre Pronchery jmp .L_done_amivrujEyduiFoi 2646*4757b351SPierre Pronchery 2647*4757b351SPierre Pronchery.L_num_blocks_is_6_amivrujEyduiFoi: 2648*4757b351SPierre Pronchery vmovdqa 0(%rsp),%xmm9 2649*4757b351SPierre Pronchery movq 0(%rsp),%rax 2650*4757b351SPierre Pronchery movq 8(%rsp),%rbx 2651*4757b351SPierre Pronchery vmovdqu 0(%rdi),%xmm1 2652*4757b351SPierre Pronchery xorq %r11,%r11 2653*4757b351SPierre Pronchery shlq $1,%rax 2654*4757b351SPierre Pronchery adcq %rbx,%rbx 2655*4757b351SPierre Pronchery cmovcq %r10,%r11 2656*4757b351SPierre Pronchery xorq %r11,%rax 2657*4757b351SPierre Pronchery movq %rax,16(%rsp) 2658*4757b351SPierre Pronchery movq %rbx,16 + 8(%rsp) 2659*4757b351SPierre Pronchery vmovdqa 16(%rsp),%xmm10 2660*4757b351SPierre Pronchery vmovdqu 16(%rdi),%xmm2 2661*4757b351SPierre Pronchery xorq %r11,%r11 2662*4757b351SPierre Pronchery shlq $1,%rax 2663*4757b351SPierre Pronchery adcq %rbx,%rbx 2664*4757b351SPierre Pronchery cmovcq %r10,%r11 2665*4757b351SPierre Pronchery xorq %r11,%rax 2666*4757b351SPierre Pronchery movq %rax,32(%rsp) 2667*4757b351SPierre Pronchery movq %rbx,32 + 8(%rsp) 2668*4757b351SPierre Pronchery vmovdqa 32(%rsp),%xmm11 2669*4757b351SPierre Pronchery vmovdqu 32(%rdi),%xmm3 2670*4757b351SPierre Pronchery xorq %r11,%r11 2671*4757b351SPierre Pronchery shlq $1,%rax 2672*4757b351SPierre Pronchery adcq %rbx,%rbx 2673*4757b351SPierre Pronchery cmovcq %r10,%r11 2674*4757b351SPierre Pronchery xorq %r11,%rax 2675*4757b351SPierre Pronchery movq %rax,48(%rsp) 2676*4757b351SPierre Pronchery movq %rbx,48 + 8(%rsp) 2677*4757b351SPierre Pronchery vmovdqa 48(%rsp),%xmm12 2678*4757b351SPierre Pronchery vmovdqu 48(%rdi),%xmm4 2679*4757b351SPierre Pronchery xorq %r11,%r11 2680*4757b351SPierre Pronchery shlq $1,%rax 2681*4757b351SPierre Pronchery adcq %rbx,%rbx 2682*4757b351SPierre Pronchery cmovcq %r10,%r11 2683*4757b351SPierre Pronchery xorq %r11,%rax 2684*4757b351SPierre Pronchery movq %rax,64(%rsp) 2685*4757b351SPierre Pronchery movq %rbx,64 + 8(%rsp) 2686*4757b351SPierre Pronchery vmovdqa 64(%rsp),%xmm13 2687*4757b351SPierre Pronchery vmovdqu 64(%rdi),%xmm5 2688*4757b351SPierre Pronchery xorq %r11,%r11 2689*4757b351SPierre Pronchery shlq $1,%rax 2690*4757b351SPierre Pronchery adcq %rbx,%rbx 2691*4757b351SPierre Pronchery cmovcq %r10,%r11 2692*4757b351SPierre Pronchery xorq %r11,%rax 2693*4757b351SPierre Pronchery movq %rax,80(%rsp) 2694*4757b351SPierre Pronchery movq %rbx,80 + 8(%rsp) 2695*4757b351SPierre Pronchery vmovdqa 80(%rsp),%xmm14 2696*4757b351SPierre Pronchery vmovdqu 80(%rdi),%xmm6 2697*4757b351SPierre Pronchery addq $0x60,%rdi 2698*4757b351SPierre Pronchery andq $0xf,%rdx 2699*4757b351SPierre Pronchery je .L_done_6_amivrujEyduiFoi 2700*4757b351SPierre Pronchery 2701*4757b351SPierre Pronchery.L_steal_cipher_6_amivrujEyduiFoi: 2702*4757b351SPierre Pronchery xorq %r11,%r11 2703*4757b351SPierre Pronchery shlq $1,%rax 2704*4757b351SPierre Pronchery adcq %rbx,%rbx 2705*4757b351SPierre Pronchery cmovcq %r10,%r11 2706*4757b351SPierre Pronchery xorq %r11,%rax 2707*4757b351SPierre Pronchery movq %rax,16(%rsp) 2708*4757b351SPierre Pronchery movq %rbx,24(%rsp) 2709*4757b351SPierre Pronchery vmovdqa64 %xmm14,%xmm15 2710*4757b351SPierre Pronchery vmovdqa 16(%rsp),%xmm14 2711*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 2712*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 2713*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 2714*4757b351SPierre Pronchery vpxor %xmm12,%xmm4,%xmm4 2715*4757b351SPierre Pronchery vpxor %xmm13,%xmm5,%xmm5 2716*4757b351SPierre Pronchery vpxor %xmm14,%xmm6,%xmm6 2717*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 2718*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 2719*4757b351SPierre Pronchery vpxor %xmm0,%xmm2,%xmm2 2720*4757b351SPierre Pronchery vpxor %xmm0,%xmm3,%xmm3 2721*4757b351SPierre Pronchery vpxor %xmm0,%xmm4,%xmm4 2722*4757b351SPierre Pronchery vpxor %xmm0,%xmm5,%xmm5 2723*4757b351SPierre Pronchery vpxor %xmm0,%xmm6,%xmm6 2724*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 2725*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2726*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2727*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2728*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2729*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2730*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2731*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 2732*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2733*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2734*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2735*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2736*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2737*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2738*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 2739*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2740*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2741*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2742*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2743*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2744*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2745*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 2746*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2747*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2748*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2749*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2750*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2751*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2752*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 2753*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2754*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2755*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2756*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2757*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2758*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2759*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 2760*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2761*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2762*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2763*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2764*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2765*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2766*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 2767*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2768*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2769*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2770*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2771*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2772*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2773*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 2774*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2775*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2776*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2777*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2778*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2779*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2780*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 2781*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2782*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2783*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2784*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2785*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2786*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2787*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 2788*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 2789*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm2,%xmm2 2790*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm3,%xmm3 2791*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm4,%xmm4 2792*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm5,%xmm5 2793*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm6,%xmm6 2794*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 2795*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 2796*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 2797*4757b351SPierre Pronchery vpxor %xmm12,%xmm4,%xmm4 2798*4757b351SPierre Pronchery vpxor %xmm13,%xmm5,%xmm5 2799*4757b351SPierre Pronchery vpxor %xmm14,%xmm6,%xmm6 2800*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 2801*4757b351SPierre Pronchery vmovdqu %xmm2,16(%rsi) 2802*4757b351SPierre Pronchery vmovdqu %xmm3,32(%rsi) 2803*4757b351SPierre Pronchery vmovdqu %xmm4,48(%rsi) 2804*4757b351SPierre Pronchery vmovdqu %xmm5,64(%rsi) 2805*4757b351SPierre Pronchery addq $0x60,%rsi 2806*4757b351SPierre Pronchery vmovdqa %xmm15,%xmm0 2807*4757b351SPierre Pronchery vmovdqa %xmm6,%xmm8 2808*4757b351SPierre Pronchery jmp .L_steal_cipher_amivrujEyduiFoi 2809*4757b351SPierre Pronchery 2810*4757b351SPierre Pronchery.L_done_6_amivrujEyduiFoi: 2811*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 2812*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 2813*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 2814*4757b351SPierre Pronchery vpxor %xmm12,%xmm4,%xmm4 2815*4757b351SPierre Pronchery vpxor %xmm13,%xmm5,%xmm5 2816*4757b351SPierre Pronchery vpxor %xmm14,%xmm6,%xmm6 2817*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 2818*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 2819*4757b351SPierre Pronchery vpxor %xmm0,%xmm2,%xmm2 2820*4757b351SPierre Pronchery vpxor %xmm0,%xmm3,%xmm3 2821*4757b351SPierre Pronchery vpxor %xmm0,%xmm4,%xmm4 2822*4757b351SPierre Pronchery vpxor %xmm0,%xmm5,%xmm5 2823*4757b351SPierre Pronchery vpxor %xmm0,%xmm6,%xmm6 2824*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 2825*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2826*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2827*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2828*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2829*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2830*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2831*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 2832*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2833*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2834*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2835*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2836*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2837*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2838*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 2839*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2840*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2841*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2842*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2843*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2844*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2845*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 2846*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2847*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2848*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2849*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2850*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2851*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2852*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 2853*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2854*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2855*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2856*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2857*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2858*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2859*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 2860*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2861*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2862*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2863*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2864*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2865*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2866*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 2867*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2868*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2869*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2870*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2871*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2872*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2873*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 2874*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2875*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2876*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2877*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2878*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2879*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2880*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 2881*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2882*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2883*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2884*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2885*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2886*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 2887*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 2888*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 2889*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm2,%xmm2 2890*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm3,%xmm3 2891*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm4,%xmm4 2892*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm5,%xmm5 2893*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm6,%xmm6 2894*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 2895*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 2896*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 2897*4757b351SPierre Pronchery vpxor %xmm12,%xmm4,%xmm4 2898*4757b351SPierre Pronchery vpxor %xmm13,%xmm5,%xmm5 2899*4757b351SPierre Pronchery vpxor %xmm14,%xmm6,%xmm6 2900*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 2901*4757b351SPierre Pronchery vmovdqu %xmm2,16(%rsi) 2902*4757b351SPierre Pronchery vmovdqu %xmm3,32(%rsi) 2903*4757b351SPierre Pronchery vmovdqu %xmm4,48(%rsi) 2904*4757b351SPierre Pronchery vmovdqu %xmm5,64(%rsi) 2905*4757b351SPierre Pronchery addq $0x60,%rsi 2906*4757b351SPierre Pronchery vmovdqa %xmm6,%xmm8 2907*4757b351SPierre Pronchery jmp .L_done_amivrujEyduiFoi 2908*4757b351SPierre Pronchery 2909*4757b351SPierre Pronchery.L_num_blocks_is_5_amivrujEyduiFoi: 2910*4757b351SPierre Pronchery vmovdqa 0(%rsp),%xmm9 2911*4757b351SPierre Pronchery movq 0(%rsp),%rax 2912*4757b351SPierre Pronchery movq 8(%rsp),%rbx 2913*4757b351SPierre Pronchery vmovdqu 0(%rdi),%xmm1 2914*4757b351SPierre Pronchery xorq %r11,%r11 2915*4757b351SPierre Pronchery shlq $1,%rax 2916*4757b351SPierre Pronchery adcq %rbx,%rbx 2917*4757b351SPierre Pronchery cmovcq %r10,%r11 2918*4757b351SPierre Pronchery xorq %r11,%rax 2919*4757b351SPierre Pronchery movq %rax,16(%rsp) 2920*4757b351SPierre Pronchery movq %rbx,16 + 8(%rsp) 2921*4757b351SPierre Pronchery vmovdqa 16(%rsp),%xmm10 2922*4757b351SPierre Pronchery vmovdqu 16(%rdi),%xmm2 2923*4757b351SPierre Pronchery xorq %r11,%r11 2924*4757b351SPierre Pronchery shlq $1,%rax 2925*4757b351SPierre Pronchery adcq %rbx,%rbx 2926*4757b351SPierre Pronchery cmovcq %r10,%r11 2927*4757b351SPierre Pronchery xorq %r11,%rax 2928*4757b351SPierre Pronchery movq %rax,32(%rsp) 2929*4757b351SPierre Pronchery movq %rbx,32 + 8(%rsp) 2930*4757b351SPierre Pronchery vmovdqa 32(%rsp),%xmm11 2931*4757b351SPierre Pronchery vmovdqu 32(%rdi),%xmm3 2932*4757b351SPierre Pronchery xorq %r11,%r11 2933*4757b351SPierre Pronchery shlq $1,%rax 2934*4757b351SPierre Pronchery adcq %rbx,%rbx 2935*4757b351SPierre Pronchery cmovcq %r10,%r11 2936*4757b351SPierre Pronchery xorq %r11,%rax 2937*4757b351SPierre Pronchery movq %rax,48(%rsp) 2938*4757b351SPierre Pronchery movq %rbx,48 + 8(%rsp) 2939*4757b351SPierre Pronchery vmovdqa 48(%rsp),%xmm12 2940*4757b351SPierre Pronchery vmovdqu 48(%rdi),%xmm4 2941*4757b351SPierre Pronchery xorq %r11,%r11 2942*4757b351SPierre Pronchery shlq $1,%rax 2943*4757b351SPierre Pronchery adcq %rbx,%rbx 2944*4757b351SPierre Pronchery cmovcq %r10,%r11 2945*4757b351SPierre Pronchery xorq %r11,%rax 2946*4757b351SPierre Pronchery movq %rax,64(%rsp) 2947*4757b351SPierre Pronchery movq %rbx,64 + 8(%rsp) 2948*4757b351SPierre Pronchery vmovdqa 64(%rsp),%xmm13 2949*4757b351SPierre Pronchery vmovdqu 64(%rdi),%xmm5 2950*4757b351SPierre Pronchery addq $0x50,%rdi 2951*4757b351SPierre Pronchery andq $0xf,%rdx 2952*4757b351SPierre Pronchery je .L_done_5_amivrujEyduiFoi 2953*4757b351SPierre Pronchery 2954*4757b351SPierre Pronchery.L_steal_cipher_5_amivrujEyduiFoi: 2955*4757b351SPierre Pronchery xorq %r11,%r11 2956*4757b351SPierre Pronchery shlq $1,%rax 2957*4757b351SPierre Pronchery adcq %rbx,%rbx 2958*4757b351SPierre Pronchery cmovcq %r10,%r11 2959*4757b351SPierre Pronchery xorq %r11,%rax 2960*4757b351SPierre Pronchery movq %rax,16(%rsp) 2961*4757b351SPierre Pronchery movq %rbx,24(%rsp) 2962*4757b351SPierre Pronchery vmovdqa64 %xmm13,%xmm14 2963*4757b351SPierre Pronchery vmovdqa 16(%rsp),%xmm13 2964*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 2965*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 2966*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 2967*4757b351SPierre Pronchery vpxor %xmm12,%xmm4,%xmm4 2968*4757b351SPierre Pronchery vpxor %xmm13,%xmm5,%xmm5 2969*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 2970*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 2971*4757b351SPierre Pronchery vpxor %xmm0,%xmm2,%xmm2 2972*4757b351SPierre Pronchery vpxor %xmm0,%xmm3,%xmm3 2973*4757b351SPierre Pronchery vpxor %xmm0,%xmm4,%xmm4 2974*4757b351SPierre Pronchery vpxor %xmm0,%xmm5,%xmm5 2975*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 2976*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2977*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2978*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2979*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2980*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2981*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 2982*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2983*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2984*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2985*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2986*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2987*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 2988*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2989*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2990*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2991*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2992*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2993*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 2994*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 2995*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 2996*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 2997*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 2998*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 2999*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 3000*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3001*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3002*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3003*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 3004*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 3005*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 3006*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3007*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3008*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3009*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 3010*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 3011*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 3012*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3013*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3014*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3015*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 3016*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 3017*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 3018*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3019*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3020*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3021*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 3022*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 3023*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 3024*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3025*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3026*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3027*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 3028*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 3029*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 3030*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 3031*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm2,%xmm2 3032*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm3,%xmm3 3033*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm4,%xmm4 3034*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm5,%xmm5 3035*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 3036*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 3037*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 3038*4757b351SPierre Pronchery vpxor %xmm12,%xmm4,%xmm4 3039*4757b351SPierre Pronchery vpxor %xmm13,%xmm5,%xmm5 3040*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 3041*4757b351SPierre Pronchery vmovdqu %xmm2,16(%rsi) 3042*4757b351SPierre Pronchery vmovdqu %xmm3,32(%rsi) 3043*4757b351SPierre Pronchery vmovdqu %xmm4,48(%rsi) 3044*4757b351SPierre Pronchery addq $0x50,%rsi 3045*4757b351SPierre Pronchery vmovdqa %xmm14,%xmm0 3046*4757b351SPierre Pronchery vmovdqa %xmm5,%xmm8 3047*4757b351SPierre Pronchery jmp .L_steal_cipher_amivrujEyduiFoi 3048*4757b351SPierre Pronchery 3049*4757b351SPierre Pronchery.L_done_5_amivrujEyduiFoi: 3050*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 3051*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 3052*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 3053*4757b351SPierre Pronchery vpxor %xmm12,%xmm4,%xmm4 3054*4757b351SPierre Pronchery vpxor %xmm13,%xmm5,%xmm5 3055*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 3056*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 3057*4757b351SPierre Pronchery vpxor %xmm0,%xmm2,%xmm2 3058*4757b351SPierre Pronchery vpxor %xmm0,%xmm3,%xmm3 3059*4757b351SPierre Pronchery vpxor %xmm0,%xmm4,%xmm4 3060*4757b351SPierre Pronchery vpxor %xmm0,%xmm5,%xmm5 3061*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 3062*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3063*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3064*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3065*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 3066*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 3067*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 3068*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3069*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3070*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3071*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 3072*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 3073*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 3074*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3075*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3076*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3077*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 3078*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 3079*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 3080*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3081*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3082*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3083*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 3084*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 3085*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 3086*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3087*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3088*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3089*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 3090*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 3091*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 3092*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3093*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3094*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3095*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 3096*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 3097*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 3098*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3099*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3100*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3101*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 3102*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 3103*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 3104*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3105*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3106*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3107*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 3108*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 3109*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 3110*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3111*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3112*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3113*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 3114*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 3115*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 3116*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 3117*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm2,%xmm2 3118*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm3,%xmm3 3119*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm4,%xmm4 3120*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm5,%xmm5 3121*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 3122*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 3123*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 3124*4757b351SPierre Pronchery vpxor %xmm12,%xmm4,%xmm4 3125*4757b351SPierre Pronchery vpxor %xmm13,%xmm5,%xmm5 3126*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 3127*4757b351SPierre Pronchery vmovdqu %xmm2,16(%rsi) 3128*4757b351SPierre Pronchery vmovdqu %xmm3,32(%rsi) 3129*4757b351SPierre Pronchery vmovdqu %xmm4,48(%rsi) 3130*4757b351SPierre Pronchery addq $0x50,%rsi 3131*4757b351SPierre Pronchery vmovdqa %xmm5,%xmm8 3132*4757b351SPierre Pronchery jmp .L_done_amivrujEyduiFoi 3133*4757b351SPierre Pronchery 3134*4757b351SPierre Pronchery.L_num_blocks_is_4_amivrujEyduiFoi: 3135*4757b351SPierre Pronchery vmovdqa 0(%rsp),%xmm9 3136*4757b351SPierre Pronchery movq 0(%rsp),%rax 3137*4757b351SPierre Pronchery movq 8(%rsp),%rbx 3138*4757b351SPierre Pronchery vmovdqu 0(%rdi),%xmm1 3139*4757b351SPierre Pronchery xorq %r11,%r11 3140*4757b351SPierre Pronchery shlq $1,%rax 3141*4757b351SPierre Pronchery adcq %rbx,%rbx 3142*4757b351SPierre Pronchery cmovcq %r10,%r11 3143*4757b351SPierre Pronchery xorq %r11,%rax 3144*4757b351SPierre Pronchery movq %rax,16(%rsp) 3145*4757b351SPierre Pronchery movq %rbx,16 + 8(%rsp) 3146*4757b351SPierre Pronchery vmovdqa 16(%rsp),%xmm10 3147*4757b351SPierre Pronchery vmovdqu 16(%rdi),%xmm2 3148*4757b351SPierre Pronchery xorq %r11,%r11 3149*4757b351SPierre Pronchery shlq $1,%rax 3150*4757b351SPierre Pronchery adcq %rbx,%rbx 3151*4757b351SPierre Pronchery cmovcq %r10,%r11 3152*4757b351SPierre Pronchery xorq %r11,%rax 3153*4757b351SPierre Pronchery movq %rax,32(%rsp) 3154*4757b351SPierre Pronchery movq %rbx,32 + 8(%rsp) 3155*4757b351SPierre Pronchery vmovdqa 32(%rsp),%xmm11 3156*4757b351SPierre Pronchery vmovdqu 32(%rdi),%xmm3 3157*4757b351SPierre Pronchery xorq %r11,%r11 3158*4757b351SPierre Pronchery shlq $1,%rax 3159*4757b351SPierre Pronchery adcq %rbx,%rbx 3160*4757b351SPierre Pronchery cmovcq %r10,%r11 3161*4757b351SPierre Pronchery xorq %r11,%rax 3162*4757b351SPierre Pronchery movq %rax,48(%rsp) 3163*4757b351SPierre Pronchery movq %rbx,48 + 8(%rsp) 3164*4757b351SPierre Pronchery vmovdqa 48(%rsp),%xmm12 3165*4757b351SPierre Pronchery vmovdqu 48(%rdi),%xmm4 3166*4757b351SPierre Pronchery addq $0x40,%rdi 3167*4757b351SPierre Pronchery andq $0xf,%rdx 3168*4757b351SPierre Pronchery je .L_done_4_amivrujEyduiFoi 3169*4757b351SPierre Pronchery 3170*4757b351SPierre Pronchery.L_steal_cipher_4_amivrujEyduiFoi: 3171*4757b351SPierre Pronchery xorq %r11,%r11 3172*4757b351SPierre Pronchery shlq $1,%rax 3173*4757b351SPierre Pronchery adcq %rbx,%rbx 3174*4757b351SPierre Pronchery cmovcq %r10,%r11 3175*4757b351SPierre Pronchery xorq %r11,%rax 3176*4757b351SPierre Pronchery movq %rax,16(%rsp) 3177*4757b351SPierre Pronchery movq %rbx,24(%rsp) 3178*4757b351SPierre Pronchery vmovdqa64 %xmm12,%xmm13 3179*4757b351SPierre Pronchery vmovdqa 16(%rsp),%xmm12 3180*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 3181*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 3182*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 3183*4757b351SPierre Pronchery vpxor %xmm12,%xmm4,%xmm4 3184*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 3185*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 3186*4757b351SPierre Pronchery vpxor %xmm0,%xmm2,%xmm2 3187*4757b351SPierre Pronchery vpxor %xmm0,%xmm3,%xmm3 3188*4757b351SPierre Pronchery vpxor %xmm0,%xmm4,%xmm4 3189*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 3190*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3191*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3192*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3193*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 3194*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 3195*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3196*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3197*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3198*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 3199*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 3200*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3201*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3202*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3203*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 3204*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 3205*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3206*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3207*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3208*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 3209*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 3210*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3211*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3212*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3213*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 3214*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 3215*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3216*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3217*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3218*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 3219*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 3220*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3221*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3222*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3223*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 3224*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 3225*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3226*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3227*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3228*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 3229*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 3230*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3231*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3232*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3233*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 3234*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 3235*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 3236*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm2,%xmm2 3237*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm3,%xmm3 3238*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm4,%xmm4 3239*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 3240*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 3241*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 3242*4757b351SPierre Pronchery vpxor %xmm12,%xmm4,%xmm4 3243*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 3244*4757b351SPierre Pronchery vmovdqu %xmm2,16(%rsi) 3245*4757b351SPierre Pronchery vmovdqu %xmm3,32(%rsi) 3246*4757b351SPierre Pronchery addq $0x40,%rsi 3247*4757b351SPierre Pronchery vmovdqa %xmm13,%xmm0 3248*4757b351SPierre Pronchery vmovdqa %xmm4,%xmm8 3249*4757b351SPierre Pronchery jmp .L_steal_cipher_amivrujEyduiFoi 3250*4757b351SPierre Pronchery 3251*4757b351SPierre Pronchery.L_done_4_amivrujEyduiFoi: 3252*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 3253*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 3254*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 3255*4757b351SPierre Pronchery vpxor %xmm12,%xmm4,%xmm4 3256*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 3257*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 3258*4757b351SPierre Pronchery vpxor %xmm0,%xmm2,%xmm2 3259*4757b351SPierre Pronchery vpxor %xmm0,%xmm3,%xmm3 3260*4757b351SPierre Pronchery vpxor %xmm0,%xmm4,%xmm4 3261*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 3262*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3263*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3264*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3265*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 3266*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 3267*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3268*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3269*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3270*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 3271*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 3272*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3273*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3274*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3275*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 3276*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 3277*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3278*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3279*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3280*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 3281*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 3282*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3283*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3284*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3285*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 3286*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 3287*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3288*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3289*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3290*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 3291*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 3292*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3293*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3294*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3295*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 3296*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 3297*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3298*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3299*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3300*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 3301*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 3302*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3303*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3304*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3305*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 3306*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 3307*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 3308*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm2,%xmm2 3309*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm3,%xmm3 3310*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm4,%xmm4 3311*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 3312*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 3313*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 3314*4757b351SPierre Pronchery vpxor %xmm12,%xmm4,%xmm4 3315*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 3316*4757b351SPierre Pronchery vmovdqu %xmm2,16(%rsi) 3317*4757b351SPierre Pronchery vmovdqu %xmm3,32(%rsi) 3318*4757b351SPierre Pronchery addq $0x40,%rsi 3319*4757b351SPierre Pronchery vmovdqa %xmm4,%xmm8 3320*4757b351SPierre Pronchery jmp .L_done_amivrujEyduiFoi 3321*4757b351SPierre Pronchery 3322*4757b351SPierre Pronchery.L_num_blocks_is_3_amivrujEyduiFoi: 3323*4757b351SPierre Pronchery vmovdqa 0(%rsp),%xmm9 3324*4757b351SPierre Pronchery movq 0(%rsp),%rax 3325*4757b351SPierre Pronchery movq 8(%rsp),%rbx 3326*4757b351SPierre Pronchery vmovdqu 0(%rdi),%xmm1 3327*4757b351SPierre Pronchery xorq %r11,%r11 3328*4757b351SPierre Pronchery shlq $1,%rax 3329*4757b351SPierre Pronchery adcq %rbx,%rbx 3330*4757b351SPierre Pronchery cmovcq %r10,%r11 3331*4757b351SPierre Pronchery xorq %r11,%rax 3332*4757b351SPierre Pronchery movq %rax,16(%rsp) 3333*4757b351SPierre Pronchery movq %rbx,16 + 8(%rsp) 3334*4757b351SPierre Pronchery vmovdqa 16(%rsp),%xmm10 3335*4757b351SPierre Pronchery vmovdqu 16(%rdi),%xmm2 3336*4757b351SPierre Pronchery xorq %r11,%r11 3337*4757b351SPierre Pronchery shlq $1,%rax 3338*4757b351SPierre Pronchery adcq %rbx,%rbx 3339*4757b351SPierre Pronchery cmovcq %r10,%r11 3340*4757b351SPierre Pronchery xorq %r11,%rax 3341*4757b351SPierre Pronchery movq %rax,32(%rsp) 3342*4757b351SPierre Pronchery movq %rbx,32 + 8(%rsp) 3343*4757b351SPierre Pronchery vmovdqa 32(%rsp),%xmm11 3344*4757b351SPierre Pronchery vmovdqu 32(%rdi),%xmm3 3345*4757b351SPierre Pronchery addq $0x30,%rdi 3346*4757b351SPierre Pronchery andq $0xf,%rdx 3347*4757b351SPierre Pronchery je .L_done_3_amivrujEyduiFoi 3348*4757b351SPierre Pronchery 3349*4757b351SPierre Pronchery.L_steal_cipher_3_amivrujEyduiFoi: 3350*4757b351SPierre Pronchery xorq %r11,%r11 3351*4757b351SPierre Pronchery shlq $1,%rax 3352*4757b351SPierre Pronchery adcq %rbx,%rbx 3353*4757b351SPierre Pronchery cmovcq %r10,%r11 3354*4757b351SPierre Pronchery xorq %r11,%rax 3355*4757b351SPierre Pronchery movq %rax,16(%rsp) 3356*4757b351SPierre Pronchery movq %rbx,24(%rsp) 3357*4757b351SPierre Pronchery vmovdqa64 %xmm11,%xmm12 3358*4757b351SPierre Pronchery vmovdqa 16(%rsp),%xmm11 3359*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 3360*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 3361*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 3362*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 3363*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 3364*4757b351SPierre Pronchery vpxor %xmm0,%xmm2,%xmm2 3365*4757b351SPierre Pronchery vpxor %xmm0,%xmm3,%xmm3 3366*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 3367*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3368*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3369*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3370*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 3371*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3372*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3373*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3374*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 3375*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3376*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3377*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3378*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 3379*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3380*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3381*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3382*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 3383*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3384*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3385*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3386*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 3387*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3388*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3389*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3390*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 3391*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3392*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3393*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3394*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 3395*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3396*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3397*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3398*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 3399*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3400*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3401*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3402*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 3403*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 3404*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm2,%xmm2 3405*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm3,%xmm3 3406*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 3407*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 3408*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 3409*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 3410*4757b351SPierre Pronchery vmovdqu %xmm2,16(%rsi) 3411*4757b351SPierre Pronchery addq $0x30,%rsi 3412*4757b351SPierre Pronchery vmovdqa %xmm12,%xmm0 3413*4757b351SPierre Pronchery vmovdqa %xmm3,%xmm8 3414*4757b351SPierre Pronchery jmp .L_steal_cipher_amivrujEyduiFoi 3415*4757b351SPierre Pronchery 3416*4757b351SPierre Pronchery.L_done_3_amivrujEyduiFoi: 3417*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 3418*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 3419*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 3420*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 3421*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 3422*4757b351SPierre Pronchery vpxor %xmm0,%xmm2,%xmm2 3423*4757b351SPierre Pronchery vpxor %xmm0,%xmm3,%xmm3 3424*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 3425*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3426*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3427*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3428*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 3429*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3430*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3431*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3432*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 3433*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3434*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3435*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3436*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 3437*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3438*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3439*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3440*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 3441*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3442*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3443*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3444*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 3445*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3446*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3447*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3448*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 3449*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3450*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3451*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3452*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 3453*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3454*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3455*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3456*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 3457*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3458*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3459*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 3460*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 3461*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 3462*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm2,%xmm2 3463*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm3,%xmm3 3464*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 3465*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 3466*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 3467*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 3468*4757b351SPierre Pronchery vmovdqu %xmm2,16(%rsi) 3469*4757b351SPierre Pronchery addq $0x30,%rsi 3470*4757b351SPierre Pronchery vmovdqa %xmm3,%xmm8 3471*4757b351SPierre Pronchery jmp .L_done_amivrujEyduiFoi 3472*4757b351SPierre Pronchery 3473*4757b351SPierre Pronchery.L_num_blocks_is_2_amivrujEyduiFoi: 3474*4757b351SPierre Pronchery vmovdqa 0(%rsp),%xmm9 3475*4757b351SPierre Pronchery movq 0(%rsp),%rax 3476*4757b351SPierre Pronchery movq 8(%rsp),%rbx 3477*4757b351SPierre Pronchery vmovdqu 0(%rdi),%xmm1 3478*4757b351SPierre Pronchery xorq %r11,%r11 3479*4757b351SPierre Pronchery shlq $1,%rax 3480*4757b351SPierre Pronchery adcq %rbx,%rbx 3481*4757b351SPierre Pronchery cmovcq %r10,%r11 3482*4757b351SPierre Pronchery xorq %r11,%rax 3483*4757b351SPierre Pronchery movq %rax,16(%rsp) 3484*4757b351SPierre Pronchery movq %rbx,16 + 8(%rsp) 3485*4757b351SPierre Pronchery vmovdqa 16(%rsp),%xmm10 3486*4757b351SPierre Pronchery vmovdqu 16(%rdi),%xmm2 3487*4757b351SPierre Pronchery addq $0x20,%rdi 3488*4757b351SPierre Pronchery andq $0xf,%rdx 3489*4757b351SPierre Pronchery je .L_done_2_amivrujEyduiFoi 3490*4757b351SPierre Pronchery 3491*4757b351SPierre Pronchery.L_steal_cipher_2_amivrujEyduiFoi: 3492*4757b351SPierre Pronchery xorq %r11,%r11 3493*4757b351SPierre Pronchery shlq $1,%rax 3494*4757b351SPierre Pronchery adcq %rbx,%rbx 3495*4757b351SPierre Pronchery cmovcq %r10,%r11 3496*4757b351SPierre Pronchery xorq %r11,%rax 3497*4757b351SPierre Pronchery movq %rax,16(%rsp) 3498*4757b351SPierre Pronchery movq %rbx,24(%rsp) 3499*4757b351SPierre Pronchery vmovdqa64 %xmm10,%xmm11 3500*4757b351SPierre Pronchery vmovdqa 16(%rsp),%xmm10 3501*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 3502*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 3503*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 3504*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 3505*4757b351SPierre Pronchery vpxor %xmm0,%xmm2,%xmm2 3506*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 3507*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3508*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3509*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 3510*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3511*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3512*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 3513*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3514*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3515*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 3516*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3517*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3518*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 3519*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3520*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3521*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 3522*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3523*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3524*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 3525*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3526*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3527*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 3528*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3529*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3530*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 3531*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3532*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3533*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 3534*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 3535*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm2,%xmm2 3536*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 3537*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 3538*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 3539*4757b351SPierre Pronchery addq $0x20,%rsi 3540*4757b351SPierre Pronchery vmovdqa %xmm11,%xmm0 3541*4757b351SPierre Pronchery vmovdqa %xmm2,%xmm8 3542*4757b351SPierre Pronchery jmp .L_steal_cipher_amivrujEyduiFoi 3543*4757b351SPierre Pronchery 3544*4757b351SPierre Pronchery.L_done_2_amivrujEyduiFoi: 3545*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 3546*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 3547*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 3548*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 3549*4757b351SPierre Pronchery vpxor %xmm0,%xmm2,%xmm2 3550*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 3551*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3552*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3553*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 3554*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3555*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3556*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 3557*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3558*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3559*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 3560*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3561*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3562*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 3563*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3564*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3565*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 3566*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3567*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3568*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 3569*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3570*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3571*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 3572*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3573*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3574*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 3575*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3576*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 3577*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 3578*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 3579*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm2,%xmm2 3580*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 3581*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 3582*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 3583*4757b351SPierre Pronchery addq $0x20,%rsi 3584*4757b351SPierre Pronchery vmovdqa %xmm2,%xmm8 3585*4757b351SPierre Pronchery jmp .L_done_amivrujEyduiFoi 3586*4757b351SPierre Pronchery 3587*4757b351SPierre Pronchery.L_num_blocks_is_1_amivrujEyduiFoi: 3588*4757b351SPierre Pronchery vmovdqa 0(%rsp),%xmm9 3589*4757b351SPierre Pronchery movq 0(%rsp),%rax 3590*4757b351SPierre Pronchery movq 8(%rsp),%rbx 3591*4757b351SPierre Pronchery vmovdqu 0(%rdi),%xmm1 3592*4757b351SPierre Pronchery addq $0x10,%rdi 3593*4757b351SPierre Pronchery andq $0xf,%rdx 3594*4757b351SPierre Pronchery je .L_done_1_amivrujEyduiFoi 3595*4757b351SPierre Pronchery 3596*4757b351SPierre Pronchery.L_steal_cipher_1_amivrujEyduiFoi: 3597*4757b351SPierre Pronchery xorq %r11,%r11 3598*4757b351SPierre Pronchery shlq $1,%rax 3599*4757b351SPierre Pronchery adcq %rbx,%rbx 3600*4757b351SPierre Pronchery cmovcq %r10,%r11 3601*4757b351SPierre Pronchery xorq %r11,%rax 3602*4757b351SPierre Pronchery movq %rax,16(%rsp) 3603*4757b351SPierre Pronchery movq %rbx,24(%rsp) 3604*4757b351SPierre Pronchery vmovdqa64 %xmm9,%xmm10 3605*4757b351SPierre Pronchery vmovdqa 16(%rsp),%xmm9 3606*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 3607*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 3608*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 3609*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 3610*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3611*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 3612*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3613*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 3614*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3615*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 3616*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3617*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 3618*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3619*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 3620*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3621*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 3622*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3623*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 3624*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3625*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 3626*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3627*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 3628*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 3629*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 3630*4757b351SPierre Pronchery addq $0x10,%rsi 3631*4757b351SPierre Pronchery vmovdqa %xmm10,%xmm0 3632*4757b351SPierre Pronchery vmovdqa %xmm1,%xmm8 3633*4757b351SPierre Pronchery jmp .L_steal_cipher_amivrujEyduiFoi 3634*4757b351SPierre Pronchery 3635*4757b351SPierre Pronchery.L_done_1_amivrujEyduiFoi: 3636*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 3637*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 3638*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 3639*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 3640*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3641*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 3642*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3643*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 3644*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3645*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 3646*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3647*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 3648*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3649*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 3650*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3651*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 3652*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3653*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 3654*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3655*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 3656*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 3657*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 3658*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 3659*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 3660*4757b351SPierre Pronchery addq $0x10,%rsi 3661*4757b351SPierre Pronchery vmovdqa %xmm1,%xmm8 3662*4757b351SPierre Pronchery jmp .L_done_amivrujEyduiFoi 3663*4757b351SPierre Pronchery.cfi_endproc 3664*4757b351SPierre Pronchery.globl aesni_xts_256_encrypt_avx512 3665*4757b351SPierre Pronchery.hidden aesni_xts_256_encrypt_avx512 3666*4757b351SPierre Pronchery.type aesni_xts_256_encrypt_avx512,@function 3667*4757b351SPierre Pronchery.align 32 3668*4757b351SPierre Proncheryaesni_xts_256_encrypt_avx512: 3669*4757b351SPierre Pronchery.cfi_startproc 3670*4757b351SPierre Pronchery.byte 243,15,30,250 3671*4757b351SPierre Pronchery pushq %rbp 3672*4757b351SPierre Pronchery movq %rsp,%rbp 3673*4757b351SPierre Pronchery subq $136,%rsp 3674*4757b351SPierre Pronchery andq $0xffffffffffffffc0,%rsp 3675*4757b351SPierre Pronchery movq %rbx,128(%rsp) 3676*4757b351SPierre Pronchery movq $0x87,%r10 3677*4757b351SPierre Pronchery vmovdqu (%r9),%xmm1 3678*4757b351SPierre Pronchery vpxor (%r8),%xmm1,%xmm1 3679*4757b351SPierre Pronchery vaesenc 16(%r8),%xmm1,%xmm1 3680*4757b351SPierre Pronchery vaesenc 32(%r8),%xmm1,%xmm1 3681*4757b351SPierre Pronchery vaesenc 48(%r8),%xmm1,%xmm1 3682*4757b351SPierre Pronchery vaesenc 64(%r8),%xmm1,%xmm1 3683*4757b351SPierre Pronchery vaesenc 80(%r8),%xmm1,%xmm1 3684*4757b351SPierre Pronchery vaesenc 96(%r8),%xmm1,%xmm1 3685*4757b351SPierre Pronchery vaesenc 112(%r8),%xmm1,%xmm1 3686*4757b351SPierre Pronchery vaesenc 128(%r8),%xmm1,%xmm1 3687*4757b351SPierre Pronchery vaesenc 144(%r8),%xmm1,%xmm1 3688*4757b351SPierre Pronchery vaesenc 160(%r8),%xmm1,%xmm1 3689*4757b351SPierre Pronchery vaesenc 176(%r8),%xmm1,%xmm1 3690*4757b351SPierre Pronchery vaesenc 192(%r8),%xmm1,%xmm1 3691*4757b351SPierre Pronchery vaesenc 208(%r8),%xmm1,%xmm1 3692*4757b351SPierre Pronchery vaesenclast 224(%r8),%xmm1,%xmm1 3693*4757b351SPierre Pronchery vmovdqa %xmm1,(%rsp) 3694*4757b351SPierre Pronchery 3695*4757b351SPierre Pronchery cmpq $0x80,%rdx 3696*4757b351SPierre Pronchery jl .L_less_than_128_bytes_wcpqaDvsGlbjGoe 3697*4757b351SPierre Pronchery vpbroadcastq %r10,%zmm25 3698*4757b351SPierre Pronchery cmpq $0x100,%rdx 3699*4757b351SPierre Pronchery jge .L_start_by16_wcpqaDvsGlbjGoe 3700*4757b351SPierre Pronchery cmpq $0x80,%rdx 3701*4757b351SPierre Pronchery jge .L_start_by8_wcpqaDvsGlbjGoe 3702*4757b351SPierre Pronchery 3703*4757b351SPierre Pronchery.L_do_n_blocks_wcpqaDvsGlbjGoe: 3704*4757b351SPierre Pronchery cmpq $0x0,%rdx 3705*4757b351SPierre Pronchery je .L_ret_wcpqaDvsGlbjGoe 3706*4757b351SPierre Pronchery cmpq $0x70,%rdx 3707*4757b351SPierre Pronchery jge .L_remaining_num_blocks_is_7_wcpqaDvsGlbjGoe 3708*4757b351SPierre Pronchery cmpq $0x60,%rdx 3709*4757b351SPierre Pronchery jge .L_remaining_num_blocks_is_6_wcpqaDvsGlbjGoe 3710*4757b351SPierre Pronchery cmpq $0x50,%rdx 3711*4757b351SPierre Pronchery jge .L_remaining_num_blocks_is_5_wcpqaDvsGlbjGoe 3712*4757b351SPierre Pronchery cmpq $0x40,%rdx 3713*4757b351SPierre Pronchery jge .L_remaining_num_blocks_is_4_wcpqaDvsGlbjGoe 3714*4757b351SPierre Pronchery cmpq $0x30,%rdx 3715*4757b351SPierre Pronchery jge .L_remaining_num_blocks_is_3_wcpqaDvsGlbjGoe 3716*4757b351SPierre Pronchery cmpq $0x20,%rdx 3717*4757b351SPierre Pronchery jge .L_remaining_num_blocks_is_2_wcpqaDvsGlbjGoe 3718*4757b351SPierre Pronchery cmpq $0x10,%rdx 3719*4757b351SPierre Pronchery jge .L_remaining_num_blocks_is_1_wcpqaDvsGlbjGoe 3720*4757b351SPierre Pronchery vmovdqa %xmm0,%xmm8 3721*4757b351SPierre Pronchery vmovdqa %xmm9,%xmm0 3722*4757b351SPierre Pronchery jmp .L_steal_cipher_wcpqaDvsGlbjGoe 3723*4757b351SPierre Pronchery 3724*4757b351SPierre Pronchery.L_remaining_num_blocks_is_7_wcpqaDvsGlbjGoe: 3725*4757b351SPierre Pronchery movq $0x0000ffffffffffff,%r8 3726*4757b351SPierre Pronchery kmovq %r8,%k1 3727*4757b351SPierre Pronchery vmovdqu8 (%rdi),%zmm1 3728*4757b351SPierre Pronchery vmovdqu8 64(%rdi),%zmm2{%k1} 3729*4757b351SPierre Pronchery addq $0x70,%rdi 3730*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 3731*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm9,%zmm1 3732*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm10,%zmm2 3733*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 3734*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3735*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3736*4757b351SPierre Pronchery 3737*4757b351SPierre Pronchery 3738*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 3739*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3740*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3741*4757b351SPierre Pronchery 3742*4757b351SPierre Pronchery 3743*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 3744*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3745*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3746*4757b351SPierre Pronchery 3747*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 3748*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3749*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3750*4757b351SPierre Pronchery 3751*4757b351SPierre Pronchery 3752*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 3753*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3754*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3755*4757b351SPierre Pronchery 3756*4757b351SPierre Pronchery 3757*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 3758*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3759*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3760*4757b351SPierre Pronchery 3761*4757b351SPierre Pronchery 3762*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 3763*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3764*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3765*4757b351SPierre Pronchery 3766*4757b351SPierre Pronchery 3767*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 3768*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3769*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3770*4757b351SPierre Pronchery 3771*4757b351SPierre Pronchery 3772*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 3773*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3774*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3775*4757b351SPierre Pronchery 3776*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 3777*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3778*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3779*4757b351SPierre Pronchery 3780*4757b351SPierre Pronchery 3781*4757b351SPierre Pronchery vbroadcasti32x4 176(%rcx),%zmm0 3782*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3783*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3784*4757b351SPierre Pronchery 3785*4757b351SPierre Pronchery 3786*4757b351SPierre Pronchery vbroadcasti32x4 192(%rcx),%zmm0 3787*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3788*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3789*4757b351SPierre Pronchery 3790*4757b351SPierre Pronchery 3791*4757b351SPierre Pronchery vbroadcasti32x4 208(%rcx),%zmm0 3792*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3793*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3794*4757b351SPierre Pronchery 3795*4757b351SPierre Pronchery 3796*4757b351SPierre Pronchery vbroadcasti32x4 224(%rcx),%zmm0 3797*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm1,%zmm1 3798*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm2,%zmm2 3799*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 3800*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 3801*4757b351SPierre Pronchery vmovdqu8 %zmm1,(%rsi) 3802*4757b351SPierre Pronchery vmovdqu8 %zmm2,64(%rsi){%k1} 3803*4757b351SPierre Pronchery addq $0x70,%rsi 3804*4757b351SPierre Pronchery vextracti32x4 $0x2,%zmm2,%xmm8 3805*4757b351SPierre Pronchery vextracti32x4 $0x3,%zmm10,%xmm0 3806*4757b351SPierre Pronchery andq $0xf,%rdx 3807*4757b351SPierre Pronchery je .L_ret_wcpqaDvsGlbjGoe 3808*4757b351SPierre Pronchery jmp .L_steal_cipher_wcpqaDvsGlbjGoe 3809*4757b351SPierre Pronchery 3810*4757b351SPierre Pronchery.L_remaining_num_blocks_is_6_wcpqaDvsGlbjGoe: 3811*4757b351SPierre Pronchery vmovdqu8 (%rdi),%zmm1 3812*4757b351SPierre Pronchery vmovdqu8 64(%rdi),%ymm2 3813*4757b351SPierre Pronchery addq $0x60,%rdi 3814*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 3815*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm9,%zmm1 3816*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm10,%zmm2 3817*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 3818*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3819*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3820*4757b351SPierre Pronchery 3821*4757b351SPierre Pronchery 3822*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 3823*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3824*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3825*4757b351SPierre Pronchery 3826*4757b351SPierre Pronchery 3827*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 3828*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3829*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3830*4757b351SPierre Pronchery 3831*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 3832*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3833*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3834*4757b351SPierre Pronchery 3835*4757b351SPierre Pronchery 3836*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 3837*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3838*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3839*4757b351SPierre Pronchery 3840*4757b351SPierre Pronchery 3841*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 3842*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3843*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3844*4757b351SPierre Pronchery 3845*4757b351SPierre Pronchery 3846*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 3847*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3848*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3849*4757b351SPierre Pronchery 3850*4757b351SPierre Pronchery 3851*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 3852*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3853*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3854*4757b351SPierre Pronchery 3855*4757b351SPierre Pronchery 3856*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 3857*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3858*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3859*4757b351SPierre Pronchery 3860*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 3861*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3862*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3863*4757b351SPierre Pronchery 3864*4757b351SPierre Pronchery 3865*4757b351SPierre Pronchery vbroadcasti32x4 176(%rcx),%zmm0 3866*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3867*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3868*4757b351SPierre Pronchery 3869*4757b351SPierre Pronchery 3870*4757b351SPierre Pronchery vbroadcasti32x4 192(%rcx),%zmm0 3871*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3872*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3873*4757b351SPierre Pronchery 3874*4757b351SPierre Pronchery 3875*4757b351SPierre Pronchery vbroadcasti32x4 208(%rcx),%zmm0 3876*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3877*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3878*4757b351SPierre Pronchery 3879*4757b351SPierre Pronchery 3880*4757b351SPierre Pronchery vbroadcasti32x4 224(%rcx),%zmm0 3881*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm1,%zmm1 3882*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm2,%zmm2 3883*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 3884*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 3885*4757b351SPierre Pronchery vmovdqu8 %zmm1,(%rsi) 3886*4757b351SPierre Pronchery vmovdqu8 %ymm2,64(%rsi) 3887*4757b351SPierre Pronchery addq $0x60,%rsi 3888*4757b351SPierre Pronchery vextracti32x4 $0x1,%zmm2,%xmm8 3889*4757b351SPierre Pronchery vextracti32x4 $0x2,%zmm10,%xmm0 3890*4757b351SPierre Pronchery andq $0xf,%rdx 3891*4757b351SPierre Pronchery je .L_ret_wcpqaDvsGlbjGoe 3892*4757b351SPierre Pronchery jmp .L_steal_cipher_wcpqaDvsGlbjGoe 3893*4757b351SPierre Pronchery 3894*4757b351SPierre Pronchery.L_remaining_num_blocks_is_5_wcpqaDvsGlbjGoe: 3895*4757b351SPierre Pronchery vmovdqu8 (%rdi),%zmm1 3896*4757b351SPierre Pronchery vmovdqu 64(%rdi),%xmm2 3897*4757b351SPierre Pronchery addq $0x50,%rdi 3898*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 3899*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm9,%zmm1 3900*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm10,%zmm2 3901*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 3902*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3903*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3904*4757b351SPierre Pronchery 3905*4757b351SPierre Pronchery 3906*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 3907*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3908*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3909*4757b351SPierre Pronchery 3910*4757b351SPierre Pronchery 3911*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 3912*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3913*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3914*4757b351SPierre Pronchery 3915*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 3916*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3917*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3918*4757b351SPierre Pronchery 3919*4757b351SPierre Pronchery 3920*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 3921*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3922*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3923*4757b351SPierre Pronchery 3924*4757b351SPierre Pronchery 3925*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 3926*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3927*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3928*4757b351SPierre Pronchery 3929*4757b351SPierre Pronchery 3930*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 3931*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3932*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3933*4757b351SPierre Pronchery 3934*4757b351SPierre Pronchery 3935*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 3936*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3937*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3938*4757b351SPierre Pronchery 3939*4757b351SPierre Pronchery 3940*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 3941*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3942*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3943*4757b351SPierre Pronchery 3944*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 3945*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3946*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3947*4757b351SPierre Pronchery 3948*4757b351SPierre Pronchery 3949*4757b351SPierre Pronchery vbroadcasti32x4 176(%rcx),%zmm0 3950*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3951*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3952*4757b351SPierre Pronchery 3953*4757b351SPierre Pronchery 3954*4757b351SPierre Pronchery vbroadcasti32x4 192(%rcx),%zmm0 3955*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3956*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3957*4757b351SPierre Pronchery 3958*4757b351SPierre Pronchery 3959*4757b351SPierre Pronchery vbroadcasti32x4 208(%rcx),%zmm0 3960*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3961*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 3962*4757b351SPierre Pronchery 3963*4757b351SPierre Pronchery 3964*4757b351SPierre Pronchery vbroadcasti32x4 224(%rcx),%zmm0 3965*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm1,%zmm1 3966*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm2,%zmm2 3967*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 3968*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 3969*4757b351SPierre Pronchery vmovdqu8 %zmm1,(%rsi) 3970*4757b351SPierre Pronchery vmovdqu %xmm2,64(%rsi) 3971*4757b351SPierre Pronchery addq $0x50,%rsi 3972*4757b351SPierre Pronchery vmovdqa %xmm2,%xmm8 3973*4757b351SPierre Pronchery vextracti32x4 $0x1,%zmm10,%xmm0 3974*4757b351SPierre Pronchery andq $0xf,%rdx 3975*4757b351SPierre Pronchery je .L_ret_wcpqaDvsGlbjGoe 3976*4757b351SPierre Pronchery jmp .L_steal_cipher_wcpqaDvsGlbjGoe 3977*4757b351SPierre Pronchery 3978*4757b351SPierre Pronchery.L_remaining_num_blocks_is_4_wcpqaDvsGlbjGoe: 3979*4757b351SPierre Pronchery vmovdqu8 (%rdi),%zmm1 3980*4757b351SPierre Pronchery addq $0x40,%rdi 3981*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 3982*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm9,%zmm1 3983*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 3984*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3985*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 3986*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3987*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 3988*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3989*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 3990*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3991*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 3992*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3993*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 3994*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3995*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 3996*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3997*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 3998*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 3999*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 4000*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4001*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 4002*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4003*4757b351SPierre Pronchery vbroadcasti32x4 176(%rcx),%zmm0 4004*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4005*4757b351SPierre Pronchery vbroadcasti32x4 192(%rcx),%zmm0 4006*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4007*4757b351SPierre Pronchery vbroadcasti32x4 208(%rcx),%zmm0 4008*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4009*4757b351SPierre Pronchery vbroadcasti32x4 224(%rcx),%zmm0 4010*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm1,%zmm1 4011*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 4012*4757b351SPierre Pronchery vmovdqu8 %zmm1,(%rsi) 4013*4757b351SPierre Pronchery addq $0x40,%rsi 4014*4757b351SPierre Pronchery vextracti32x4 $0x3,%zmm1,%xmm8 4015*4757b351SPierre Pronchery vmovdqa64 %xmm10,%xmm0 4016*4757b351SPierre Pronchery andq $0xf,%rdx 4017*4757b351SPierre Pronchery je .L_ret_wcpqaDvsGlbjGoe 4018*4757b351SPierre Pronchery jmp .L_steal_cipher_wcpqaDvsGlbjGoe 4019*4757b351SPierre Pronchery.L_remaining_num_blocks_is_3_wcpqaDvsGlbjGoe: 4020*4757b351SPierre Pronchery movq $-1,%r8 4021*4757b351SPierre Pronchery shrq $0x10,%r8 4022*4757b351SPierre Pronchery kmovq %r8,%k1 4023*4757b351SPierre Pronchery vmovdqu8 (%rdi),%zmm1{%k1} 4024*4757b351SPierre Pronchery addq $0x30,%rdi 4025*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 4026*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm9,%zmm1 4027*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 4028*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4029*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 4030*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4031*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 4032*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4033*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 4034*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4035*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 4036*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4037*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 4038*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4039*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 4040*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4041*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 4042*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4043*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 4044*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4045*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 4046*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4047*4757b351SPierre Pronchery vbroadcasti32x4 176(%rcx),%zmm0 4048*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4049*4757b351SPierre Pronchery vbroadcasti32x4 192(%rcx),%zmm0 4050*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4051*4757b351SPierre Pronchery vbroadcasti32x4 208(%rcx),%zmm0 4052*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4053*4757b351SPierre Pronchery vbroadcasti32x4 224(%rcx),%zmm0 4054*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm1,%zmm1 4055*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 4056*4757b351SPierre Pronchery vmovdqu8 %zmm1,(%rsi){%k1} 4057*4757b351SPierre Pronchery addq $0x30,%rsi 4058*4757b351SPierre Pronchery vextracti32x4 $0x2,%zmm1,%xmm8 4059*4757b351SPierre Pronchery vextracti32x4 $0x3,%zmm9,%xmm0 4060*4757b351SPierre Pronchery andq $0xf,%rdx 4061*4757b351SPierre Pronchery je .L_ret_wcpqaDvsGlbjGoe 4062*4757b351SPierre Pronchery jmp .L_steal_cipher_wcpqaDvsGlbjGoe 4063*4757b351SPierre Pronchery.L_remaining_num_blocks_is_2_wcpqaDvsGlbjGoe: 4064*4757b351SPierre Pronchery vmovdqu8 (%rdi),%ymm1 4065*4757b351SPierre Pronchery addq $0x20,%rdi 4066*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%ymm0 4067*4757b351SPierre Pronchery vpternlogq $0x96,%ymm0,%ymm9,%ymm1 4068*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%ymm0 4069*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4070*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%ymm0 4071*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4072*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%ymm0 4073*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4074*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%ymm0 4075*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4076*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%ymm0 4077*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4078*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%ymm0 4079*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4080*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%ymm0 4081*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4082*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%ymm0 4083*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4084*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%ymm0 4085*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4086*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%ymm0 4087*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4088*4757b351SPierre Pronchery vbroadcasti32x4 176(%rcx),%ymm0 4089*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4090*4757b351SPierre Pronchery vbroadcasti32x4 192(%rcx),%ymm0 4091*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4092*4757b351SPierre Pronchery vbroadcasti32x4 208(%rcx),%ymm0 4093*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4094*4757b351SPierre Pronchery vbroadcasti32x4 224(%rcx),%ymm0 4095*4757b351SPierre Pronchery vaesenclast %ymm0,%ymm1,%ymm1 4096*4757b351SPierre Pronchery vpxorq %ymm9,%ymm1,%ymm1 4097*4757b351SPierre Pronchery vmovdqu %ymm1,(%rsi) 4098*4757b351SPierre Pronchery addq $0x20,%rsi 4099*4757b351SPierre Pronchery vextracti32x4 $0x1,%zmm1,%xmm8 4100*4757b351SPierre Pronchery vextracti32x4 $0x2,%zmm9,%xmm0 4101*4757b351SPierre Pronchery andq $0xf,%rdx 4102*4757b351SPierre Pronchery je .L_ret_wcpqaDvsGlbjGoe 4103*4757b351SPierre Pronchery jmp .L_steal_cipher_wcpqaDvsGlbjGoe 4104*4757b351SPierre Pronchery.L_remaining_num_blocks_is_1_wcpqaDvsGlbjGoe: 4105*4757b351SPierre Pronchery vmovdqu (%rdi),%xmm1 4106*4757b351SPierre Pronchery addq $0x10,%rdi 4107*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 4108*4757b351SPierre Pronchery vpxor (%rcx),%xmm1,%xmm1 4109*4757b351SPierre Pronchery vaesenc 16(%rcx),%xmm1,%xmm1 4110*4757b351SPierre Pronchery vaesenc 32(%rcx),%xmm1,%xmm1 4111*4757b351SPierre Pronchery vaesenc 48(%rcx),%xmm1,%xmm1 4112*4757b351SPierre Pronchery vaesenc 64(%rcx),%xmm1,%xmm1 4113*4757b351SPierre Pronchery vaesenc 80(%rcx),%xmm1,%xmm1 4114*4757b351SPierre Pronchery vaesenc 96(%rcx),%xmm1,%xmm1 4115*4757b351SPierre Pronchery vaesenc 112(%rcx),%xmm1,%xmm1 4116*4757b351SPierre Pronchery vaesenc 128(%rcx),%xmm1,%xmm1 4117*4757b351SPierre Pronchery vaesenc 144(%rcx),%xmm1,%xmm1 4118*4757b351SPierre Pronchery vaesenc 160(%rcx),%xmm1,%xmm1 4119*4757b351SPierre Pronchery vaesenc 176(%rcx),%xmm1,%xmm1 4120*4757b351SPierre Pronchery vaesenc 192(%rcx),%xmm1,%xmm1 4121*4757b351SPierre Pronchery vaesenc 208(%rcx),%xmm1,%xmm1 4122*4757b351SPierre Pronchery vaesenclast 224(%rcx),%xmm1,%xmm1 4123*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 4124*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 4125*4757b351SPierre Pronchery addq $0x10,%rsi 4126*4757b351SPierre Pronchery vmovdqa %xmm1,%xmm8 4127*4757b351SPierre Pronchery vextracti32x4 $0x1,%zmm9,%xmm0 4128*4757b351SPierre Pronchery andq $0xf,%rdx 4129*4757b351SPierre Pronchery je .L_ret_wcpqaDvsGlbjGoe 4130*4757b351SPierre Pronchery jmp .L_steal_cipher_wcpqaDvsGlbjGoe 4131*4757b351SPierre Pronchery 4132*4757b351SPierre Pronchery 4133*4757b351SPierre Pronchery.L_start_by16_wcpqaDvsGlbjGoe: 4134*4757b351SPierre Pronchery vbroadcasti32x4 (%rsp),%zmm0 4135*4757b351SPierre Pronchery vbroadcasti32x4 shufb_15_7(%rip),%zmm8 4136*4757b351SPierre Pronchery movq $0xaa,%r8 4137*4757b351SPierre Pronchery kmovq %r8,%k2 4138*4757b351SPierre Pronchery vpshufb %zmm8,%zmm0,%zmm1 4139*4757b351SPierre Pronchery vpsllvq const_dq3210(%rip),%zmm0,%zmm4 4140*4757b351SPierre Pronchery vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 4141*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm2,%zmm3 4142*4757b351SPierre Pronchery vpxorq %zmm2,%zmm4,%zmm4{%k2} 4143*4757b351SPierre Pronchery vpxord %zmm4,%zmm3,%zmm9 4144*4757b351SPierre Pronchery vpsllvq const_dq7654(%rip),%zmm0,%zmm5 4145*4757b351SPierre Pronchery vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 4146*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm6,%zmm7 4147*4757b351SPierre Pronchery vpxorq %zmm6,%zmm5,%zmm5{%k2} 4148*4757b351SPierre Pronchery vpxord %zmm5,%zmm7,%zmm10 4149*4757b351SPierre Pronchery vpsrldq $0xf,%zmm9,%zmm13 4150*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 4151*4757b351SPierre Pronchery vpslldq $0x1,%zmm9,%zmm11 4152*4757b351SPierre Pronchery vpxord %zmm14,%zmm11,%zmm11 4153*4757b351SPierre Pronchery vpsrldq $0xf,%zmm10,%zmm15 4154*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm15,%zmm16 4155*4757b351SPierre Pronchery vpslldq $0x1,%zmm10,%zmm12 4156*4757b351SPierre Pronchery vpxord %zmm16,%zmm12,%zmm12 4157*4757b351SPierre Pronchery 4158*4757b351SPierre Pronchery.L_main_loop_run_16_wcpqaDvsGlbjGoe: 4159*4757b351SPierre Pronchery vmovdqu8 (%rdi),%zmm1 4160*4757b351SPierre Pronchery vmovdqu8 64(%rdi),%zmm2 4161*4757b351SPierre Pronchery vmovdqu8 128(%rdi),%zmm3 4162*4757b351SPierre Pronchery vmovdqu8 192(%rdi),%zmm4 4163*4757b351SPierre Pronchery addq $0x100,%rdi 4164*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 4165*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 4166*4757b351SPierre Pronchery vpxorq %zmm11,%zmm3,%zmm3 4167*4757b351SPierre Pronchery vpxorq %zmm12,%zmm4,%zmm4 4168*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 4169*4757b351SPierre Pronchery vpxorq %zmm0,%zmm1,%zmm1 4170*4757b351SPierre Pronchery vpxorq %zmm0,%zmm2,%zmm2 4171*4757b351SPierre Pronchery vpxorq %zmm0,%zmm3,%zmm3 4172*4757b351SPierre Pronchery vpxorq %zmm0,%zmm4,%zmm4 4173*4757b351SPierre Pronchery vpsrldq $0xf,%zmm11,%zmm13 4174*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 4175*4757b351SPierre Pronchery vpslldq $0x1,%zmm11,%zmm15 4176*4757b351SPierre Pronchery vpxord %zmm14,%zmm15,%zmm15 4177*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 4178*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4179*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4180*4757b351SPierre Pronchery vaesenc %zmm0,%zmm3,%zmm3 4181*4757b351SPierre Pronchery vaesenc %zmm0,%zmm4,%zmm4 4182*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 4183*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4184*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4185*4757b351SPierre Pronchery vaesenc %zmm0,%zmm3,%zmm3 4186*4757b351SPierre Pronchery vaesenc %zmm0,%zmm4,%zmm4 4187*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 4188*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4189*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4190*4757b351SPierre Pronchery vaesenc %zmm0,%zmm3,%zmm3 4191*4757b351SPierre Pronchery vaesenc %zmm0,%zmm4,%zmm4 4192*4757b351SPierre Pronchery vpsrldq $0xf,%zmm12,%zmm13 4193*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 4194*4757b351SPierre Pronchery vpslldq $0x1,%zmm12,%zmm16 4195*4757b351SPierre Pronchery vpxord %zmm14,%zmm16,%zmm16 4196*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 4197*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4198*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4199*4757b351SPierre Pronchery vaesenc %zmm0,%zmm3,%zmm3 4200*4757b351SPierre Pronchery vaesenc %zmm0,%zmm4,%zmm4 4201*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 4202*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4203*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4204*4757b351SPierre Pronchery vaesenc %zmm0,%zmm3,%zmm3 4205*4757b351SPierre Pronchery vaesenc %zmm0,%zmm4,%zmm4 4206*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 4207*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4208*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4209*4757b351SPierre Pronchery vaesenc %zmm0,%zmm3,%zmm3 4210*4757b351SPierre Pronchery vaesenc %zmm0,%zmm4,%zmm4 4211*4757b351SPierre Pronchery vpsrldq $0xf,%zmm15,%zmm13 4212*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 4213*4757b351SPierre Pronchery vpslldq $0x1,%zmm15,%zmm17 4214*4757b351SPierre Pronchery vpxord %zmm14,%zmm17,%zmm17 4215*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 4216*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4217*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4218*4757b351SPierre Pronchery vaesenc %zmm0,%zmm3,%zmm3 4219*4757b351SPierre Pronchery vaesenc %zmm0,%zmm4,%zmm4 4220*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 4221*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4222*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4223*4757b351SPierre Pronchery vaesenc %zmm0,%zmm3,%zmm3 4224*4757b351SPierre Pronchery vaesenc %zmm0,%zmm4,%zmm4 4225*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 4226*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4227*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4228*4757b351SPierre Pronchery vaesenc %zmm0,%zmm3,%zmm3 4229*4757b351SPierre Pronchery vaesenc %zmm0,%zmm4,%zmm4 4230*4757b351SPierre Pronchery vpsrldq $0xf,%zmm16,%zmm13 4231*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 4232*4757b351SPierre Pronchery vpslldq $0x1,%zmm16,%zmm18 4233*4757b351SPierre Pronchery vpxord %zmm14,%zmm18,%zmm18 4234*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 4235*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4236*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4237*4757b351SPierre Pronchery vaesenc %zmm0,%zmm3,%zmm3 4238*4757b351SPierre Pronchery vaesenc %zmm0,%zmm4,%zmm4 4239*4757b351SPierre Pronchery vbroadcasti32x4 176(%rcx),%zmm0 4240*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4241*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4242*4757b351SPierre Pronchery vaesenc %zmm0,%zmm3,%zmm3 4243*4757b351SPierre Pronchery vaesenc %zmm0,%zmm4,%zmm4 4244*4757b351SPierre Pronchery vbroadcasti32x4 192(%rcx),%zmm0 4245*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4246*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4247*4757b351SPierre Pronchery vaesenc %zmm0,%zmm3,%zmm3 4248*4757b351SPierre Pronchery vaesenc %zmm0,%zmm4,%zmm4 4249*4757b351SPierre Pronchery vbroadcasti32x4 208(%rcx),%zmm0 4250*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4251*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4252*4757b351SPierre Pronchery vaesenc %zmm0,%zmm3,%zmm3 4253*4757b351SPierre Pronchery vaesenc %zmm0,%zmm4,%zmm4 4254*4757b351SPierre Pronchery vbroadcasti32x4 224(%rcx),%zmm0 4255*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm1,%zmm1 4256*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm2,%zmm2 4257*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm3,%zmm3 4258*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm4,%zmm4 4259*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 4260*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 4261*4757b351SPierre Pronchery vpxorq %zmm11,%zmm3,%zmm3 4262*4757b351SPierre Pronchery vpxorq %zmm12,%zmm4,%zmm4 4263*4757b351SPierre Pronchery 4264*4757b351SPierre Pronchery vmovdqa32 %zmm15,%zmm9 4265*4757b351SPierre Pronchery vmovdqa32 %zmm16,%zmm10 4266*4757b351SPierre Pronchery vmovdqa32 %zmm17,%zmm11 4267*4757b351SPierre Pronchery vmovdqa32 %zmm18,%zmm12 4268*4757b351SPierre Pronchery vmovdqu8 %zmm1,(%rsi) 4269*4757b351SPierre Pronchery vmovdqu8 %zmm2,64(%rsi) 4270*4757b351SPierre Pronchery vmovdqu8 %zmm3,128(%rsi) 4271*4757b351SPierre Pronchery vmovdqu8 %zmm4,192(%rsi) 4272*4757b351SPierre Pronchery addq $0x100,%rsi 4273*4757b351SPierre Pronchery subq $0x100,%rdx 4274*4757b351SPierre Pronchery cmpq $0x100,%rdx 4275*4757b351SPierre Pronchery jae .L_main_loop_run_16_wcpqaDvsGlbjGoe 4276*4757b351SPierre Pronchery cmpq $0x80,%rdx 4277*4757b351SPierre Pronchery jae .L_main_loop_run_8_wcpqaDvsGlbjGoe 4278*4757b351SPierre Pronchery vextracti32x4 $0x3,%zmm4,%xmm0 4279*4757b351SPierre Pronchery jmp .L_do_n_blocks_wcpqaDvsGlbjGoe 4280*4757b351SPierre Pronchery 4281*4757b351SPierre Pronchery.L_start_by8_wcpqaDvsGlbjGoe: 4282*4757b351SPierre Pronchery vbroadcasti32x4 (%rsp),%zmm0 4283*4757b351SPierre Pronchery vbroadcasti32x4 shufb_15_7(%rip),%zmm8 4284*4757b351SPierre Pronchery movq $0xaa,%r8 4285*4757b351SPierre Pronchery kmovq %r8,%k2 4286*4757b351SPierre Pronchery vpshufb %zmm8,%zmm0,%zmm1 4287*4757b351SPierre Pronchery vpsllvq const_dq3210(%rip),%zmm0,%zmm4 4288*4757b351SPierre Pronchery vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 4289*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm2,%zmm3 4290*4757b351SPierre Pronchery vpxorq %zmm2,%zmm4,%zmm4{%k2} 4291*4757b351SPierre Pronchery vpxord %zmm4,%zmm3,%zmm9 4292*4757b351SPierre Pronchery vpsllvq const_dq7654(%rip),%zmm0,%zmm5 4293*4757b351SPierre Pronchery vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 4294*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm6,%zmm7 4295*4757b351SPierre Pronchery vpxorq %zmm6,%zmm5,%zmm5{%k2} 4296*4757b351SPierre Pronchery vpxord %zmm5,%zmm7,%zmm10 4297*4757b351SPierre Pronchery 4298*4757b351SPierre Pronchery.L_main_loop_run_8_wcpqaDvsGlbjGoe: 4299*4757b351SPierre Pronchery vmovdqu8 (%rdi),%zmm1 4300*4757b351SPierre Pronchery vmovdqu8 64(%rdi),%zmm2 4301*4757b351SPierre Pronchery addq $0x80,%rdi 4302*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 4303*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm9,%zmm1 4304*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm10,%zmm2 4305*4757b351SPierre Pronchery vpsrldq $0xf,%zmm9,%zmm13 4306*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 4307*4757b351SPierre Pronchery vpslldq $0x1,%zmm9,%zmm15 4308*4757b351SPierre Pronchery vpxord %zmm14,%zmm15,%zmm15 4309*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 4310*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4311*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4312*4757b351SPierre Pronchery 4313*4757b351SPierre Pronchery 4314*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 4315*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4316*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4317*4757b351SPierre Pronchery 4318*4757b351SPierre Pronchery 4319*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 4320*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4321*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4322*4757b351SPierre Pronchery vpsrldq $0xf,%zmm10,%zmm13 4323*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 4324*4757b351SPierre Pronchery vpslldq $0x1,%zmm10,%zmm16 4325*4757b351SPierre Pronchery vpxord %zmm14,%zmm16,%zmm16 4326*4757b351SPierre Pronchery 4327*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 4328*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4329*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4330*4757b351SPierre Pronchery 4331*4757b351SPierre Pronchery 4332*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 4333*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4334*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4335*4757b351SPierre Pronchery 4336*4757b351SPierre Pronchery 4337*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 4338*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4339*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4340*4757b351SPierre Pronchery 4341*4757b351SPierre Pronchery 4342*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 4343*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4344*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4345*4757b351SPierre Pronchery 4346*4757b351SPierre Pronchery 4347*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 4348*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4349*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4350*4757b351SPierre Pronchery 4351*4757b351SPierre Pronchery 4352*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 4353*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4354*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4355*4757b351SPierre Pronchery 4356*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 4357*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4358*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4359*4757b351SPierre Pronchery 4360*4757b351SPierre Pronchery 4361*4757b351SPierre Pronchery vbroadcasti32x4 176(%rcx),%zmm0 4362*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4363*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4364*4757b351SPierre Pronchery 4365*4757b351SPierre Pronchery 4366*4757b351SPierre Pronchery vbroadcasti32x4 192(%rcx),%zmm0 4367*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4368*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4369*4757b351SPierre Pronchery 4370*4757b351SPierre Pronchery 4371*4757b351SPierre Pronchery vbroadcasti32x4 208(%rcx),%zmm0 4372*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4373*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4374*4757b351SPierre Pronchery 4375*4757b351SPierre Pronchery 4376*4757b351SPierre Pronchery vbroadcasti32x4 224(%rcx),%zmm0 4377*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm1,%zmm1 4378*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm2,%zmm2 4379*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 4380*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 4381*4757b351SPierre Pronchery vmovdqa32 %zmm15,%zmm9 4382*4757b351SPierre Pronchery vmovdqa32 %zmm16,%zmm10 4383*4757b351SPierre Pronchery vmovdqu8 %zmm1,(%rsi) 4384*4757b351SPierre Pronchery vmovdqu8 %zmm2,64(%rsi) 4385*4757b351SPierre Pronchery addq $0x80,%rsi 4386*4757b351SPierre Pronchery subq $0x80,%rdx 4387*4757b351SPierre Pronchery cmpq $0x80,%rdx 4388*4757b351SPierre Pronchery jae .L_main_loop_run_8_wcpqaDvsGlbjGoe 4389*4757b351SPierre Pronchery vextracti32x4 $0x3,%zmm2,%xmm0 4390*4757b351SPierre Pronchery jmp .L_do_n_blocks_wcpqaDvsGlbjGoe 4391*4757b351SPierre Pronchery 4392*4757b351SPierre Pronchery.L_steal_cipher_wcpqaDvsGlbjGoe: 4393*4757b351SPierre Pronchery vmovdqa %xmm8,%xmm2 4394*4757b351SPierre Pronchery leaq vpshufb_shf_table(%rip),%rax 4395*4757b351SPierre Pronchery vmovdqu (%rax,%rdx,1),%xmm10 4396*4757b351SPierre Pronchery vpshufb %xmm10,%xmm8,%xmm8 4397*4757b351SPierre Pronchery vmovdqu -16(%rdi,%rdx,1),%xmm3 4398*4757b351SPierre Pronchery vmovdqu %xmm8,-16(%rsi,%rdx,1) 4399*4757b351SPierre Pronchery leaq vpshufb_shf_table(%rip),%rax 4400*4757b351SPierre Pronchery addq $16,%rax 4401*4757b351SPierre Pronchery subq %rdx,%rax 4402*4757b351SPierre Pronchery vmovdqu (%rax),%xmm10 4403*4757b351SPierre Pronchery vpxor mask1(%rip),%xmm10,%xmm10 4404*4757b351SPierre Pronchery vpshufb %xmm10,%xmm3,%xmm3 4405*4757b351SPierre Pronchery vpblendvb %xmm10,%xmm2,%xmm3,%xmm3 4406*4757b351SPierre Pronchery vpxor %xmm0,%xmm3,%xmm8 4407*4757b351SPierre Pronchery vpxor (%rcx),%xmm8,%xmm8 4408*4757b351SPierre Pronchery vaesenc 16(%rcx),%xmm8,%xmm8 4409*4757b351SPierre Pronchery vaesenc 32(%rcx),%xmm8,%xmm8 4410*4757b351SPierre Pronchery vaesenc 48(%rcx),%xmm8,%xmm8 4411*4757b351SPierre Pronchery vaesenc 64(%rcx),%xmm8,%xmm8 4412*4757b351SPierre Pronchery vaesenc 80(%rcx),%xmm8,%xmm8 4413*4757b351SPierre Pronchery vaesenc 96(%rcx),%xmm8,%xmm8 4414*4757b351SPierre Pronchery vaesenc 112(%rcx),%xmm8,%xmm8 4415*4757b351SPierre Pronchery vaesenc 128(%rcx),%xmm8,%xmm8 4416*4757b351SPierre Pronchery vaesenc 144(%rcx),%xmm8,%xmm8 4417*4757b351SPierre Pronchery vaesenc 160(%rcx),%xmm8,%xmm8 4418*4757b351SPierre Pronchery vaesenc 176(%rcx),%xmm8,%xmm8 4419*4757b351SPierre Pronchery vaesenc 192(%rcx),%xmm8,%xmm8 4420*4757b351SPierre Pronchery vaesenc 208(%rcx),%xmm8,%xmm8 4421*4757b351SPierre Pronchery vaesenclast 224(%rcx),%xmm8,%xmm8 4422*4757b351SPierre Pronchery vpxor %xmm0,%xmm8,%xmm8 4423*4757b351SPierre Pronchery vmovdqu %xmm8,-16(%rsi) 4424*4757b351SPierre Pronchery.L_ret_wcpqaDvsGlbjGoe: 4425*4757b351SPierre Pronchery movq 128(%rsp),%rbx 4426*4757b351SPierre Pronchery xorq %r8,%r8 4427*4757b351SPierre Pronchery movq %r8,128(%rsp) 4428*4757b351SPierre Pronchery 4429*4757b351SPierre Pronchery vpxorq %zmm0,%zmm0,%zmm0 4430*4757b351SPierre Pronchery movq %rbp,%rsp 4431*4757b351SPierre Pronchery popq %rbp 4432*4757b351SPierre Pronchery vzeroupper 4433*4757b351SPierre Pronchery .byte 0xf3,0xc3 4434*4757b351SPierre Pronchery 4435*4757b351SPierre Pronchery.L_less_than_128_bytes_wcpqaDvsGlbjGoe: 4436*4757b351SPierre Pronchery vpbroadcastq %r10,%zmm25 4437*4757b351SPierre Pronchery cmpq $0x10,%rdx 4438*4757b351SPierre Pronchery jb .L_ret_wcpqaDvsGlbjGoe 4439*4757b351SPierre Pronchery vbroadcasti32x4 (%rsp),%zmm0 4440*4757b351SPierre Pronchery vbroadcasti32x4 shufb_15_7(%rip),%zmm8 4441*4757b351SPierre Pronchery movl $0xaa,%r8d 4442*4757b351SPierre Pronchery kmovq %r8,%k2 4443*4757b351SPierre Pronchery movq %rdx,%r8 4444*4757b351SPierre Pronchery andq $0x70,%r8 4445*4757b351SPierre Pronchery cmpq $0x60,%r8 4446*4757b351SPierre Pronchery je .L_num_blocks_is_6_wcpqaDvsGlbjGoe 4447*4757b351SPierre Pronchery cmpq $0x50,%r8 4448*4757b351SPierre Pronchery je .L_num_blocks_is_5_wcpqaDvsGlbjGoe 4449*4757b351SPierre Pronchery cmpq $0x40,%r8 4450*4757b351SPierre Pronchery je .L_num_blocks_is_4_wcpqaDvsGlbjGoe 4451*4757b351SPierre Pronchery cmpq $0x30,%r8 4452*4757b351SPierre Pronchery je .L_num_blocks_is_3_wcpqaDvsGlbjGoe 4453*4757b351SPierre Pronchery cmpq $0x20,%r8 4454*4757b351SPierre Pronchery je .L_num_blocks_is_2_wcpqaDvsGlbjGoe 4455*4757b351SPierre Pronchery cmpq $0x10,%r8 4456*4757b351SPierre Pronchery je .L_num_blocks_is_1_wcpqaDvsGlbjGoe 4457*4757b351SPierre Pronchery 4458*4757b351SPierre Pronchery.L_num_blocks_is_7_wcpqaDvsGlbjGoe: 4459*4757b351SPierre Pronchery vpshufb %zmm8,%zmm0,%zmm1 4460*4757b351SPierre Pronchery vpsllvq const_dq3210(%rip),%zmm0,%zmm4 4461*4757b351SPierre Pronchery vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 4462*4757b351SPierre Pronchery vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 4463*4757b351SPierre Pronchery vpxorq %zmm2,%zmm4,%zmm4{%k2} 4464*4757b351SPierre Pronchery vpxord %zmm4,%zmm3,%zmm9 4465*4757b351SPierre Pronchery vpsllvq const_dq7654(%rip),%zmm0,%zmm5 4466*4757b351SPierre Pronchery vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 4467*4757b351SPierre Pronchery vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7 4468*4757b351SPierre Pronchery vpxorq %zmm6,%zmm5,%zmm5{%k2} 4469*4757b351SPierre Pronchery vpxord %zmm5,%zmm7,%zmm10 4470*4757b351SPierre Pronchery movq $0x0000ffffffffffff,%r8 4471*4757b351SPierre Pronchery kmovq %r8,%k1 4472*4757b351SPierre Pronchery vmovdqu8 0(%rdi),%zmm1 4473*4757b351SPierre Pronchery vmovdqu8 64(%rdi),%zmm2{%k1} 4474*4757b351SPierre Pronchery 4475*4757b351SPierre Pronchery addq $0x70,%rdi 4476*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 4477*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm9,%zmm1 4478*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm10,%zmm2 4479*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 4480*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4481*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4482*4757b351SPierre Pronchery 4483*4757b351SPierre Pronchery 4484*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 4485*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4486*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4487*4757b351SPierre Pronchery 4488*4757b351SPierre Pronchery 4489*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 4490*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4491*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4492*4757b351SPierre Pronchery 4493*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 4494*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4495*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4496*4757b351SPierre Pronchery 4497*4757b351SPierre Pronchery 4498*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 4499*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4500*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4501*4757b351SPierre Pronchery 4502*4757b351SPierre Pronchery 4503*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 4504*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4505*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4506*4757b351SPierre Pronchery 4507*4757b351SPierre Pronchery 4508*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 4509*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4510*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4511*4757b351SPierre Pronchery 4512*4757b351SPierre Pronchery 4513*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 4514*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4515*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4516*4757b351SPierre Pronchery 4517*4757b351SPierre Pronchery 4518*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 4519*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4520*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4521*4757b351SPierre Pronchery 4522*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 4523*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4524*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4525*4757b351SPierre Pronchery 4526*4757b351SPierre Pronchery 4527*4757b351SPierre Pronchery vbroadcasti32x4 176(%rcx),%zmm0 4528*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4529*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4530*4757b351SPierre Pronchery 4531*4757b351SPierre Pronchery 4532*4757b351SPierre Pronchery vbroadcasti32x4 192(%rcx),%zmm0 4533*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4534*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4535*4757b351SPierre Pronchery 4536*4757b351SPierre Pronchery 4537*4757b351SPierre Pronchery vbroadcasti32x4 208(%rcx),%zmm0 4538*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4539*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4540*4757b351SPierre Pronchery 4541*4757b351SPierre Pronchery 4542*4757b351SPierre Pronchery vbroadcasti32x4 224(%rcx),%zmm0 4543*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm1,%zmm1 4544*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm2,%zmm2 4545*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 4546*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 4547*4757b351SPierre Pronchery vmovdqu8 %zmm1,0(%rsi) 4548*4757b351SPierre Pronchery vmovdqu8 %zmm2,64(%rsi){%k1} 4549*4757b351SPierre Pronchery addq $0x70,%rsi 4550*4757b351SPierre Pronchery vextracti32x4 $0x2,%zmm2,%xmm8 4551*4757b351SPierre Pronchery vextracti32x4 $0x3,%zmm10,%xmm0 4552*4757b351SPierre Pronchery andq $0xf,%rdx 4553*4757b351SPierre Pronchery je .L_ret_wcpqaDvsGlbjGoe 4554*4757b351SPierre Pronchery jmp .L_steal_cipher_wcpqaDvsGlbjGoe 4555*4757b351SPierre Pronchery.L_num_blocks_is_6_wcpqaDvsGlbjGoe: 4556*4757b351SPierre Pronchery vpshufb %zmm8,%zmm0,%zmm1 4557*4757b351SPierre Pronchery vpsllvq const_dq3210(%rip),%zmm0,%zmm4 4558*4757b351SPierre Pronchery vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 4559*4757b351SPierre Pronchery vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 4560*4757b351SPierre Pronchery vpxorq %zmm2,%zmm4,%zmm4{%k2} 4561*4757b351SPierre Pronchery vpxord %zmm4,%zmm3,%zmm9 4562*4757b351SPierre Pronchery vpsllvq const_dq7654(%rip),%zmm0,%zmm5 4563*4757b351SPierre Pronchery vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 4564*4757b351SPierre Pronchery vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7 4565*4757b351SPierre Pronchery vpxorq %zmm6,%zmm5,%zmm5{%k2} 4566*4757b351SPierre Pronchery vpxord %zmm5,%zmm7,%zmm10 4567*4757b351SPierre Pronchery vmovdqu8 0(%rdi),%zmm1 4568*4757b351SPierre Pronchery vmovdqu8 64(%rdi),%ymm2 4569*4757b351SPierre Pronchery addq $96,%rdi 4570*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 4571*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm9,%zmm1 4572*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm10,%zmm2 4573*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 4574*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4575*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4576*4757b351SPierre Pronchery 4577*4757b351SPierre Pronchery 4578*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 4579*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4580*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4581*4757b351SPierre Pronchery 4582*4757b351SPierre Pronchery 4583*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 4584*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4585*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4586*4757b351SPierre Pronchery 4587*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 4588*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4589*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4590*4757b351SPierre Pronchery 4591*4757b351SPierre Pronchery 4592*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 4593*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4594*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4595*4757b351SPierre Pronchery 4596*4757b351SPierre Pronchery 4597*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 4598*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4599*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4600*4757b351SPierre Pronchery 4601*4757b351SPierre Pronchery 4602*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 4603*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4604*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4605*4757b351SPierre Pronchery 4606*4757b351SPierre Pronchery 4607*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 4608*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4609*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4610*4757b351SPierre Pronchery 4611*4757b351SPierre Pronchery 4612*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 4613*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4614*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4615*4757b351SPierre Pronchery 4616*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 4617*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4618*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4619*4757b351SPierre Pronchery 4620*4757b351SPierre Pronchery 4621*4757b351SPierre Pronchery vbroadcasti32x4 176(%rcx),%zmm0 4622*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4623*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4624*4757b351SPierre Pronchery 4625*4757b351SPierre Pronchery 4626*4757b351SPierre Pronchery vbroadcasti32x4 192(%rcx),%zmm0 4627*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4628*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4629*4757b351SPierre Pronchery 4630*4757b351SPierre Pronchery 4631*4757b351SPierre Pronchery vbroadcasti32x4 208(%rcx),%zmm0 4632*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4633*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4634*4757b351SPierre Pronchery 4635*4757b351SPierre Pronchery 4636*4757b351SPierre Pronchery vbroadcasti32x4 224(%rcx),%zmm0 4637*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm1,%zmm1 4638*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm2,%zmm2 4639*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 4640*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 4641*4757b351SPierre Pronchery vmovdqu8 %zmm1,0(%rsi) 4642*4757b351SPierre Pronchery vmovdqu8 %ymm2,64(%rsi) 4643*4757b351SPierre Pronchery addq $96,%rsi 4644*4757b351SPierre Pronchery 4645*4757b351SPierre Pronchery vextracti32x4 $0x1,%ymm2,%xmm8 4646*4757b351SPierre Pronchery vextracti32x4 $0x2,%zmm10,%xmm0 4647*4757b351SPierre Pronchery andq $0xf,%rdx 4648*4757b351SPierre Pronchery je .L_ret_wcpqaDvsGlbjGoe 4649*4757b351SPierre Pronchery jmp .L_steal_cipher_wcpqaDvsGlbjGoe 4650*4757b351SPierre Pronchery.L_num_blocks_is_5_wcpqaDvsGlbjGoe: 4651*4757b351SPierre Pronchery vpshufb %zmm8,%zmm0,%zmm1 4652*4757b351SPierre Pronchery vpsllvq const_dq3210(%rip),%zmm0,%zmm4 4653*4757b351SPierre Pronchery vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 4654*4757b351SPierre Pronchery vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 4655*4757b351SPierre Pronchery vpxorq %zmm2,%zmm4,%zmm4{%k2} 4656*4757b351SPierre Pronchery vpxord %zmm4,%zmm3,%zmm9 4657*4757b351SPierre Pronchery vpsllvq const_dq7654(%rip),%zmm0,%zmm5 4658*4757b351SPierre Pronchery vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 4659*4757b351SPierre Pronchery vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7 4660*4757b351SPierre Pronchery vpxorq %zmm6,%zmm5,%zmm5{%k2} 4661*4757b351SPierre Pronchery vpxord %zmm5,%zmm7,%zmm10 4662*4757b351SPierre Pronchery vmovdqu8 0(%rdi),%zmm1 4663*4757b351SPierre Pronchery vmovdqu8 64(%rdi),%xmm2 4664*4757b351SPierre Pronchery addq $80,%rdi 4665*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 4666*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm9,%zmm1 4667*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm10,%zmm2 4668*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 4669*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4670*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4671*4757b351SPierre Pronchery 4672*4757b351SPierre Pronchery 4673*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 4674*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4675*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4676*4757b351SPierre Pronchery 4677*4757b351SPierre Pronchery 4678*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 4679*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4680*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4681*4757b351SPierre Pronchery 4682*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 4683*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4684*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4685*4757b351SPierre Pronchery 4686*4757b351SPierre Pronchery 4687*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 4688*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4689*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4690*4757b351SPierre Pronchery 4691*4757b351SPierre Pronchery 4692*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 4693*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4694*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4695*4757b351SPierre Pronchery 4696*4757b351SPierre Pronchery 4697*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 4698*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4699*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4700*4757b351SPierre Pronchery 4701*4757b351SPierre Pronchery 4702*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 4703*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4704*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4705*4757b351SPierre Pronchery 4706*4757b351SPierre Pronchery 4707*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 4708*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4709*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4710*4757b351SPierre Pronchery 4711*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 4712*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4713*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4714*4757b351SPierre Pronchery 4715*4757b351SPierre Pronchery 4716*4757b351SPierre Pronchery vbroadcasti32x4 176(%rcx),%zmm0 4717*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4718*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4719*4757b351SPierre Pronchery 4720*4757b351SPierre Pronchery 4721*4757b351SPierre Pronchery vbroadcasti32x4 192(%rcx),%zmm0 4722*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4723*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4724*4757b351SPierre Pronchery 4725*4757b351SPierre Pronchery 4726*4757b351SPierre Pronchery vbroadcasti32x4 208(%rcx),%zmm0 4727*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4728*4757b351SPierre Pronchery vaesenc %zmm0,%zmm2,%zmm2 4729*4757b351SPierre Pronchery 4730*4757b351SPierre Pronchery 4731*4757b351SPierre Pronchery vbroadcasti32x4 224(%rcx),%zmm0 4732*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm1,%zmm1 4733*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm2,%zmm2 4734*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 4735*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 4736*4757b351SPierre Pronchery vmovdqu8 %zmm1,0(%rsi) 4737*4757b351SPierre Pronchery vmovdqu8 %xmm2,64(%rsi) 4738*4757b351SPierre Pronchery addq $80,%rsi 4739*4757b351SPierre Pronchery 4740*4757b351SPierre Pronchery vmovdqa %xmm2,%xmm8 4741*4757b351SPierre Pronchery vextracti32x4 $0x1,%zmm10,%xmm0 4742*4757b351SPierre Pronchery andq $0xf,%rdx 4743*4757b351SPierre Pronchery je .L_ret_wcpqaDvsGlbjGoe 4744*4757b351SPierre Pronchery jmp .L_steal_cipher_wcpqaDvsGlbjGoe 4745*4757b351SPierre Pronchery.L_num_blocks_is_4_wcpqaDvsGlbjGoe: 4746*4757b351SPierre Pronchery vpshufb %zmm8,%zmm0,%zmm1 4747*4757b351SPierre Pronchery vpsllvq const_dq3210(%rip),%zmm0,%zmm4 4748*4757b351SPierre Pronchery vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 4749*4757b351SPierre Pronchery vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 4750*4757b351SPierre Pronchery vpxorq %zmm2,%zmm4,%zmm4{%k2} 4751*4757b351SPierre Pronchery vpxord %zmm4,%zmm3,%zmm9 4752*4757b351SPierre Pronchery vpsllvq const_dq7654(%rip),%zmm0,%zmm5 4753*4757b351SPierre Pronchery vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 4754*4757b351SPierre Pronchery vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7 4755*4757b351SPierre Pronchery vpxorq %zmm6,%zmm5,%zmm5{%k2} 4756*4757b351SPierre Pronchery vpxord %zmm5,%zmm7,%zmm10 4757*4757b351SPierre Pronchery vmovdqu8 0(%rdi),%zmm1 4758*4757b351SPierre Pronchery addq $64,%rdi 4759*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 4760*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm9,%zmm1 4761*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 4762*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4763*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 4764*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4765*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 4766*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4767*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 4768*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4769*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 4770*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4771*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 4772*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4773*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 4774*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4775*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 4776*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4777*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 4778*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4779*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 4780*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4781*4757b351SPierre Pronchery vbroadcasti32x4 176(%rcx),%zmm0 4782*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4783*4757b351SPierre Pronchery vbroadcasti32x4 192(%rcx),%zmm0 4784*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4785*4757b351SPierre Pronchery vbroadcasti32x4 208(%rcx),%zmm0 4786*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4787*4757b351SPierre Pronchery vbroadcasti32x4 224(%rcx),%zmm0 4788*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm1,%zmm1 4789*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 4790*4757b351SPierre Pronchery vmovdqu8 %zmm1,0(%rsi) 4791*4757b351SPierre Pronchery addq $64,%rsi 4792*4757b351SPierre Pronchery vextracti32x4 $0x3,%zmm1,%xmm8 4793*4757b351SPierre Pronchery vmovdqa %xmm10,%xmm0 4794*4757b351SPierre Pronchery andq $0xf,%rdx 4795*4757b351SPierre Pronchery je .L_ret_wcpqaDvsGlbjGoe 4796*4757b351SPierre Pronchery jmp .L_steal_cipher_wcpqaDvsGlbjGoe 4797*4757b351SPierre Pronchery.L_num_blocks_is_3_wcpqaDvsGlbjGoe: 4798*4757b351SPierre Pronchery vpshufb %zmm8,%zmm0,%zmm1 4799*4757b351SPierre Pronchery vpsllvq const_dq3210(%rip),%zmm0,%zmm4 4800*4757b351SPierre Pronchery vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 4801*4757b351SPierre Pronchery vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 4802*4757b351SPierre Pronchery vpxorq %zmm2,%zmm4,%zmm4{%k2} 4803*4757b351SPierre Pronchery vpxord %zmm4,%zmm3,%zmm9 4804*4757b351SPierre Pronchery movq $0x0000ffffffffffff,%r8 4805*4757b351SPierre Pronchery kmovq %r8,%k1 4806*4757b351SPierre Pronchery vmovdqu8 0(%rdi),%zmm1{%k1} 4807*4757b351SPierre Pronchery addq $48,%rdi 4808*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 4809*4757b351SPierre Pronchery vpternlogq $0x96,%zmm0,%zmm9,%zmm1 4810*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 4811*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4812*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 4813*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4814*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 4815*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4816*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 4817*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4818*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 4819*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4820*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 4821*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4822*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 4823*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4824*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 4825*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4826*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 4827*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4828*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 4829*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4830*4757b351SPierre Pronchery vbroadcasti32x4 176(%rcx),%zmm0 4831*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4832*4757b351SPierre Pronchery vbroadcasti32x4 192(%rcx),%zmm0 4833*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4834*4757b351SPierre Pronchery vbroadcasti32x4 208(%rcx),%zmm0 4835*4757b351SPierre Pronchery vaesenc %zmm0,%zmm1,%zmm1 4836*4757b351SPierre Pronchery vbroadcasti32x4 224(%rcx),%zmm0 4837*4757b351SPierre Pronchery vaesenclast %zmm0,%zmm1,%zmm1 4838*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 4839*4757b351SPierre Pronchery vmovdqu8 %zmm1,0(%rsi){%k1} 4840*4757b351SPierre Pronchery addq $48,%rsi 4841*4757b351SPierre Pronchery vextracti32x4 $2,%zmm1,%xmm8 4842*4757b351SPierre Pronchery vextracti32x4 $3,%zmm9,%xmm0 4843*4757b351SPierre Pronchery andq $0xf,%rdx 4844*4757b351SPierre Pronchery je .L_ret_wcpqaDvsGlbjGoe 4845*4757b351SPierre Pronchery jmp .L_steal_cipher_wcpqaDvsGlbjGoe 4846*4757b351SPierre Pronchery.L_num_blocks_is_2_wcpqaDvsGlbjGoe: 4847*4757b351SPierre Pronchery vpshufb %zmm8,%zmm0,%zmm1 4848*4757b351SPierre Pronchery vpsllvq const_dq3210(%rip),%zmm0,%zmm4 4849*4757b351SPierre Pronchery vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 4850*4757b351SPierre Pronchery vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 4851*4757b351SPierre Pronchery vpxorq %zmm2,%zmm4,%zmm4{%k2} 4852*4757b351SPierre Pronchery vpxord %zmm4,%zmm3,%zmm9 4853*4757b351SPierre Pronchery 4854*4757b351SPierre Pronchery vmovdqu8 0(%rdi),%ymm1 4855*4757b351SPierre Pronchery addq $32,%rdi 4856*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%ymm0 4857*4757b351SPierre Pronchery vpternlogq $0x96,%ymm0,%ymm9,%ymm1 4858*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%ymm0 4859*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4860*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%ymm0 4861*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4862*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%ymm0 4863*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4864*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%ymm0 4865*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4866*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%ymm0 4867*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4868*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%ymm0 4869*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4870*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%ymm0 4871*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4872*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%ymm0 4873*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4874*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%ymm0 4875*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4876*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%ymm0 4877*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4878*4757b351SPierre Pronchery vbroadcasti32x4 176(%rcx),%ymm0 4879*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4880*4757b351SPierre Pronchery vbroadcasti32x4 192(%rcx),%ymm0 4881*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4882*4757b351SPierre Pronchery vbroadcasti32x4 208(%rcx),%ymm0 4883*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4884*4757b351SPierre Pronchery vbroadcasti32x4 224(%rcx),%ymm0 4885*4757b351SPierre Pronchery vaesenclast %ymm0,%ymm1,%ymm1 4886*4757b351SPierre Pronchery vpxorq %ymm9,%ymm1,%ymm1 4887*4757b351SPierre Pronchery vmovdqu8 %ymm1,0(%rsi) 4888*4757b351SPierre Pronchery addq $32,%rsi 4889*4757b351SPierre Pronchery 4890*4757b351SPierre Pronchery vextracti32x4 $1,%ymm1,%xmm8 4891*4757b351SPierre Pronchery vextracti32x4 $2,%zmm9,%xmm0 4892*4757b351SPierre Pronchery andq $0xf,%rdx 4893*4757b351SPierre Pronchery je .L_ret_wcpqaDvsGlbjGoe 4894*4757b351SPierre Pronchery jmp .L_steal_cipher_wcpqaDvsGlbjGoe 4895*4757b351SPierre Pronchery.L_num_blocks_is_1_wcpqaDvsGlbjGoe: 4896*4757b351SPierre Pronchery vpshufb %zmm8,%zmm0,%zmm1 4897*4757b351SPierre Pronchery vpsllvq const_dq3210(%rip),%zmm0,%zmm4 4898*4757b351SPierre Pronchery vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 4899*4757b351SPierre Pronchery vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 4900*4757b351SPierre Pronchery vpxorq %zmm2,%zmm4,%zmm4{%k2} 4901*4757b351SPierre Pronchery vpxord %zmm4,%zmm3,%zmm9 4902*4757b351SPierre Pronchery 4903*4757b351SPierre Pronchery vmovdqu8 0(%rdi),%xmm1 4904*4757b351SPierre Pronchery addq $16,%rdi 4905*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%ymm0 4906*4757b351SPierre Pronchery vpternlogq $0x96,%ymm0,%ymm9,%ymm1 4907*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%ymm0 4908*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4909*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%ymm0 4910*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4911*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%ymm0 4912*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4913*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%ymm0 4914*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4915*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%ymm0 4916*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4917*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%ymm0 4918*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4919*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%ymm0 4920*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4921*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%ymm0 4922*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4923*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%ymm0 4924*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4925*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%ymm0 4926*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4927*4757b351SPierre Pronchery vbroadcasti32x4 176(%rcx),%ymm0 4928*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4929*4757b351SPierre Pronchery vbroadcasti32x4 192(%rcx),%ymm0 4930*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4931*4757b351SPierre Pronchery vbroadcasti32x4 208(%rcx),%ymm0 4932*4757b351SPierre Pronchery vaesenc %ymm0,%ymm1,%ymm1 4933*4757b351SPierre Pronchery vbroadcasti32x4 224(%rcx),%ymm0 4934*4757b351SPierre Pronchery vaesenclast %ymm0,%ymm1,%ymm1 4935*4757b351SPierre Pronchery vpxorq %ymm9,%ymm1,%ymm1 4936*4757b351SPierre Pronchery vmovdqu8 %xmm1,0(%rsi) 4937*4757b351SPierre Pronchery addq $16,%rsi 4938*4757b351SPierre Pronchery 4939*4757b351SPierre Pronchery vmovdqa %xmm1,%xmm8 4940*4757b351SPierre Pronchery vextracti32x4 $1,%zmm9,%xmm0 4941*4757b351SPierre Pronchery andq $0xf,%rdx 4942*4757b351SPierre Pronchery je .L_ret_wcpqaDvsGlbjGoe 4943*4757b351SPierre Pronchery jmp .L_steal_cipher_wcpqaDvsGlbjGoe 4944*4757b351SPierre Pronchery.cfi_endproc 4945*4757b351SPierre Pronchery.globl aesni_xts_256_decrypt_avx512 4946*4757b351SPierre Pronchery.hidden aesni_xts_256_decrypt_avx512 4947*4757b351SPierre Pronchery.type aesni_xts_256_decrypt_avx512,@function 4948*4757b351SPierre Pronchery.align 32 4949*4757b351SPierre Proncheryaesni_xts_256_decrypt_avx512: 4950*4757b351SPierre Pronchery.cfi_startproc 4951*4757b351SPierre Pronchery.byte 243,15,30,250 4952*4757b351SPierre Pronchery pushq %rbp 4953*4757b351SPierre Pronchery movq %rsp,%rbp 4954*4757b351SPierre Pronchery subq $136,%rsp 4955*4757b351SPierre Pronchery andq $0xffffffffffffffc0,%rsp 4956*4757b351SPierre Pronchery movq %rbx,128(%rsp) 4957*4757b351SPierre Pronchery movq $0x87,%r10 4958*4757b351SPierre Pronchery vmovdqu (%r9),%xmm1 4959*4757b351SPierre Pronchery vpxor (%r8),%xmm1,%xmm1 4960*4757b351SPierre Pronchery vaesenc 16(%r8),%xmm1,%xmm1 4961*4757b351SPierre Pronchery vaesenc 32(%r8),%xmm1,%xmm1 4962*4757b351SPierre Pronchery vaesenc 48(%r8),%xmm1,%xmm1 4963*4757b351SPierre Pronchery vaesenc 64(%r8),%xmm1,%xmm1 4964*4757b351SPierre Pronchery vaesenc 80(%r8),%xmm1,%xmm1 4965*4757b351SPierre Pronchery vaesenc 96(%r8),%xmm1,%xmm1 4966*4757b351SPierre Pronchery vaesenc 112(%r8),%xmm1,%xmm1 4967*4757b351SPierre Pronchery vaesenc 128(%r8),%xmm1,%xmm1 4968*4757b351SPierre Pronchery vaesenc 144(%r8),%xmm1,%xmm1 4969*4757b351SPierre Pronchery vaesenc 160(%r8),%xmm1,%xmm1 4970*4757b351SPierre Pronchery vaesenc 176(%r8),%xmm1,%xmm1 4971*4757b351SPierre Pronchery vaesenc 192(%r8),%xmm1,%xmm1 4972*4757b351SPierre Pronchery vaesenc 208(%r8),%xmm1,%xmm1 4973*4757b351SPierre Pronchery vaesenclast 224(%r8),%xmm1,%xmm1 4974*4757b351SPierre Pronchery vmovdqa %xmm1,(%rsp) 4975*4757b351SPierre Pronchery 4976*4757b351SPierre Pronchery cmpq $0x80,%rdx 4977*4757b351SPierre Pronchery jb .L_less_than_128_bytes_EmbgEptodyewbFa 4978*4757b351SPierre Pronchery vpbroadcastq %r10,%zmm25 4979*4757b351SPierre Pronchery cmpq $0x100,%rdx 4980*4757b351SPierre Pronchery jge .L_start_by16_EmbgEptodyewbFa 4981*4757b351SPierre Pronchery jmp .L_start_by8_EmbgEptodyewbFa 4982*4757b351SPierre Pronchery 4983*4757b351SPierre Pronchery.L_do_n_blocks_EmbgEptodyewbFa: 4984*4757b351SPierre Pronchery cmpq $0x0,%rdx 4985*4757b351SPierre Pronchery je .L_ret_EmbgEptodyewbFa 4986*4757b351SPierre Pronchery cmpq $0x70,%rdx 4987*4757b351SPierre Pronchery jge .L_remaining_num_blocks_is_7_EmbgEptodyewbFa 4988*4757b351SPierre Pronchery cmpq $0x60,%rdx 4989*4757b351SPierre Pronchery jge .L_remaining_num_blocks_is_6_EmbgEptodyewbFa 4990*4757b351SPierre Pronchery cmpq $0x50,%rdx 4991*4757b351SPierre Pronchery jge .L_remaining_num_blocks_is_5_EmbgEptodyewbFa 4992*4757b351SPierre Pronchery cmpq $0x40,%rdx 4993*4757b351SPierre Pronchery jge .L_remaining_num_blocks_is_4_EmbgEptodyewbFa 4994*4757b351SPierre Pronchery cmpq $0x30,%rdx 4995*4757b351SPierre Pronchery jge .L_remaining_num_blocks_is_3_EmbgEptodyewbFa 4996*4757b351SPierre Pronchery cmpq $0x20,%rdx 4997*4757b351SPierre Pronchery jge .L_remaining_num_blocks_is_2_EmbgEptodyewbFa 4998*4757b351SPierre Pronchery cmpq $0x10,%rdx 4999*4757b351SPierre Pronchery jge .L_remaining_num_blocks_is_1_EmbgEptodyewbFa 5000*4757b351SPierre Pronchery 5001*4757b351SPierre Pronchery 5002*4757b351SPierre Pronchery vmovdqu %xmm5,%xmm1 5003*4757b351SPierre Pronchery 5004*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 5005*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 5006*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 5007*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 5008*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5009*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 5010*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5011*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 5012*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5013*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 5014*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5015*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 5016*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5017*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 5018*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5019*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 5020*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5021*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 5022*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5023*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 5024*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5025*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 5026*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5027*4757b351SPierre Pronchery vmovdqu 176(%rcx),%xmm0 5028*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5029*4757b351SPierre Pronchery vmovdqu 192(%rcx),%xmm0 5030*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5031*4757b351SPierre Pronchery vmovdqu 208(%rcx),%xmm0 5032*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5033*4757b351SPierre Pronchery vmovdqu 224(%rcx),%xmm0 5034*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 5035*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 5036*4757b351SPierre Pronchery vmovdqu %xmm1,-16(%rsi) 5037*4757b351SPierre Pronchery vmovdqa %xmm1,%xmm8 5038*4757b351SPierre Pronchery 5039*4757b351SPierre Pronchery 5040*4757b351SPierre Pronchery movq $0x1,%r8 5041*4757b351SPierre Pronchery kmovq %r8,%k1 5042*4757b351SPierre Pronchery vpsllq $0x3f,%xmm9,%xmm13 5043*4757b351SPierre Pronchery vpsraq $0x3f,%xmm13,%xmm14 5044*4757b351SPierre Pronchery vpandq %xmm25,%xmm14,%xmm5 5045*4757b351SPierre Pronchery vpxorq %xmm5,%xmm9,%xmm9{%k1} 5046*4757b351SPierre Pronchery vpsrldq $0x8,%xmm9,%xmm10 5047*4757b351SPierre Pronchery.byte 98, 211, 181, 8, 115, 194, 1 5048*4757b351SPierre Pronchery vpslldq $0x8,%xmm13,%xmm13 5049*4757b351SPierre Pronchery vpxorq %xmm13,%xmm0,%xmm0 5050*4757b351SPierre Pronchery jmp .L_steal_cipher_EmbgEptodyewbFa 5051*4757b351SPierre Pronchery 5052*4757b351SPierre Pronchery.L_remaining_num_blocks_is_7_EmbgEptodyewbFa: 5053*4757b351SPierre Pronchery movq $0xffffffffffffffff,%r8 5054*4757b351SPierre Pronchery shrq $0x10,%r8 5055*4757b351SPierre Pronchery kmovq %r8,%k1 5056*4757b351SPierre Pronchery vmovdqu8 (%rdi),%zmm1 5057*4757b351SPierre Pronchery vmovdqu8 64(%rdi),%zmm2{%k1} 5058*4757b351SPierre Pronchery addq $0x70,%rdi 5059*4757b351SPierre Pronchery andq $0xf,%rdx 5060*4757b351SPierre Pronchery je .L_done_7_remain_EmbgEptodyewbFa 5061*4757b351SPierre Pronchery vextracti32x4 $0x2,%zmm10,%xmm12 5062*4757b351SPierre Pronchery vextracti32x4 $0x3,%zmm10,%xmm13 5063*4757b351SPierre Pronchery vinserti32x4 $0x2,%xmm13,%zmm10,%zmm10 5064*4757b351SPierre Pronchery 5065*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 5066*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 5067*4757b351SPierre Pronchery 5068*4757b351SPierre Pronchery 5069*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 5070*4757b351SPierre Pronchery vpxorq %zmm0,%zmm1,%zmm1 5071*4757b351SPierre Pronchery vpxorq %zmm0,%zmm2,%zmm2 5072*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 5073*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5074*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5075*4757b351SPierre Pronchery 5076*4757b351SPierre Pronchery 5077*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 5078*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5079*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5080*4757b351SPierre Pronchery 5081*4757b351SPierre Pronchery 5082*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 5083*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5084*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5085*4757b351SPierre Pronchery 5086*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 5087*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5088*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5089*4757b351SPierre Pronchery 5090*4757b351SPierre Pronchery 5091*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 5092*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5093*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5094*4757b351SPierre Pronchery 5095*4757b351SPierre Pronchery 5096*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 5097*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5098*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5099*4757b351SPierre Pronchery 5100*4757b351SPierre Pronchery 5101*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 5102*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5103*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5104*4757b351SPierre Pronchery 5105*4757b351SPierre Pronchery 5106*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 5107*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5108*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5109*4757b351SPierre Pronchery 5110*4757b351SPierre Pronchery 5111*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 5112*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5113*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5114*4757b351SPierre Pronchery 5115*4757b351SPierre Pronchery 5116*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 5117*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5118*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5119*4757b351SPierre Pronchery 5120*4757b351SPierre Pronchery 5121*4757b351SPierre Pronchery vbroadcasti32x4 176(%rcx),%zmm0 5122*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5123*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5124*4757b351SPierre Pronchery 5125*4757b351SPierre Pronchery 5126*4757b351SPierre Pronchery vbroadcasti32x4 192(%rcx),%zmm0 5127*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5128*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5129*4757b351SPierre Pronchery 5130*4757b351SPierre Pronchery 5131*4757b351SPierre Pronchery vbroadcasti32x4 208(%rcx),%zmm0 5132*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5133*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5134*4757b351SPierre Pronchery 5135*4757b351SPierre Pronchery 5136*4757b351SPierre Pronchery vbroadcasti32x4 224(%rcx),%zmm0 5137*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm1,%zmm1 5138*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm2,%zmm2 5139*4757b351SPierre Pronchery 5140*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 5141*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 5142*4757b351SPierre Pronchery 5143*4757b351SPierre Pronchery 5144*4757b351SPierre Pronchery vmovdqa32 %zmm15,%zmm9 5145*4757b351SPierre Pronchery vmovdqa32 %zmm16,%zmm10 5146*4757b351SPierre Pronchery vmovdqu8 %zmm1,(%rsi) 5147*4757b351SPierre Pronchery vmovdqu8 %zmm2,64(%rsi){%k1} 5148*4757b351SPierre Pronchery addq $0x70,%rsi 5149*4757b351SPierre Pronchery vextracti32x4 $0x2,%zmm2,%xmm8 5150*4757b351SPierre Pronchery vmovdqa %xmm12,%xmm0 5151*4757b351SPierre Pronchery jmp .L_steal_cipher_EmbgEptodyewbFa 5152*4757b351SPierre Pronchery 5153*4757b351SPierre Pronchery.L_done_7_remain_EmbgEptodyewbFa: 5154*4757b351SPierre Pronchery 5155*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 5156*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 5157*4757b351SPierre Pronchery 5158*4757b351SPierre Pronchery 5159*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 5160*4757b351SPierre Pronchery vpxorq %zmm0,%zmm1,%zmm1 5161*4757b351SPierre Pronchery vpxorq %zmm0,%zmm2,%zmm2 5162*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 5163*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5164*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5165*4757b351SPierre Pronchery 5166*4757b351SPierre Pronchery 5167*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 5168*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5169*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5170*4757b351SPierre Pronchery 5171*4757b351SPierre Pronchery 5172*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 5173*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5174*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5175*4757b351SPierre Pronchery 5176*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 5177*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5178*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5179*4757b351SPierre Pronchery 5180*4757b351SPierre Pronchery 5181*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 5182*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5183*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5184*4757b351SPierre Pronchery 5185*4757b351SPierre Pronchery 5186*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 5187*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5188*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5189*4757b351SPierre Pronchery 5190*4757b351SPierre Pronchery 5191*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 5192*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5193*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5194*4757b351SPierre Pronchery 5195*4757b351SPierre Pronchery 5196*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 5197*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5198*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5199*4757b351SPierre Pronchery 5200*4757b351SPierre Pronchery 5201*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 5202*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5203*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5204*4757b351SPierre Pronchery 5205*4757b351SPierre Pronchery 5206*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 5207*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5208*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5209*4757b351SPierre Pronchery 5210*4757b351SPierre Pronchery 5211*4757b351SPierre Pronchery vbroadcasti32x4 176(%rcx),%zmm0 5212*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5213*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5214*4757b351SPierre Pronchery 5215*4757b351SPierre Pronchery 5216*4757b351SPierre Pronchery vbroadcasti32x4 192(%rcx),%zmm0 5217*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5218*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5219*4757b351SPierre Pronchery 5220*4757b351SPierre Pronchery 5221*4757b351SPierre Pronchery vbroadcasti32x4 208(%rcx),%zmm0 5222*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5223*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5224*4757b351SPierre Pronchery 5225*4757b351SPierre Pronchery 5226*4757b351SPierre Pronchery vbroadcasti32x4 224(%rcx),%zmm0 5227*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm1,%zmm1 5228*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm2,%zmm2 5229*4757b351SPierre Pronchery 5230*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 5231*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 5232*4757b351SPierre Pronchery 5233*4757b351SPierre Pronchery 5234*4757b351SPierre Pronchery vmovdqa32 %zmm15,%zmm9 5235*4757b351SPierre Pronchery vmovdqa32 %zmm16,%zmm10 5236*4757b351SPierre Pronchery vmovdqu8 %zmm1,(%rsi) 5237*4757b351SPierre Pronchery vmovdqu8 %zmm2,64(%rsi){%k1} 5238*4757b351SPierre Pronchery jmp .L_ret_EmbgEptodyewbFa 5239*4757b351SPierre Pronchery 5240*4757b351SPierre Pronchery.L_remaining_num_blocks_is_6_EmbgEptodyewbFa: 5241*4757b351SPierre Pronchery vmovdqu8 (%rdi),%zmm1 5242*4757b351SPierre Pronchery vmovdqu8 64(%rdi),%ymm2 5243*4757b351SPierre Pronchery addq $0x60,%rdi 5244*4757b351SPierre Pronchery andq $0xf,%rdx 5245*4757b351SPierre Pronchery je .L_done_6_remain_EmbgEptodyewbFa 5246*4757b351SPierre Pronchery vextracti32x4 $0x1,%zmm10,%xmm12 5247*4757b351SPierre Pronchery vextracti32x4 $0x2,%zmm10,%xmm13 5248*4757b351SPierre Pronchery vinserti32x4 $0x1,%xmm13,%zmm10,%zmm10 5249*4757b351SPierre Pronchery 5250*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 5251*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 5252*4757b351SPierre Pronchery 5253*4757b351SPierre Pronchery 5254*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 5255*4757b351SPierre Pronchery vpxorq %zmm0,%zmm1,%zmm1 5256*4757b351SPierre Pronchery vpxorq %zmm0,%zmm2,%zmm2 5257*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 5258*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5259*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5260*4757b351SPierre Pronchery 5261*4757b351SPierre Pronchery 5262*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 5263*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5264*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5265*4757b351SPierre Pronchery 5266*4757b351SPierre Pronchery 5267*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 5268*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5269*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5270*4757b351SPierre Pronchery 5271*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 5272*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5273*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5274*4757b351SPierre Pronchery 5275*4757b351SPierre Pronchery 5276*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 5277*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5278*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5279*4757b351SPierre Pronchery 5280*4757b351SPierre Pronchery 5281*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 5282*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5283*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5284*4757b351SPierre Pronchery 5285*4757b351SPierre Pronchery 5286*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 5287*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5288*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5289*4757b351SPierre Pronchery 5290*4757b351SPierre Pronchery 5291*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 5292*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5293*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5294*4757b351SPierre Pronchery 5295*4757b351SPierre Pronchery 5296*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 5297*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5298*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5299*4757b351SPierre Pronchery 5300*4757b351SPierre Pronchery 5301*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 5302*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5303*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5304*4757b351SPierre Pronchery 5305*4757b351SPierre Pronchery 5306*4757b351SPierre Pronchery vbroadcasti32x4 176(%rcx),%zmm0 5307*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5308*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5309*4757b351SPierre Pronchery 5310*4757b351SPierre Pronchery 5311*4757b351SPierre Pronchery vbroadcasti32x4 192(%rcx),%zmm0 5312*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5313*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5314*4757b351SPierre Pronchery 5315*4757b351SPierre Pronchery 5316*4757b351SPierre Pronchery vbroadcasti32x4 208(%rcx),%zmm0 5317*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5318*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5319*4757b351SPierre Pronchery 5320*4757b351SPierre Pronchery 5321*4757b351SPierre Pronchery vbroadcasti32x4 224(%rcx),%zmm0 5322*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm1,%zmm1 5323*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm2,%zmm2 5324*4757b351SPierre Pronchery 5325*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 5326*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 5327*4757b351SPierre Pronchery 5328*4757b351SPierre Pronchery 5329*4757b351SPierre Pronchery vmovdqa32 %zmm15,%zmm9 5330*4757b351SPierre Pronchery vmovdqa32 %zmm16,%zmm10 5331*4757b351SPierre Pronchery vmovdqu8 %zmm1,(%rsi) 5332*4757b351SPierre Pronchery vmovdqu8 %ymm2,64(%rsi) 5333*4757b351SPierre Pronchery addq $0x60,%rsi 5334*4757b351SPierre Pronchery vextracti32x4 $0x1,%zmm2,%xmm8 5335*4757b351SPierre Pronchery vmovdqa %xmm12,%xmm0 5336*4757b351SPierre Pronchery jmp .L_steal_cipher_EmbgEptodyewbFa 5337*4757b351SPierre Pronchery 5338*4757b351SPierre Pronchery.L_done_6_remain_EmbgEptodyewbFa: 5339*4757b351SPierre Pronchery 5340*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 5341*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 5342*4757b351SPierre Pronchery 5343*4757b351SPierre Pronchery 5344*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 5345*4757b351SPierre Pronchery vpxorq %zmm0,%zmm1,%zmm1 5346*4757b351SPierre Pronchery vpxorq %zmm0,%zmm2,%zmm2 5347*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 5348*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5349*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5350*4757b351SPierre Pronchery 5351*4757b351SPierre Pronchery 5352*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 5353*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5354*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5355*4757b351SPierre Pronchery 5356*4757b351SPierre Pronchery 5357*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 5358*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5359*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5360*4757b351SPierre Pronchery 5361*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 5362*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5363*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5364*4757b351SPierre Pronchery 5365*4757b351SPierre Pronchery 5366*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 5367*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5368*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5369*4757b351SPierre Pronchery 5370*4757b351SPierre Pronchery 5371*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 5372*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5373*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5374*4757b351SPierre Pronchery 5375*4757b351SPierre Pronchery 5376*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 5377*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5378*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5379*4757b351SPierre Pronchery 5380*4757b351SPierre Pronchery 5381*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 5382*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5383*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5384*4757b351SPierre Pronchery 5385*4757b351SPierre Pronchery 5386*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 5387*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5388*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5389*4757b351SPierre Pronchery 5390*4757b351SPierre Pronchery 5391*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 5392*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5393*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5394*4757b351SPierre Pronchery 5395*4757b351SPierre Pronchery 5396*4757b351SPierre Pronchery vbroadcasti32x4 176(%rcx),%zmm0 5397*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5398*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5399*4757b351SPierre Pronchery 5400*4757b351SPierre Pronchery 5401*4757b351SPierre Pronchery vbroadcasti32x4 192(%rcx),%zmm0 5402*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5403*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5404*4757b351SPierre Pronchery 5405*4757b351SPierre Pronchery 5406*4757b351SPierre Pronchery vbroadcasti32x4 208(%rcx),%zmm0 5407*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5408*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5409*4757b351SPierre Pronchery 5410*4757b351SPierre Pronchery 5411*4757b351SPierre Pronchery vbroadcasti32x4 224(%rcx),%zmm0 5412*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm1,%zmm1 5413*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm2,%zmm2 5414*4757b351SPierre Pronchery 5415*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 5416*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 5417*4757b351SPierre Pronchery 5418*4757b351SPierre Pronchery 5419*4757b351SPierre Pronchery vmovdqa32 %zmm15,%zmm9 5420*4757b351SPierre Pronchery vmovdqa32 %zmm16,%zmm10 5421*4757b351SPierre Pronchery vmovdqu8 %zmm1,(%rsi) 5422*4757b351SPierre Pronchery vmovdqu8 %ymm2,64(%rsi) 5423*4757b351SPierre Pronchery jmp .L_ret_EmbgEptodyewbFa 5424*4757b351SPierre Pronchery 5425*4757b351SPierre Pronchery.L_remaining_num_blocks_is_5_EmbgEptodyewbFa: 5426*4757b351SPierre Pronchery vmovdqu8 (%rdi),%zmm1 5427*4757b351SPierre Pronchery vmovdqu 64(%rdi),%xmm2 5428*4757b351SPierre Pronchery addq $0x50,%rdi 5429*4757b351SPierre Pronchery andq $0xf,%rdx 5430*4757b351SPierre Pronchery je .L_done_5_remain_EmbgEptodyewbFa 5431*4757b351SPierre Pronchery vmovdqa %xmm10,%xmm12 5432*4757b351SPierre Pronchery vextracti32x4 $0x1,%zmm10,%xmm10 5433*4757b351SPierre Pronchery 5434*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 5435*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 5436*4757b351SPierre Pronchery 5437*4757b351SPierre Pronchery 5438*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 5439*4757b351SPierre Pronchery vpxorq %zmm0,%zmm1,%zmm1 5440*4757b351SPierre Pronchery vpxorq %zmm0,%zmm2,%zmm2 5441*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 5442*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5443*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5444*4757b351SPierre Pronchery 5445*4757b351SPierre Pronchery 5446*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 5447*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5448*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5449*4757b351SPierre Pronchery 5450*4757b351SPierre Pronchery 5451*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 5452*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5453*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5454*4757b351SPierre Pronchery 5455*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 5456*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5457*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5458*4757b351SPierre Pronchery 5459*4757b351SPierre Pronchery 5460*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 5461*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5462*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5463*4757b351SPierre Pronchery 5464*4757b351SPierre Pronchery 5465*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 5466*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5467*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5468*4757b351SPierre Pronchery 5469*4757b351SPierre Pronchery 5470*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 5471*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5472*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5473*4757b351SPierre Pronchery 5474*4757b351SPierre Pronchery 5475*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 5476*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5477*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5478*4757b351SPierre Pronchery 5479*4757b351SPierre Pronchery 5480*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 5481*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5482*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5483*4757b351SPierre Pronchery 5484*4757b351SPierre Pronchery 5485*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 5486*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5487*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5488*4757b351SPierre Pronchery 5489*4757b351SPierre Pronchery 5490*4757b351SPierre Pronchery vbroadcasti32x4 176(%rcx),%zmm0 5491*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5492*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5493*4757b351SPierre Pronchery 5494*4757b351SPierre Pronchery 5495*4757b351SPierre Pronchery vbroadcasti32x4 192(%rcx),%zmm0 5496*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5497*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5498*4757b351SPierre Pronchery 5499*4757b351SPierre Pronchery 5500*4757b351SPierre Pronchery vbroadcasti32x4 208(%rcx),%zmm0 5501*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5502*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5503*4757b351SPierre Pronchery 5504*4757b351SPierre Pronchery 5505*4757b351SPierre Pronchery vbroadcasti32x4 224(%rcx),%zmm0 5506*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm1,%zmm1 5507*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm2,%zmm2 5508*4757b351SPierre Pronchery 5509*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 5510*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 5511*4757b351SPierre Pronchery 5512*4757b351SPierre Pronchery 5513*4757b351SPierre Pronchery vmovdqa32 %zmm15,%zmm9 5514*4757b351SPierre Pronchery vmovdqa32 %zmm16,%zmm10 5515*4757b351SPierre Pronchery vmovdqu8 %zmm1,(%rsi) 5516*4757b351SPierre Pronchery vmovdqu %xmm2,64(%rsi) 5517*4757b351SPierre Pronchery addq $0x50,%rsi 5518*4757b351SPierre Pronchery vmovdqa %xmm2,%xmm8 5519*4757b351SPierre Pronchery vmovdqa %xmm12,%xmm0 5520*4757b351SPierre Pronchery jmp .L_steal_cipher_EmbgEptodyewbFa 5521*4757b351SPierre Pronchery 5522*4757b351SPierre Pronchery.L_done_5_remain_EmbgEptodyewbFa: 5523*4757b351SPierre Pronchery 5524*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 5525*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 5526*4757b351SPierre Pronchery 5527*4757b351SPierre Pronchery 5528*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 5529*4757b351SPierre Pronchery vpxorq %zmm0,%zmm1,%zmm1 5530*4757b351SPierre Pronchery vpxorq %zmm0,%zmm2,%zmm2 5531*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 5532*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5533*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5534*4757b351SPierre Pronchery 5535*4757b351SPierre Pronchery 5536*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 5537*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5538*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5539*4757b351SPierre Pronchery 5540*4757b351SPierre Pronchery 5541*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 5542*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5543*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5544*4757b351SPierre Pronchery 5545*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 5546*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5547*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5548*4757b351SPierre Pronchery 5549*4757b351SPierre Pronchery 5550*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 5551*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5552*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5553*4757b351SPierre Pronchery 5554*4757b351SPierre Pronchery 5555*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 5556*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5557*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5558*4757b351SPierre Pronchery 5559*4757b351SPierre Pronchery 5560*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 5561*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5562*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5563*4757b351SPierre Pronchery 5564*4757b351SPierre Pronchery 5565*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 5566*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5567*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5568*4757b351SPierre Pronchery 5569*4757b351SPierre Pronchery 5570*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 5571*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5572*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5573*4757b351SPierre Pronchery 5574*4757b351SPierre Pronchery 5575*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 5576*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5577*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5578*4757b351SPierre Pronchery 5579*4757b351SPierre Pronchery 5580*4757b351SPierre Pronchery vbroadcasti32x4 176(%rcx),%zmm0 5581*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5582*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5583*4757b351SPierre Pronchery 5584*4757b351SPierre Pronchery 5585*4757b351SPierre Pronchery vbroadcasti32x4 192(%rcx),%zmm0 5586*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5587*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5588*4757b351SPierre Pronchery 5589*4757b351SPierre Pronchery 5590*4757b351SPierre Pronchery vbroadcasti32x4 208(%rcx),%zmm0 5591*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5592*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5593*4757b351SPierre Pronchery 5594*4757b351SPierre Pronchery 5595*4757b351SPierre Pronchery vbroadcasti32x4 224(%rcx),%zmm0 5596*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm1,%zmm1 5597*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm2,%zmm2 5598*4757b351SPierre Pronchery 5599*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 5600*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 5601*4757b351SPierre Pronchery 5602*4757b351SPierre Pronchery 5603*4757b351SPierre Pronchery vmovdqa32 %zmm15,%zmm9 5604*4757b351SPierre Pronchery vmovdqa32 %zmm16,%zmm10 5605*4757b351SPierre Pronchery vmovdqu8 %zmm1,(%rsi) 5606*4757b351SPierre Pronchery vmovdqu8 %xmm2,64(%rsi) 5607*4757b351SPierre Pronchery jmp .L_ret_EmbgEptodyewbFa 5608*4757b351SPierre Pronchery 5609*4757b351SPierre Pronchery.L_remaining_num_blocks_is_4_EmbgEptodyewbFa: 5610*4757b351SPierre Pronchery vmovdqu8 (%rdi),%zmm1 5611*4757b351SPierre Pronchery addq $0x40,%rdi 5612*4757b351SPierre Pronchery andq $0xf,%rdx 5613*4757b351SPierre Pronchery je .L_done_4_remain_EmbgEptodyewbFa 5614*4757b351SPierre Pronchery vextracti32x4 $0x3,%zmm9,%xmm12 5615*4757b351SPierre Pronchery vinserti32x4 $0x3,%xmm10,%zmm9,%zmm9 5616*4757b351SPierre Pronchery 5617*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 5618*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 5619*4757b351SPierre Pronchery 5620*4757b351SPierre Pronchery 5621*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 5622*4757b351SPierre Pronchery vpxorq %zmm0,%zmm1,%zmm1 5623*4757b351SPierre Pronchery vpxorq %zmm0,%zmm2,%zmm2 5624*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 5625*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5626*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5627*4757b351SPierre Pronchery 5628*4757b351SPierre Pronchery 5629*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 5630*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5631*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5632*4757b351SPierre Pronchery 5633*4757b351SPierre Pronchery 5634*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 5635*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5636*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5637*4757b351SPierre Pronchery 5638*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 5639*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5640*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5641*4757b351SPierre Pronchery 5642*4757b351SPierre Pronchery 5643*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 5644*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5645*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5646*4757b351SPierre Pronchery 5647*4757b351SPierre Pronchery 5648*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 5649*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5650*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5651*4757b351SPierre Pronchery 5652*4757b351SPierre Pronchery 5653*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 5654*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5655*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5656*4757b351SPierre Pronchery 5657*4757b351SPierre Pronchery 5658*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 5659*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5660*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5661*4757b351SPierre Pronchery 5662*4757b351SPierre Pronchery 5663*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 5664*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5665*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5666*4757b351SPierre Pronchery 5667*4757b351SPierre Pronchery 5668*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 5669*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5670*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5671*4757b351SPierre Pronchery 5672*4757b351SPierre Pronchery 5673*4757b351SPierre Pronchery vbroadcasti32x4 176(%rcx),%zmm0 5674*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5675*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5676*4757b351SPierre Pronchery 5677*4757b351SPierre Pronchery 5678*4757b351SPierre Pronchery vbroadcasti32x4 192(%rcx),%zmm0 5679*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5680*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5681*4757b351SPierre Pronchery 5682*4757b351SPierre Pronchery 5683*4757b351SPierre Pronchery vbroadcasti32x4 208(%rcx),%zmm0 5684*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5685*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5686*4757b351SPierre Pronchery 5687*4757b351SPierre Pronchery 5688*4757b351SPierre Pronchery vbroadcasti32x4 224(%rcx),%zmm0 5689*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm1,%zmm1 5690*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm2,%zmm2 5691*4757b351SPierre Pronchery 5692*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 5693*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 5694*4757b351SPierre Pronchery 5695*4757b351SPierre Pronchery 5696*4757b351SPierre Pronchery vmovdqa32 %zmm15,%zmm9 5697*4757b351SPierre Pronchery vmovdqa32 %zmm16,%zmm10 5698*4757b351SPierre Pronchery vmovdqu8 %zmm1,(%rsi) 5699*4757b351SPierre Pronchery addq $0x40,%rsi 5700*4757b351SPierre Pronchery vextracti32x4 $0x3,%zmm1,%xmm8 5701*4757b351SPierre Pronchery vmovdqa %xmm12,%xmm0 5702*4757b351SPierre Pronchery jmp .L_steal_cipher_EmbgEptodyewbFa 5703*4757b351SPierre Pronchery 5704*4757b351SPierre Pronchery.L_done_4_remain_EmbgEptodyewbFa: 5705*4757b351SPierre Pronchery 5706*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 5707*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 5708*4757b351SPierre Pronchery 5709*4757b351SPierre Pronchery 5710*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 5711*4757b351SPierre Pronchery vpxorq %zmm0,%zmm1,%zmm1 5712*4757b351SPierre Pronchery vpxorq %zmm0,%zmm2,%zmm2 5713*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 5714*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5715*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5716*4757b351SPierre Pronchery 5717*4757b351SPierre Pronchery 5718*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 5719*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5720*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5721*4757b351SPierre Pronchery 5722*4757b351SPierre Pronchery 5723*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 5724*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5725*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5726*4757b351SPierre Pronchery 5727*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 5728*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5729*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5730*4757b351SPierre Pronchery 5731*4757b351SPierre Pronchery 5732*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 5733*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5734*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5735*4757b351SPierre Pronchery 5736*4757b351SPierre Pronchery 5737*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 5738*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5739*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5740*4757b351SPierre Pronchery 5741*4757b351SPierre Pronchery 5742*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 5743*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5744*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5745*4757b351SPierre Pronchery 5746*4757b351SPierre Pronchery 5747*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 5748*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5749*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5750*4757b351SPierre Pronchery 5751*4757b351SPierre Pronchery 5752*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 5753*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5754*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5755*4757b351SPierre Pronchery 5756*4757b351SPierre Pronchery 5757*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 5758*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5759*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5760*4757b351SPierre Pronchery 5761*4757b351SPierre Pronchery 5762*4757b351SPierre Pronchery vbroadcasti32x4 176(%rcx),%zmm0 5763*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5764*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5765*4757b351SPierre Pronchery 5766*4757b351SPierre Pronchery 5767*4757b351SPierre Pronchery vbroadcasti32x4 192(%rcx),%zmm0 5768*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5769*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5770*4757b351SPierre Pronchery 5771*4757b351SPierre Pronchery 5772*4757b351SPierre Pronchery vbroadcasti32x4 208(%rcx),%zmm0 5773*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 5774*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 5775*4757b351SPierre Pronchery 5776*4757b351SPierre Pronchery 5777*4757b351SPierre Pronchery vbroadcasti32x4 224(%rcx),%zmm0 5778*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm1,%zmm1 5779*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm2,%zmm2 5780*4757b351SPierre Pronchery 5781*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 5782*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 5783*4757b351SPierre Pronchery 5784*4757b351SPierre Pronchery 5785*4757b351SPierre Pronchery vmovdqa32 %zmm15,%zmm9 5786*4757b351SPierre Pronchery vmovdqa32 %zmm16,%zmm10 5787*4757b351SPierre Pronchery vmovdqu8 %zmm1,(%rsi) 5788*4757b351SPierre Pronchery jmp .L_ret_EmbgEptodyewbFa 5789*4757b351SPierre Pronchery 5790*4757b351SPierre Pronchery.L_remaining_num_blocks_is_3_EmbgEptodyewbFa: 5791*4757b351SPierre Pronchery vmovdqu (%rdi),%xmm1 5792*4757b351SPierre Pronchery vmovdqu 16(%rdi),%xmm2 5793*4757b351SPierre Pronchery vmovdqu 32(%rdi),%xmm3 5794*4757b351SPierre Pronchery addq $0x30,%rdi 5795*4757b351SPierre Pronchery andq $0xf,%rdx 5796*4757b351SPierre Pronchery je .L_done_3_remain_EmbgEptodyewbFa 5797*4757b351SPierre Pronchery vextracti32x4 $0x2,%zmm9,%xmm13 5798*4757b351SPierre Pronchery vextracti32x4 $0x1,%zmm9,%xmm10 5799*4757b351SPierre Pronchery vextracti32x4 $0x3,%zmm9,%xmm11 5800*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 5801*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 5802*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 5803*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 5804*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 5805*4757b351SPierre Pronchery vpxor %xmm0,%xmm2,%xmm2 5806*4757b351SPierre Pronchery vpxor %xmm0,%xmm3,%xmm3 5807*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 5808*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5809*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5810*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 5811*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 5812*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5813*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5814*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 5815*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 5816*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5817*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5818*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 5819*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 5820*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5821*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5822*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 5823*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 5824*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5825*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5826*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 5827*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 5828*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5829*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5830*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 5831*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 5832*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5833*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5834*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 5835*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 5836*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5837*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5838*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 5839*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 5840*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5841*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5842*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 5843*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 5844*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5845*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5846*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 5847*4757b351SPierre Pronchery vmovdqu 176(%rcx),%xmm0 5848*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5849*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5850*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 5851*4757b351SPierre Pronchery vmovdqu 192(%rcx),%xmm0 5852*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5853*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5854*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 5855*4757b351SPierre Pronchery vmovdqu 208(%rcx),%xmm0 5856*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5857*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5858*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 5859*4757b351SPierre Pronchery vmovdqu 224(%rcx),%xmm0 5860*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 5861*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm2,%xmm2 5862*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm3,%xmm3 5863*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 5864*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 5865*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 5866*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 5867*4757b351SPierre Pronchery vmovdqu %xmm2,16(%rsi) 5868*4757b351SPierre Pronchery vmovdqu %xmm3,32(%rsi) 5869*4757b351SPierre Pronchery addq $0x30,%rsi 5870*4757b351SPierre Pronchery vmovdqa %xmm3,%xmm8 5871*4757b351SPierre Pronchery vmovdqa %xmm13,%xmm0 5872*4757b351SPierre Pronchery jmp .L_steal_cipher_EmbgEptodyewbFa 5873*4757b351SPierre Pronchery 5874*4757b351SPierre Pronchery.L_done_3_remain_EmbgEptodyewbFa: 5875*4757b351SPierre Pronchery vextracti32x4 $0x1,%zmm9,%xmm10 5876*4757b351SPierre Pronchery vextracti32x4 $0x2,%zmm9,%xmm11 5877*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 5878*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 5879*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 5880*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 5881*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 5882*4757b351SPierre Pronchery vpxor %xmm0,%xmm2,%xmm2 5883*4757b351SPierre Pronchery vpxor %xmm0,%xmm3,%xmm3 5884*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 5885*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5886*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5887*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 5888*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 5889*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5890*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5891*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 5892*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 5893*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5894*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5895*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 5896*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 5897*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5898*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5899*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 5900*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 5901*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5902*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5903*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 5904*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 5905*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5906*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5907*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 5908*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 5909*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5910*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5911*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 5912*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 5913*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5914*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5915*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 5916*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 5917*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5918*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5919*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 5920*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 5921*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5922*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5923*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 5924*4757b351SPierre Pronchery vmovdqu 176(%rcx),%xmm0 5925*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5926*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5927*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 5928*4757b351SPierre Pronchery vmovdqu 192(%rcx),%xmm0 5929*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5930*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5931*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 5932*4757b351SPierre Pronchery vmovdqu 208(%rcx),%xmm0 5933*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5934*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5935*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 5936*4757b351SPierre Pronchery vmovdqu 224(%rcx),%xmm0 5937*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 5938*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm2,%xmm2 5939*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm3,%xmm3 5940*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 5941*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 5942*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 5943*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 5944*4757b351SPierre Pronchery vmovdqu %xmm2,16(%rsi) 5945*4757b351SPierre Pronchery vmovdqu %xmm3,32(%rsi) 5946*4757b351SPierre Pronchery jmp .L_ret_EmbgEptodyewbFa 5947*4757b351SPierre Pronchery 5948*4757b351SPierre Pronchery.L_remaining_num_blocks_is_2_EmbgEptodyewbFa: 5949*4757b351SPierre Pronchery vmovdqu (%rdi),%xmm1 5950*4757b351SPierre Pronchery vmovdqu 16(%rdi),%xmm2 5951*4757b351SPierre Pronchery addq $0x20,%rdi 5952*4757b351SPierre Pronchery andq $0xf,%rdx 5953*4757b351SPierre Pronchery je .L_done_2_remain_EmbgEptodyewbFa 5954*4757b351SPierre Pronchery vextracti32x4 $0x2,%zmm9,%xmm10 5955*4757b351SPierre Pronchery vextracti32x4 $0x1,%zmm9,%xmm12 5956*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 5957*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 5958*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 5959*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 5960*4757b351SPierre Pronchery vpxor %xmm0,%xmm2,%xmm2 5961*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 5962*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5963*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5964*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 5965*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5966*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5967*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 5968*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5969*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5970*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 5971*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5972*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5973*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 5974*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5975*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5976*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 5977*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5978*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5979*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 5980*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5981*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5982*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 5983*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5984*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5985*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 5986*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5987*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5988*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 5989*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5990*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5991*4757b351SPierre Pronchery vmovdqu 176(%rcx),%xmm0 5992*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5993*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5994*4757b351SPierre Pronchery vmovdqu 192(%rcx),%xmm0 5995*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5996*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 5997*4757b351SPierre Pronchery vmovdqu 208(%rcx),%xmm0 5998*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 5999*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6000*4757b351SPierre Pronchery vmovdqu 224(%rcx),%xmm0 6001*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 6002*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm2,%xmm2 6003*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 6004*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 6005*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 6006*4757b351SPierre Pronchery vmovdqu %xmm2,16(%rsi) 6007*4757b351SPierre Pronchery addq $0x20,%rsi 6008*4757b351SPierre Pronchery vmovdqa %xmm2,%xmm8 6009*4757b351SPierre Pronchery vmovdqa %xmm12,%xmm0 6010*4757b351SPierre Pronchery jmp .L_steal_cipher_EmbgEptodyewbFa 6011*4757b351SPierre Pronchery 6012*4757b351SPierre Pronchery.L_done_2_remain_EmbgEptodyewbFa: 6013*4757b351SPierre Pronchery vextracti32x4 $0x1,%zmm9,%xmm10 6014*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 6015*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 6016*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 6017*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 6018*4757b351SPierre Pronchery vpxor %xmm0,%xmm2,%xmm2 6019*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 6020*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6021*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6022*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 6023*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6024*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6025*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 6026*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6027*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6028*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 6029*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6030*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6031*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 6032*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6033*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6034*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 6035*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6036*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6037*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 6038*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6039*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6040*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 6041*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6042*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6043*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 6044*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6045*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6046*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 6047*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6048*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6049*4757b351SPierre Pronchery vmovdqu 176(%rcx),%xmm0 6050*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6051*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6052*4757b351SPierre Pronchery vmovdqu 192(%rcx),%xmm0 6053*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6054*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6055*4757b351SPierre Pronchery vmovdqu 208(%rcx),%xmm0 6056*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6057*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6058*4757b351SPierre Pronchery vmovdqu 224(%rcx),%xmm0 6059*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 6060*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm2,%xmm2 6061*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 6062*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 6063*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 6064*4757b351SPierre Pronchery vmovdqu %xmm2,16(%rsi) 6065*4757b351SPierre Pronchery jmp .L_ret_EmbgEptodyewbFa 6066*4757b351SPierre Pronchery 6067*4757b351SPierre Pronchery.L_remaining_num_blocks_is_1_EmbgEptodyewbFa: 6068*4757b351SPierre Pronchery vmovdqu (%rdi),%xmm1 6069*4757b351SPierre Pronchery addq $0x10,%rdi 6070*4757b351SPierre Pronchery andq $0xf,%rdx 6071*4757b351SPierre Pronchery je .L_done_1_remain_EmbgEptodyewbFa 6072*4757b351SPierre Pronchery vextracti32x4 $0x1,%zmm9,%xmm11 6073*4757b351SPierre Pronchery vpxor %xmm11,%xmm1,%xmm1 6074*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 6075*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 6076*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 6077*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6078*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 6079*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6080*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 6081*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6082*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 6083*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6084*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 6085*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6086*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 6087*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6088*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 6089*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6090*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 6091*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6092*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 6093*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6094*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 6095*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6096*4757b351SPierre Pronchery vmovdqu 176(%rcx),%xmm0 6097*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6098*4757b351SPierre Pronchery vmovdqu 192(%rcx),%xmm0 6099*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6100*4757b351SPierre Pronchery vmovdqu 208(%rcx),%xmm0 6101*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6102*4757b351SPierre Pronchery vmovdqu 224(%rcx),%xmm0 6103*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 6104*4757b351SPierre Pronchery vpxor %xmm11,%xmm1,%xmm1 6105*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 6106*4757b351SPierre Pronchery addq $0x10,%rsi 6107*4757b351SPierre Pronchery vmovdqa %xmm1,%xmm8 6108*4757b351SPierre Pronchery vmovdqa %xmm9,%xmm0 6109*4757b351SPierre Pronchery jmp .L_steal_cipher_EmbgEptodyewbFa 6110*4757b351SPierre Pronchery 6111*4757b351SPierre Pronchery.L_done_1_remain_EmbgEptodyewbFa: 6112*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 6113*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 6114*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 6115*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 6116*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6117*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 6118*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6119*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 6120*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6121*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 6122*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6123*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 6124*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6125*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 6126*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6127*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 6128*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6129*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 6130*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6131*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 6132*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6133*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 6134*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6135*4757b351SPierre Pronchery vmovdqu 176(%rcx),%xmm0 6136*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6137*4757b351SPierre Pronchery vmovdqu 192(%rcx),%xmm0 6138*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6139*4757b351SPierre Pronchery vmovdqu 208(%rcx),%xmm0 6140*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6141*4757b351SPierre Pronchery vmovdqu 224(%rcx),%xmm0 6142*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 6143*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 6144*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 6145*4757b351SPierre Pronchery jmp .L_ret_EmbgEptodyewbFa 6146*4757b351SPierre Pronchery 6147*4757b351SPierre Pronchery.L_start_by16_EmbgEptodyewbFa: 6148*4757b351SPierre Pronchery vbroadcasti32x4 (%rsp),%zmm0 6149*4757b351SPierre Pronchery vbroadcasti32x4 shufb_15_7(%rip),%zmm8 6150*4757b351SPierre Pronchery movq $0xaa,%r8 6151*4757b351SPierre Pronchery kmovq %r8,%k2 6152*4757b351SPierre Pronchery 6153*4757b351SPierre Pronchery 6154*4757b351SPierre Pronchery vpshufb %zmm8,%zmm0,%zmm1 6155*4757b351SPierre Pronchery vpsllvq const_dq3210(%rip),%zmm0,%zmm4 6156*4757b351SPierre Pronchery vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 6157*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm2,%zmm3 6158*4757b351SPierre Pronchery vpxorq %zmm2,%zmm4,%zmm4{%k2} 6159*4757b351SPierre Pronchery vpxord %zmm4,%zmm3,%zmm9 6160*4757b351SPierre Pronchery 6161*4757b351SPierre Pronchery 6162*4757b351SPierre Pronchery vpsllvq const_dq7654(%rip),%zmm0,%zmm5 6163*4757b351SPierre Pronchery vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 6164*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm6,%zmm7 6165*4757b351SPierre Pronchery vpxorq %zmm6,%zmm5,%zmm5{%k2} 6166*4757b351SPierre Pronchery vpxord %zmm5,%zmm7,%zmm10 6167*4757b351SPierre Pronchery 6168*4757b351SPierre Pronchery 6169*4757b351SPierre Pronchery vpsrldq $0xf,%zmm9,%zmm13 6170*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 6171*4757b351SPierre Pronchery vpslldq $0x1,%zmm9,%zmm11 6172*4757b351SPierre Pronchery vpxord %zmm14,%zmm11,%zmm11 6173*4757b351SPierre Pronchery 6174*4757b351SPierre Pronchery vpsrldq $0xf,%zmm10,%zmm15 6175*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm15,%zmm16 6176*4757b351SPierre Pronchery vpslldq $0x1,%zmm10,%zmm12 6177*4757b351SPierre Pronchery vpxord %zmm16,%zmm12,%zmm12 6178*4757b351SPierre Pronchery 6179*4757b351SPierre Pronchery.L_main_loop_run_16_EmbgEptodyewbFa: 6180*4757b351SPierre Pronchery vmovdqu8 (%rdi),%zmm1 6181*4757b351SPierre Pronchery vmovdqu8 64(%rdi),%zmm2 6182*4757b351SPierre Pronchery vmovdqu8 128(%rdi),%zmm3 6183*4757b351SPierre Pronchery vmovdqu8 192(%rdi),%zmm4 6184*4757b351SPierre Pronchery vmovdqu8 240(%rdi),%xmm5 6185*4757b351SPierre Pronchery addq $0x100,%rdi 6186*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 6187*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 6188*4757b351SPierre Pronchery vpxorq %zmm11,%zmm3,%zmm3 6189*4757b351SPierre Pronchery vpxorq %zmm12,%zmm4,%zmm4 6190*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 6191*4757b351SPierre Pronchery vpxorq %zmm0,%zmm1,%zmm1 6192*4757b351SPierre Pronchery vpxorq %zmm0,%zmm2,%zmm2 6193*4757b351SPierre Pronchery vpxorq %zmm0,%zmm3,%zmm3 6194*4757b351SPierre Pronchery vpxorq %zmm0,%zmm4,%zmm4 6195*4757b351SPierre Pronchery vpsrldq $0xf,%zmm11,%zmm13 6196*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 6197*4757b351SPierre Pronchery vpslldq $0x1,%zmm11,%zmm15 6198*4757b351SPierre Pronchery vpxord %zmm14,%zmm15,%zmm15 6199*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 6200*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 6201*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 6202*4757b351SPierre Pronchery vaesdec %zmm0,%zmm3,%zmm3 6203*4757b351SPierre Pronchery vaesdec %zmm0,%zmm4,%zmm4 6204*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 6205*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 6206*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 6207*4757b351SPierre Pronchery vaesdec %zmm0,%zmm3,%zmm3 6208*4757b351SPierre Pronchery vaesdec %zmm0,%zmm4,%zmm4 6209*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 6210*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 6211*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 6212*4757b351SPierre Pronchery vaesdec %zmm0,%zmm3,%zmm3 6213*4757b351SPierre Pronchery vaesdec %zmm0,%zmm4,%zmm4 6214*4757b351SPierre Pronchery vpsrldq $0xf,%zmm12,%zmm13 6215*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 6216*4757b351SPierre Pronchery vpslldq $0x1,%zmm12,%zmm16 6217*4757b351SPierre Pronchery vpxord %zmm14,%zmm16,%zmm16 6218*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 6219*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 6220*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 6221*4757b351SPierre Pronchery vaesdec %zmm0,%zmm3,%zmm3 6222*4757b351SPierre Pronchery vaesdec %zmm0,%zmm4,%zmm4 6223*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 6224*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 6225*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 6226*4757b351SPierre Pronchery vaesdec %zmm0,%zmm3,%zmm3 6227*4757b351SPierre Pronchery vaesdec %zmm0,%zmm4,%zmm4 6228*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 6229*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 6230*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 6231*4757b351SPierre Pronchery vaesdec %zmm0,%zmm3,%zmm3 6232*4757b351SPierre Pronchery vaesdec %zmm0,%zmm4,%zmm4 6233*4757b351SPierre Pronchery vpsrldq $0xf,%zmm15,%zmm13 6234*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 6235*4757b351SPierre Pronchery vpslldq $0x1,%zmm15,%zmm17 6236*4757b351SPierre Pronchery vpxord %zmm14,%zmm17,%zmm17 6237*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 6238*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 6239*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 6240*4757b351SPierre Pronchery vaesdec %zmm0,%zmm3,%zmm3 6241*4757b351SPierre Pronchery vaesdec %zmm0,%zmm4,%zmm4 6242*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 6243*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 6244*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 6245*4757b351SPierre Pronchery vaesdec %zmm0,%zmm3,%zmm3 6246*4757b351SPierre Pronchery vaesdec %zmm0,%zmm4,%zmm4 6247*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 6248*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 6249*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 6250*4757b351SPierre Pronchery vaesdec %zmm0,%zmm3,%zmm3 6251*4757b351SPierre Pronchery vaesdec %zmm0,%zmm4,%zmm4 6252*4757b351SPierre Pronchery vpsrldq $0xf,%zmm16,%zmm13 6253*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 6254*4757b351SPierre Pronchery vpslldq $0x1,%zmm16,%zmm18 6255*4757b351SPierre Pronchery vpxord %zmm14,%zmm18,%zmm18 6256*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 6257*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 6258*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 6259*4757b351SPierre Pronchery vaesdec %zmm0,%zmm3,%zmm3 6260*4757b351SPierre Pronchery vaesdec %zmm0,%zmm4,%zmm4 6261*4757b351SPierre Pronchery vbroadcasti32x4 176(%rcx),%zmm0 6262*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 6263*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 6264*4757b351SPierre Pronchery vaesdec %zmm0,%zmm3,%zmm3 6265*4757b351SPierre Pronchery vaesdec %zmm0,%zmm4,%zmm4 6266*4757b351SPierre Pronchery vbroadcasti32x4 192(%rcx),%zmm0 6267*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 6268*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 6269*4757b351SPierre Pronchery vaesdec %zmm0,%zmm3,%zmm3 6270*4757b351SPierre Pronchery vaesdec %zmm0,%zmm4,%zmm4 6271*4757b351SPierre Pronchery vbroadcasti32x4 208(%rcx),%zmm0 6272*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 6273*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 6274*4757b351SPierre Pronchery vaesdec %zmm0,%zmm3,%zmm3 6275*4757b351SPierre Pronchery vaesdec %zmm0,%zmm4,%zmm4 6276*4757b351SPierre Pronchery vbroadcasti32x4 224(%rcx),%zmm0 6277*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm1,%zmm1 6278*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm2,%zmm2 6279*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm3,%zmm3 6280*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm4,%zmm4 6281*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 6282*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 6283*4757b351SPierre Pronchery vpxorq %zmm11,%zmm3,%zmm3 6284*4757b351SPierre Pronchery vpxorq %zmm12,%zmm4,%zmm4 6285*4757b351SPierre Pronchery 6286*4757b351SPierre Pronchery vmovdqa32 %zmm15,%zmm9 6287*4757b351SPierre Pronchery vmovdqa32 %zmm16,%zmm10 6288*4757b351SPierre Pronchery vmovdqa32 %zmm17,%zmm11 6289*4757b351SPierre Pronchery vmovdqa32 %zmm18,%zmm12 6290*4757b351SPierre Pronchery vmovdqu8 %zmm1,(%rsi) 6291*4757b351SPierre Pronchery vmovdqu8 %zmm2,64(%rsi) 6292*4757b351SPierre Pronchery vmovdqu8 %zmm3,128(%rsi) 6293*4757b351SPierre Pronchery vmovdqu8 %zmm4,192(%rsi) 6294*4757b351SPierre Pronchery addq $0x100,%rsi 6295*4757b351SPierre Pronchery subq $0x100,%rdx 6296*4757b351SPierre Pronchery cmpq $0x100,%rdx 6297*4757b351SPierre Pronchery jge .L_main_loop_run_16_EmbgEptodyewbFa 6298*4757b351SPierre Pronchery 6299*4757b351SPierre Pronchery cmpq $0x80,%rdx 6300*4757b351SPierre Pronchery jge .L_main_loop_run_8_EmbgEptodyewbFa 6301*4757b351SPierre Pronchery jmp .L_do_n_blocks_EmbgEptodyewbFa 6302*4757b351SPierre Pronchery 6303*4757b351SPierre Pronchery.L_start_by8_EmbgEptodyewbFa: 6304*4757b351SPierre Pronchery 6305*4757b351SPierre Pronchery vbroadcasti32x4 (%rsp),%zmm0 6306*4757b351SPierre Pronchery vbroadcasti32x4 shufb_15_7(%rip),%zmm8 6307*4757b351SPierre Pronchery movq $0xaa,%r8 6308*4757b351SPierre Pronchery kmovq %r8,%k2 6309*4757b351SPierre Pronchery 6310*4757b351SPierre Pronchery 6311*4757b351SPierre Pronchery vpshufb %zmm8,%zmm0,%zmm1 6312*4757b351SPierre Pronchery vpsllvq const_dq3210(%rip),%zmm0,%zmm4 6313*4757b351SPierre Pronchery vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 6314*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm2,%zmm3 6315*4757b351SPierre Pronchery vpxorq %zmm2,%zmm4,%zmm4{%k2} 6316*4757b351SPierre Pronchery vpxord %zmm4,%zmm3,%zmm9 6317*4757b351SPierre Pronchery 6318*4757b351SPierre Pronchery 6319*4757b351SPierre Pronchery vpsllvq const_dq7654(%rip),%zmm0,%zmm5 6320*4757b351SPierre Pronchery vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 6321*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm6,%zmm7 6322*4757b351SPierre Pronchery vpxorq %zmm6,%zmm5,%zmm5{%k2} 6323*4757b351SPierre Pronchery vpxord %zmm5,%zmm7,%zmm10 6324*4757b351SPierre Pronchery 6325*4757b351SPierre Pronchery.L_main_loop_run_8_EmbgEptodyewbFa: 6326*4757b351SPierre Pronchery vmovdqu8 (%rdi),%zmm1 6327*4757b351SPierre Pronchery vmovdqu8 64(%rdi),%zmm2 6328*4757b351SPierre Pronchery vmovdqu8 112(%rdi),%xmm5 6329*4757b351SPierre Pronchery addq $0x80,%rdi 6330*4757b351SPierre Pronchery 6331*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 6332*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 6333*4757b351SPierre Pronchery 6334*4757b351SPierre Pronchery 6335*4757b351SPierre Pronchery vbroadcasti32x4 (%rcx),%zmm0 6336*4757b351SPierre Pronchery vpxorq %zmm0,%zmm1,%zmm1 6337*4757b351SPierre Pronchery vpxorq %zmm0,%zmm2,%zmm2 6338*4757b351SPierre Pronchery vpsrldq $0xf,%zmm9,%zmm13 6339*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 6340*4757b351SPierre Pronchery vpslldq $0x1,%zmm9,%zmm15 6341*4757b351SPierre Pronchery vpxord %zmm14,%zmm15,%zmm15 6342*4757b351SPierre Pronchery vbroadcasti32x4 16(%rcx),%zmm0 6343*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 6344*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 6345*4757b351SPierre Pronchery 6346*4757b351SPierre Pronchery 6347*4757b351SPierre Pronchery vbroadcasti32x4 32(%rcx),%zmm0 6348*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 6349*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 6350*4757b351SPierre Pronchery 6351*4757b351SPierre Pronchery 6352*4757b351SPierre Pronchery vbroadcasti32x4 48(%rcx),%zmm0 6353*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 6354*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 6355*4757b351SPierre Pronchery vpsrldq $0xf,%zmm10,%zmm13 6356*4757b351SPierre Pronchery vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 6357*4757b351SPierre Pronchery vpslldq $0x1,%zmm10,%zmm16 6358*4757b351SPierre Pronchery vpxord %zmm14,%zmm16,%zmm16 6359*4757b351SPierre Pronchery 6360*4757b351SPierre Pronchery vbroadcasti32x4 64(%rcx),%zmm0 6361*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 6362*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 6363*4757b351SPierre Pronchery 6364*4757b351SPierre Pronchery 6365*4757b351SPierre Pronchery vbroadcasti32x4 80(%rcx),%zmm0 6366*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 6367*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 6368*4757b351SPierre Pronchery 6369*4757b351SPierre Pronchery 6370*4757b351SPierre Pronchery vbroadcasti32x4 96(%rcx),%zmm0 6371*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 6372*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 6373*4757b351SPierre Pronchery 6374*4757b351SPierre Pronchery 6375*4757b351SPierre Pronchery vbroadcasti32x4 112(%rcx),%zmm0 6376*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 6377*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 6378*4757b351SPierre Pronchery 6379*4757b351SPierre Pronchery 6380*4757b351SPierre Pronchery vbroadcasti32x4 128(%rcx),%zmm0 6381*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 6382*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 6383*4757b351SPierre Pronchery 6384*4757b351SPierre Pronchery 6385*4757b351SPierre Pronchery vbroadcasti32x4 144(%rcx),%zmm0 6386*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 6387*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 6388*4757b351SPierre Pronchery 6389*4757b351SPierre Pronchery 6390*4757b351SPierre Pronchery vbroadcasti32x4 160(%rcx),%zmm0 6391*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 6392*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 6393*4757b351SPierre Pronchery 6394*4757b351SPierre Pronchery 6395*4757b351SPierre Pronchery vbroadcasti32x4 176(%rcx),%zmm0 6396*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 6397*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 6398*4757b351SPierre Pronchery 6399*4757b351SPierre Pronchery 6400*4757b351SPierre Pronchery vbroadcasti32x4 192(%rcx),%zmm0 6401*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 6402*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 6403*4757b351SPierre Pronchery 6404*4757b351SPierre Pronchery 6405*4757b351SPierre Pronchery vbroadcasti32x4 208(%rcx),%zmm0 6406*4757b351SPierre Pronchery vaesdec %zmm0,%zmm1,%zmm1 6407*4757b351SPierre Pronchery vaesdec %zmm0,%zmm2,%zmm2 6408*4757b351SPierre Pronchery 6409*4757b351SPierre Pronchery 6410*4757b351SPierre Pronchery vbroadcasti32x4 224(%rcx),%zmm0 6411*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm1,%zmm1 6412*4757b351SPierre Pronchery vaesdeclast %zmm0,%zmm2,%zmm2 6413*4757b351SPierre Pronchery 6414*4757b351SPierre Pronchery vpxorq %zmm9,%zmm1,%zmm1 6415*4757b351SPierre Pronchery vpxorq %zmm10,%zmm2,%zmm2 6416*4757b351SPierre Pronchery 6417*4757b351SPierre Pronchery 6418*4757b351SPierre Pronchery vmovdqa32 %zmm15,%zmm9 6419*4757b351SPierre Pronchery vmovdqa32 %zmm16,%zmm10 6420*4757b351SPierre Pronchery vmovdqu8 %zmm1,(%rsi) 6421*4757b351SPierre Pronchery vmovdqu8 %zmm2,64(%rsi) 6422*4757b351SPierre Pronchery addq $0x80,%rsi 6423*4757b351SPierre Pronchery subq $0x80,%rdx 6424*4757b351SPierre Pronchery cmpq $0x80,%rdx 6425*4757b351SPierre Pronchery jge .L_main_loop_run_8_EmbgEptodyewbFa 6426*4757b351SPierre Pronchery jmp .L_do_n_blocks_EmbgEptodyewbFa 6427*4757b351SPierre Pronchery 6428*4757b351SPierre Pronchery.L_steal_cipher_EmbgEptodyewbFa: 6429*4757b351SPierre Pronchery 6430*4757b351SPierre Pronchery vmovdqa %xmm8,%xmm2 6431*4757b351SPierre Pronchery 6432*4757b351SPierre Pronchery 6433*4757b351SPierre Pronchery leaq vpshufb_shf_table(%rip),%rax 6434*4757b351SPierre Pronchery vmovdqu (%rax,%rdx,1),%xmm10 6435*4757b351SPierre Pronchery vpshufb %xmm10,%xmm8,%xmm8 6436*4757b351SPierre Pronchery 6437*4757b351SPierre Pronchery 6438*4757b351SPierre Pronchery vmovdqu -16(%rdi,%rdx,1),%xmm3 6439*4757b351SPierre Pronchery vmovdqu %xmm8,-16(%rsi,%rdx,1) 6440*4757b351SPierre Pronchery 6441*4757b351SPierre Pronchery 6442*4757b351SPierre Pronchery leaq vpshufb_shf_table(%rip),%rax 6443*4757b351SPierre Pronchery addq $16,%rax 6444*4757b351SPierre Pronchery subq %rdx,%rax 6445*4757b351SPierre Pronchery vmovdqu (%rax),%xmm10 6446*4757b351SPierre Pronchery vpxor mask1(%rip),%xmm10,%xmm10 6447*4757b351SPierre Pronchery vpshufb %xmm10,%xmm3,%xmm3 6448*4757b351SPierre Pronchery 6449*4757b351SPierre Pronchery vpblendvb %xmm10,%xmm2,%xmm3,%xmm3 6450*4757b351SPierre Pronchery 6451*4757b351SPierre Pronchery 6452*4757b351SPierre Pronchery vpxor %xmm0,%xmm3,%xmm8 6453*4757b351SPierre Pronchery 6454*4757b351SPierre Pronchery 6455*4757b351SPierre Pronchery vpxor (%rcx),%xmm8,%xmm8 6456*4757b351SPierre Pronchery vaesdec 16(%rcx),%xmm8,%xmm8 6457*4757b351SPierre Pronchery vaesdec 32(%rcx),%xmm8,%xmm8 6458*4757b351SPierre Pronchery vaesdec 48(%rcx),%xmm8,%xmm8 6459*4757b351SPierre Pronchery vaesdec 64(%rcx),%xmm8,%xmm8 6460*4757b351SPierre Pronchery vaesdec 80(%rcx),%xmm8,%xmm8 6461*4757b351SPierre Pronchery vaesdec 96(%rcx),%xmm8,%xmm8 6462*4757b351SPierre Pronchery vaesdec 112(%rcx),%xmm8,%xmm8 6463*4757b351SPierre Pronchery vaesdec 128(%rcx),%xmm8,%xmm8 6464*4757b351SPierre Pronchery vaesdec 144(%rcx),%xmm8,%xmm8 6465*4757b351SPierre Pronchery vaesdec 160(%rcx),%xmm8,%xmm8 6466*4757b351SPierre Pronchery vaesdec 176(%rcx),%xmm8,%xmm8 6467*4757b351SPierre Pronchery vaesdec 192(%rcx),%xmm8,%xmm8 6468*4757b351SPierre Pronchery vaesdec 208(%rcx),%xmm8,%xmm8 6469*4757b351SPierre Pronchery vaesdeclast 224(%rcx),%xmm8,%xmm8 6470*4757b351SPierre Pronchery 6471*4757b351SPierre Pronchery vpxor %xmm0,%xmm8,%xmm8 6472*4757b351SPierre Pronchery 6473*4757b351SPierre Pronchery.L_done_EmbgEptodyewbFa: 6474*4757b351SPierre Pronchery 6475*4757b351SPierre Pronchery vmovdqu %xmm8,-16(%rsi) 6476*4757b351SPierre Pronchery.L_ret_EmbgEptodyewbFa: 6477*4757b351SPierre Pronchery movq 128(%rsp),%rbx 6478*4757b351SPierre Pronchery xorq %r8,%r8 6479*4757b351SPierre Pronchery movq %r8,128(%rsp) 6480*4757b351SPierre Pronchery 6481*4757b351SPierre Pronchery vpxorq %zmm0,%zmm0,%zmm0 6482*4757b351SPierre Pronchery movq %rbp,%rsp 6483*4757b351SPierre Pronchery popq %rbp 6484*4757b351SPierre Pronchery vzeroupper 6485*4757b351SPierre Pronchery .byte 0xf3,0xc3 6486*4757b351SPierre Pronchery 6487*4757b351SPierre Pronchery.L_less_than_128_bytes_EmbgEptodyewbFa: 6488*4757b351SPierre Pronchery cmpq $0x10,%rdx 6489*4757b351SPierre Pronchery jb .L_ret_EmbgEptodyewbFa 6490*4757b351SPierre Pronchery 6491*4757b351SPierre Pronchery movq %rdx,%r8 6492*4757b351SPierre Pronchery andq $0x70,%r8 6493*4757b351SPierre Pronchery cmpq $0x60,%r8 6494*4757b351SPierre Pronchery je .L_num_blocks_is_6_EmbgEptodyewbFa 6495*4757b351SPierre Pronchery cmpq $0x50,%r8 6496*4757b351SPierre Pronchery je .L_num_blocks_is_5_EmbgEptodyewbFa 6497*4757b351SPierre Pronchery cmpq $0x40,%r8 6498*4757b351SPierre Pronchery je .L_num_blocks_is_4_EmbgEptodyewbFa 6499*4757b351SPierre Pronchery cmpq $0x30,%r8 6500*4757b351SPierre Pronchery je .L_num_blocks_is_3_EmbgEptodyewbFa 6501*4757b351SPierre Pronchery cmpq $0x20,%r8 6502*4757b351SPierre Pronchery je .L_num_blocks_is_2_EmbgEptodyewbFa 6503*4757b351SPierre Pronchery cmpq $0x10,%r8 6504*4757b351SPierre Pronchery je .L_num_blocks_is_1_EmbgEptodyewbFa 6505*4757b351SPierre Pronchery 6506*4757b351SPierre Pronchery.L_num_blocks_is_7_EmbgEptodyewbFa: 6507*4757b351SPierre Pronchery vmovdqa 0(%rsp),%xmm9 6508*4757b351SPierre Pronchery movq 0(%rsp),%rax 6509*4757b351SPierre Pronchery movq 8(%rsp),%rbx 6510*4757b351SPierre Pronchery vmovdqu 0(%rdi),%xmm1 6511*4757b351SPierre Pronchery xorq %r11,%r11 6512*4757b351SPierre Pronchery shlq $1,%rax 6513*4757b351SPierre Pronchery adcq %rbx,%rbx 6514*4757b351SPierre Pronchery cmovcq %r10,%r11 6515*4757b351SPierre Pronchery xorq %r11,%rax 6516*4757b351SPierre Pronchery movq %rax,16(%rsp) 6517*4757b351SPierre Pronchery movq %rbx,16 + 8(%rsp) 6518*4757b351SPierre Pronchery vmovdqa 16(%rsp),%xmm10 6519*4757b351SPierre Pronchery vmovdqu 16(%rdi),%xmm2 6520*4757b351SPierre Pronchery xorq %r11,%r11 6521*4757b351SPierre Pronchery shlq $1,%rax 6522*4757b351SPierre Pronchery adcq %rbx,%rbx 6523*4757b351SPierre Pronchery cmovcq %r10,%r11 6524*4757b351SPierre Pronchery xorq %r11,%rax 6525*4757b351SPierre Pronchery movq %rax,32(%rsp) 6526*4757b351SPierre Pronchery movq %rbx,32 + 8(%rsp) 6527*4757b351SPierre Pronchery vmovdqa 32(%rsp),%xmm11 6528*4757b351SPierre Pronchery vmovdqu 32(%rdi),%xmm3 6529*4757b351SPierre Pronchery xorq %r11,%r11 6530*4757b351SPierre Pronchery shlq $1,%rax 6531*4757b351SPierre Pronchery adcq %rbx,%rbx 6532*4757b351SPierre Pronchery cmovcq %r10,%r11 6533*4757b351SPierre Pronchery xorq %r11,%rax 6534*4757b351SPierre Pronchery movq %rax,48(%rsp) 6535*4757b351SPierre Pronchery movq %rbx,48 + 8(%rsp) 6536*4757b351SPierre Pronchery vmovdqa 48(%rsp),%xmm12 6537*4757b351SPierre Pronchery vmovdqu 48(%rdi),%xmm4 6538*4757b351SPierre Pronchery xorq %r11,%r11 6539*4757b351SPierre Pronchery shlq $1,%rax 6540*4757b351SPierre Pronchery adcq %rbx,%rbx 6541*4757b351SPierre Pronchery cmovcq %r10,%r11 6542*4757b351SPierre Pronchery xorq %r11,%rax 6543*4757b351SPierre Pronchery movq %rax,64(%rsp) 6544*4757b351SPierre Pronchery movq %rbx,64 + 8(%rsp) 6545*4757b351SPierre Pronchery vmovdqa 64(%rsp),%xmm13 6546*4757b351SPierre Pronchery vmovdqu 64(%rdi),%xmm5 6547*4757b351SPierre Pronchery xorq %r11,%r11 6548*4757b351SPierre Pronchery shlq $1,%rax 6549*4757b351SPierre Pronchery adcq %rbx,%rbx 6550*4757b351SPierre Pronchery cmovcq %r10,%r11 6551*4757b351SPierre Pronchery xorq %r11,%rax 6552*4757b351SPierre Pronchery movq %rax,80(%rsp) 6553*4757b351SPierre Pronchery movq %rbx,80 + 8(%rsp) 6554*4757b351SPierre Pronchery vmovdqa 80(%rsp),%xmm14 6555*4757b351SPierre Pronchery vmovdqu 80(%rdi),%xmm6 6556*4757b351SPierre Pronchery xorq %r11,%r11 6557*4757b351SPierre Pronchery shlq $1,%rax 6558*4757b351SPierre Pronchery adcq %rbx,%rbx 6559*4757b351SPierre Pronchery cmovcq %r10,%r11 6560*4757b351SPierre Pronchery xorq %r11,%rax 6561*4757b351SPierre Pronchery movq %rax,96(%rsp) 6562*4757b351SPierre Pronchery movq %rbx,96 + 8(%rsp) 6563*4757b351SPierre Pronchery vmovdqa 96(%rsp),%xmm15 6564*4757b351SPierre Pronchery vmovdqu 96(%rdi),%xmm7 6565*4757b351SPierre Pronchery addq $0x70,%rdi 6566*4757b351SPierre Pronchery andq $0xf,%rdx 6567*4757b351SPierre Pronchery je .L_done_7_EmbgEptodyewbFa 6568*4757b351SPierre Pronchery 6569*4757b351SPierre Pronchery.L_steal_cipher_7_EmbgEptodyewbFa: 6570*4757b351SPierre Pronchery xorq %r11,%r11 6571*4757b351SPierre Pronchery shlq $1,%rax 6572*4757b351SPierre Pronchery adcq %rbx,%rbx 6573*4757b351SPierre Pronchery cmovcq %r10,%r11 6574*4757b351SPierre Pronchery xorq %r11,%rax 6575*4757b351SPierre Pronchery movq %rax,16(%rsp) 6576*4757b351SPierre Pronchery movq %rbx,24(%rsp) 6577*4757b351SPierre Pronchery vmovdqa64 %xmm15,%xmm16 6578*4757b351SPierre Pronchery vmovdqa 16(%rsp),%xmm15 6579*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 6580*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 6581*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 6582*4757b351SPierre Pronchery vpxor %xmm12,%xmm4,%xmm4 6583*4757b351SPierre Pronchery vpxor %xmm13,%xmm5,%xmm5 6584*4757b351SPierre Pronchery vpxor %xmm14,%xmm6,%xmm6 6585*4757b351SPierre Pronchery vpxor %xmm15,%xmm7,%xmm7 6586*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 6587*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 6588*4757b351SPierre Pronchery vpxor %xmm0,%xmm2,%xmm2 6589*4757b351SPierre Pronchery vpxor %xmm0,%xmm3,%xmm3 6590*4757b351SPierre Pronchery vpxor %xmm0,%xmm4,%xmm4 6591*4757b351SPierre Pronchery vpxor %xmm0,%xmm5,%xmm5 6592*4757b351SPierre Pronchery vpxor %xmm0,%xmm6,%xmm6 6593*4757b351SPierre Pronchery vpxor %xmm0,%xmm7,%xmm7 6594*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 6595*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6596*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6597*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 6598*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 6599*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 6600*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 6601*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 6602*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 6603*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6604*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6605*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 6606*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 6607*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 6608*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 6609*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 6610*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 6611*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6612*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6613*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 6614*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 6615*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 6616*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 6617*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 6618*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 6619*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6620*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6621*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 6622*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 6623*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 6624*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 6625*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 6626*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 6627*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6628*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6629*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 6630*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 6631*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 6632*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 6633*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 6634*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 6635*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6636*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6637*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 6638*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 6639*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 6640*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 6641*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 6642*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 6643*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6644*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6645*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 6646*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 6647*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 6648*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 6649*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 6650*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 6651*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6652*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6653*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 6654*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 6655*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 6656*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 6657*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 6658*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 6659*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6660*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6661*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 6662*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 6663*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 6664*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 6665*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 6666*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 6667*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6668*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6669*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 6670*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 6671*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 6672*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 6673*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 6674*4757b351SPierre Pronchery vmovdqu 176(%rcx),%xmm0 6675*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6676*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6677*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 6678*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 6679*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 6680*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 6681*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 6682*4757b351SPierre Pronchery vmovdqu 192(%rcx),%xmm0 6683*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6684*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6685*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 6686*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 6687*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 6688*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 6689*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 6690*4757b351SPierre Pronchery vmovdqu 208(%rcx),%xmm0 6691*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6692*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6693*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 6694*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 6695*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 6696*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 6697*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 6698*4757b351SPierre Pronchery vmovdqu 224(%rcx),%xmm0 6699*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 6700*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm2,%xmm2 6701*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm3,%xmm3 6702*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm4,%xmm4 6703*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm5,%xmm5 6704*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm6,%xmm6 6705*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm7,%xmm7 6706*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 6707*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 6708*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 6709*4757b351SPierre Pronchery vpxor %xmm12,%xmm4,%xmm4 6710*4757b351SPierre Pronchery vpxor %xmm13,%xmm5,%xmm5 6711*4757b351SPierre Pronchery vpxor %xmm14,%xmm6,%xmm6 6712*4757b351SPierre Pronchery vpxor %xmm15,%xmm7,%xmm7 6713*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 6714*4757b351SPierre Pronchery vmovdqu %xmm2,16(%rsi) 6715*4757b351SPierre Pronchery vmovdqu %xmm3,32(%rsi) 6716*4757b351SPierre Pronchery vmovdqu %xmm4,48(%rsi) 6717*4757b351SPierre Pronchery vmovdqu %xmm5,64(%rsi) 6718*4757b351SPierre Pronchery vmovdqu %xmm6,80(%rsi) 6719*4757b351SPierre Pronchery addq $0x70,%rsi 6720*4757b351SPierre Pronchery vmovdqa64 %xmm16,%xmm0 6721*4757b351SPierre Pronchery vmovdqa %xmm7,%xmm8 6722*4757b351SPierre Pronchery jmp .L_steal_cipher_EmbgEptodyewbFa 6723*4757b351SPierre Pronchery 6724*4757b351SPierre Pronchery.L_done_7_EmbgEptodyewbFa: 6725*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 6726*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 6727*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 6728*4757b351SPierre Pronchery vpxor %xmm12,%xmm4,%xmm4 6729*4757b351SPierre Pronchery vpxor %xmm13,%xmm5,%xmm5 6730*4757b351SPierre Pronchery vpxor %xmm14,%xmm6,%xmm6 6731*4757b351SPierre Pronchery vpxor %xmm15,%xmm7,%xmm7 6732*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 6733*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 6734*4757b351SPierre Pronchery vpxor %xmm0,%xmm2,%xmm2 6735*4757b351SPierre Pronchery vpxor %xmm0,%xmm3,%xmm3 6736*4757b351SPierre Pronchery vpxor %xmm0,%xmm4,%xmm4 6737*4757b351SPierre Pronchery vpxor %xmm0,%xmm5,%xmm5 6738*4757b351SPierre Pronchery vpxor %xmm0,%xmm6,%xmm6 6739*4757b351SPierre Pronchery vpxor %xmm0,%xmm7,%xmm7 6740*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 6741*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6742*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6743*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 6744*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 6745*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 6746*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 6747*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 6748*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 6749*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6750*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6751*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 6752*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 6753*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 6754*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 6755*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 6756*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 6757*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6758*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6759*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 6760*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 6761*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 6762*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 6763*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 6764*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 6765*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6766*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6767*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 6768*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 6769*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 6770*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 6771*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 6772*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 6773*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6774*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6775*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 6776*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 6777*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 6778*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 6779*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 6780*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 6781*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6782*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6783*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 6784*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 6785*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 6786*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 6787*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 6788*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 6789*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6790*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6791*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 6792*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 6793*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 6794*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 6795*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 6796*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 6797*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6798*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6799*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 6800*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 6801*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 6802*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 6803*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 6804*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 6805*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6806*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6807*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 6808*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 6809*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 6810*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 6811*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 6812*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 6813*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6814*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6815*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 6816*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 6817*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 6818*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 6819*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 6820*4757b351SPierre Pronchery vmovdqu 176(%rcx),%xmm0 6821*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6822*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6823*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 6824*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 6825*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 6826*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 6827*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 6828*4757b351SPierre Pronchery vmovdqu 192(%rcx),%xmm0 6829*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6830*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6831*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 6832*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 6833*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 6834*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 6835*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 6836*4757b351SPierre Pronchery vmovdqu 208(%rcx),%xmm0 6837*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6838*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6839*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 6840*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 6841*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 6842*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 6843*4757b351SPierre Pronchery vaesdec %xmm0,%xmm7,%xmm7 6844*4757b351SPierre Pronchery vmovdqu 224(%rcx),%xmm0 6845*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 6846*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm2,%xmm2 6847*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm3,%xmm3 6848*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm4,%xmm4 6849*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm5,%xmm5 6850*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm6,%xmm6 6851*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm7,%xmm7 6852*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 6853*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 6854*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 6855*4757b351SPierre Pronchery vpxor %xmm12,%xmm4,%xmm4 6856*4757b351SPierre Pronchery vpxor %xmm13,%xmm5,%xmm5 6857*4757b351SPierre Pronchery vpxor %xmm14,%xmm6,%xmm6 6858*4757b351SPierre Pronchery vpxor %xmm15,%xmm7,%xmm7 6859*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 6860*4757b351SPierre Pronchery vmovdqu %xmm2,16(%rsi) 6861*4757b351SPierre Pronchery vmovdqu %xmm3,32(%rsi) 6862*4757b351SPierre Pronchery vmovdqu %xmm4,48(%rsi) 6863*4757b351SPierre Pronchery vmovdqu %xmm5,64(%rsi) 6864*4757b351SPierre Pronchery vmovdqu %xmm6,80(%rsi) 6865*4757b351SPierre Pronchery addq $0x70,%rsi 6866*4757b351SPierre Pronchery vmovdqa %xmm7,%xmm8 6867*4757b351SPierre Pronchery jmp .L_done_EmbgEptodyewbFa 6868*4757b351SPierre Pronchery 6869*4757b351SPierre Pronchery.L_num_blocks_is_6_EmbgEptodyewbFa: 6870*4757b351SPierre Pronchery vmovdqa 0(%rsp),%xmm9 6871*4757b351SPierre Pronchery movq 0(%rsp),%rax 6872*4757b351SPierre Pronchery movq 8(%rsp),%rbx 6873*4757b351SPierre Pronchery vmovdqu 0(%rdi),%xmm1 6874*4757b351SPierre Pronchery xorq %r11,%r11 6875*4757b351SPierre Pronchery shlq $1,%rax 6876*4757b351SPierre Pronchery adcq %rbx,%rbx 6877*4757b351SPierre Pronchery cmovcq %r10,%r11 6878*4757b351SPierre Pronchery xorq %r11,%rax 6879*4757b351SPierre Pronchery movq %rax,16(%rsp) 6880*4757b351SPierre Pronchery movq %rbx,16 + 8(%rsp) 6881*4757b351SPierre Pronchery vmovdqa 16(%rsp),%xmm10 6882*4757b351SPierre Pronchery vmovdqu 16(%rdi),%xmm2 6883*4757b351SPierre Pronchery xorq %r11,%r11 6884*4757b351SPierre Pronchery shlq $1,%rax 6885*4757b351SPierre Pronchery adcq %rbx,%rbx 6886*4757b351SPierre Pronchery cmovcq %r10,%r11 6887*4757b351SPierre Pronchery xorq %r11,%rax 6888*4757b351SPierre Pronchery movq %rax,32(%rsp) 6889*4757b351SPierre Pronchery movq %rbx,32 + 8(%rsp) 6890*4757b351SPierre Pronchery vmovdqa 32(%rsp),%xmm11 6891*4757b351SPierre Pronchery vmovdqu 32(%rdi),%xmm3 6892*4757b351SPierre Pronchery xorq %r11,%r11 6893*4757b351SPierre Pronchery shlq $1,%rax 6894*4757b351SPierre Pronchery adcq %rbx,%rbx 6895*4757b351SPierre Pronchery cmovcq %r10,%r11 6896*4757b351SPierre Pronchery xorq %r11,%rax 6897*4757b351SPierre Pronchery movq %rax,48(%rsp) 6898*4757b351SPierre Pronchery movq %rbx,48 + 8(%rsp) 6899*4757b351SPierre Pronchery vmovdqa 48(%rsp),%xmm12 6900*4757b351SPierre Pronchery vmovdqu 48(%rdi),%xmm4 6901*4757b351SPierre Pronchery xorq %r11,%r11 6902*4757b351SPierre Pronchery shlq $1,%rax 6903*4757b351SPierre Pronchery adcq %rbx,%rbx 6904*4757b351SPierre Pronchery cmovcq %r10,%r11 6905*4757b351SPierre Pronchery xorq %r11,%rax 6906*4757b351SPierre Pronchery movq %rax,64(%rsp) 6907*4757b351SPierre Pronchery movq %rbx,64 + 8(%rsp) 6908*4757b351SPierre Pronchery vmovdqa 64(%rsp),%xmm13 6909*4757b351SPierre Pronchery vmovdqu 64(%rdi),%xmm5 6910*4757b351SPierre Pronchery xorq %r11,%r11 6911*4757b351SPierre Pronchery shlq $1,%rax 6912*4757b351SPierre Pronchery adcq %rbx,%rbx 6913*4757b351SPierre Pronchery cmovcq %r10,%r11 6914*4757b351SPierre Pronchery xorq %r11,%rax 6915*4757b351SPierre Pronchery movq %rax,80(%rsp) 6916*4757b351SPierre Pronchery movq %rbx,80 + 8(%rsp) 6917*4757b351SPierre Pronchery vmovdqa 80(%rsp),%xmm14 6918*4757b351SPierre Pronchery vmovdqu 80(%rdi),%xmm6 6919*4757b351SPierre Pronchery addq $0x60,%rdi 6920*4757b351SPierre Pronchery andq $0xf,%rdx 6921*4757b351SPierre Pronchery je .L_done_6_EmbgEptodyewbFa 6922*4757b351SPierre Pronchery 6923*4757b351SPierre Pronchery.L_steal_cipher_6_EmbgEptodyewbFa: 6924*4757b351SPierre Pronchery xorq %r11,%r11 6925*4757b351SPierre Pronchery shlq $1,%rax 6926*4757b351SPierre Pronchery adcq %rbx,%rbx 6927*4757b351SPierre Pronchery cmovcq %r10,%r11 6928*4757b351SPierre Pronchery xorq %r11,%rax 6929*4757b351SPierre Pronchery movq %rax,16(%rsp) 6930*4757b351SPierre Pronchery movq %rbx,24(%rsp) 6931*4757b351SPierre Pronchery vmovdqa64 %xmm14,%xmm15 6932*4757b351SPierre Pronchery vmovdqa 16(%rsp),%xmm14 6933*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 6934*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 6935*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 6936*4757b351SPierre Pronchery vpxor %xmm12,%xmm4,%xmm4 6937*4757b351SPierre Pronchery vpxor %xmm13,%xmm5,%xmm5 6938*4757b351SPierre Pronchery vpxor %xmm14,%xmm6,%xmm6 6939*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 6940*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 6941*4757b351SPierre Pronchery vpxor %xmm0,%xmm2,%xmm2 6942*4757b351SPierre Pronchery vpxor %xmm0,%xmm3,%xmm3 6943*4757b351SPierre Pronchery vpxor %xmm0,%xmm4,%xmm4 6944*4757b351SPierre Pronchery vpxor %xmm0,%xmm5,%xmm5 6945*4757b351SPierre Pronchery vpxor %xmm0,%xmm6,%xmm6 6946*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 6947*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6948*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6949*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 6950*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 6951*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 6952*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 6953*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 6954*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6955*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6956*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 6957*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 6958*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 6959*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 6960*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 6961*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6962*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6963*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 6964*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 6965*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 6966*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 6967*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 6968*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6969*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6970*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 6971*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 6972*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 6973*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 6974*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 6975*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6976*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6977*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 6978*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 6979*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 6980*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 6981*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 6982*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6983*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6984*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 6985*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 6986*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 6987*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 6988*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 6989*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6990*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6991*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 6992*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 6993*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 6994*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 6995*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 6996*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 6997*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 6998*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 6999*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7000*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7001*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 7002*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 7003*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7004*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7005*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7006*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7007*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7008*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 7009*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 7010*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7011*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7012*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7013*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7014*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7015*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 7016*4757b351SPierre Pronchery vmovdqu 176(%rcx),%xmm0 7017*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7018*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7019*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7020*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7021*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7022*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 7023*4757b351SPierre Pronchery vmovdqu 192(%rcx),%xmm0 7024*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7025*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7026*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7027*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7028*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7029*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 7030*4757b351SPierre Pronchery vmovdqu 208(%rcx),%xmm0 7031*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7032*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7033*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7034*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7035*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7036*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 7037*4757b351SPierre Pronchery vmovdqu 224(%rcx),%xmm0 7038*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 7039*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm2,%xmm2 7040*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm3,%xmm3 7041*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm4,%xmm4 7042*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm5,%xmm5 7043*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm6,%xmm6 7044*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 7045*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 7046*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 7047*4757b351SPierre Pronchery vpxor %xmm12,%xmm4,%xmm4 7048*4757b351SPierre Pronchery vpxor %xmm13,%xmm5,%xmm5 7049*4757b351SPierre Pronchery vpxor %xmm14,%xmm6,%xmm6 7050*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 7051*4757b351SPierre Pronchery vmovdqu %xmm2,16(%rsi) 7052*4757b351SPierre Pronchery vmovdqu %xmm3,32(%rsi) 7053*4757b351SPierre Pronchery vmovdqu %xmm4,48(%rsi) 7054*4757b351SPierre Pronchery vmovdqu %xmm5,64(%rsi) 7055*4757b351SPierre Pronchery addq $0x60,%rsi 7056*4757b351SPierre Pronchery vmovdqa %xmm15,%xmm0 7057*4757b351SPierre Pronchery vmovdqa %xmm6,%xmm8 7058*4757b351SPierre Pronchery jmp .L_steal_cipher_EmbgEptodyewbFa 7059*4757b351SPierre Pronchery 7060*4757b351SPierre Pronchery.L_done_6_EmbgEptodyewbFa: 7061*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 7062*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 7063*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 7064*4757b351SPierre Pronchery vpxor %xmm12,%xmm4,%xmm4 7065*4757b351SPierre Pronchery vpxor %xmm13,%xmm5,%xmm5 7066*4757b351SPierre Pronchery vpxor %xmm14,%xmm6,%xmm6 7067*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 7068*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 7069*4757b351SPierre Pronchery vpxor %xmm0,%xmm2,%xmm2 7070*4757b351SPierre Pronchery vpxor %xmm0,%xmm3,%xmm3 7071*4757b351SPierre Pronchery vpxor %xmm0,%xmm4,%xmm4 7072*4757b351SPierre Pronchery vpxor %xmm0,%xmm5,%xmm5 7073*4757b351SPierre Pronchery vpxor %xmm0,%xmm6,%xmm6 7074*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 7075*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7076*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7077*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7078*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7079*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7080*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 7081*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 7082*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7083*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7084*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7085*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7086*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7087*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 7088*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 7089*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7090*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7091*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7092*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7093*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7094*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 7095*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 7096*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7097*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7098*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7099*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7100*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7101*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 7102*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 7103*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7104*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7105*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7106*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7107*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7108*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 7109*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 7110*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7111*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7112*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7113*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7114*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7115*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 7116*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 7117*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7118*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7119*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7120*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7121*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7122*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 7123*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 7124*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7125*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7126*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7127*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7128*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7129*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 7130*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 7131*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7132*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7133*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7134*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7135*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7136*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 7137*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 7138*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7139*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7140*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7141*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7142*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7143*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 7144*4757b351SPierre Pronchery vmovdqu 176(%rcx),%xmm0 7145*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7146*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7147*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7148*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7149*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7150*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 7151*4757b351SPierre Pronchery vmovdqu 192(%rcx),%xmm0 7152*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7153*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7154*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7155*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7156*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7157*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 7158*4757b351SPierre Pronchery vmovdqu 208(%rcx),%xmm0 7159*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7160*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7161*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7162*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7163*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7164*4757b351SPierre Pronchery vaesdec %xmm0,%xmm6,%xmm6 7165*4757b351SPierre Pronchery vmovdqu 224(%rcx),%xmm0 7166*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 7167*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm2,%xmm2 7168*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm3,%xmm3 7169*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm4,%xmm4 7170*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm5,%xmm5 7171*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm6,%xmm6 7172*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 7173*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 7174*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 7175*4757b351SPierre Pronchery vpxor %xmm12,%xmm4,%xmm4 7176*4757b351SPierre Pronchery vpxor %xmm13,%xmm5,%xmm5 7177*4757b351SPierre Pronchery vpxor %xmm14,%xmm6,%xmm6 7178*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 7179*4757b351SPierre Pronchery vmovdqu %xmm2,16(%rsi) 7180*4757b351SPierre Pronchery vmovdqu %xmm3,32(%rsi) 7181*4757b351SPierre Pronchery vmovdqu %xmm4,48(%rsi) 7182*4757b351SPierre Pronchery vmovdqu %xmm5,64(%rsi) 7183*4757b351SPierre Pronchery addq $0x60,%rsi 7184*4757b351SPierre Pronchery vmovdqa %xmm6,%xmm8 7185*4757b351SPierre Pronchery jmp .L_done_EmbgEptodyewbFa 7186*4757b351SPierre Pronchery 7187*4757b351SPierre Pronchery.L_num_blocks_is_5_EmbgEptodyewbFa: 7188*4757b351SPierre Pronchery vmovdqa 0(%rsp),%xmm9 7189*4757b351SPierre Pronchery movq 0(%rsp),%rax 7190*4757b351SPierre Pronchery movq 8(%rsp),%rbx 7191*4757b351SPierre Pronchery vmovdqu 0(%rdi),%xmm1 7192*4757b351SPierre Pronchery xorq %r11,%r11 7193*4757b351SPierre Pronchery shlq $1,%rax 7194*4757b351SPierre Pronchery adcq %rbx,%rbx 7195*4757b351SPierre Pronchery cmovcq %r10,%r11 7196*4757b351SPierre Pronchery xorq %r11,%rax 7197*4757b351SPierre Pronchery movq %rax,16(%rsp) 7198*4757b351SPierre Pronchery movq %rbx,16 + 8(%rsp) 7199*4757b351SPierre Pronchery vmovdqa 16(%rsp),%xmm10 7200*4757b351SPierre Pronchery vmovdqu 16(%rdi),%xmm2 7201*4757b351SPierre Pronchery xorq %r11,%r11 7202*4757b351SPierre Pronchery shlq $1,%rax 7203*4757b351SPierre Pronchery adcq %rbx,%rbx 7204*4757b351SPierre Pronchery cmovcq %r10,%r11 7205*4757b351SPierre Pronchery xorq %r11,%rax 7206*4757b351SPierre Pronchery movq %rax,32(%rsp) 7207*4757b351SPierre Pronchery movq %rbx,32 + 8(%rsp) 7208*4757b351SPierre Pronchery vmovdqa 32(%rsp),%xmm11 7209*4757b351SPierre Pronchery vmovdqu 32(%rdi),%xmm3 7210*4757b351SPierre Pronchery xorq %r11,%r11 7211*4757b351SPierre Pronchery shlq $1,%rax 7212*4757b351SPierre Pronchery adcq %rbx,%rbx 7213*4757b351SPierre Pronchery cmovcq %r10,%r11 7214*4757b351SPierre Pronchery xorq %r11,%rax 7215*4757b351SPierre Pronchery movq %rax,48(%rsp) 7216*4757b351SPierre Pronchery movq %rbx,48 + 8(%rsp) 7217*4757b351SPierre Pronchery vmovdqa 48(%rsp),%xmm12 7218*4757b351SPierre Pronchery vmovdqu 48(%rdi),%xmm4 7219*4757b351SPierre Pronchery xorq %r11,%r11 7220*4757b351SPierre Pronchery shlq $1,%rax 7221*4757b351SPierre Pronchery adcq %rbx,%rbx 7222*4757b351SPierre Pronchery cmovcq %r10,%r11 7223*4757b351SPierre Pronchery xorq %r11,%rax 7224*4757b351SPierre Pronchery movq %rax,64(%rsp) 7225*4757b351SPierre Pronchery movq %rbx,64 + 8(%rsp) 7226*4757b351SPierre Pronchery vmovdqa 64(%rsp),%xmm13 7227*4757b351SPierre Pronchery vmovdqu 64(%rdi),%xmm5 7228*4757b351SPierre Pronchery addq $0x50,%rdi 7229*4757b351SPierre Pronchery andq $0xf,%rdx 7230*4757b351SPierre Pronchery je .L_done_5_EmbgEptodyewbFa 7231*4757b351SPierre Pronchery 7232*4757b351SPierre Pronchery.L_steal_cipher_5_EmbgEptodyewbFa: 7233*4757b351SPierre Pronchery xorq %r11,%r11 7234*4757b351SPierre Pronchery shlq $1,%rax 7235*4757b351SPierre Pronchery adcq %rbx,%rbx 7236*4757b351SPierre Pronchery cmovcq %r10,%r11 7237*4757b351SPierre Pronchery xorq %r11,%rax 7238*4757b351SPierre Pronchery movq %rax,16(%rsp) 7239*4757b351SPierre Pronchery movq %rbx,24(%rsp) 7240*4757b351SPierre Pronchery vmovdqa64 %xmm13,%xmm14 7241*4757b351SPierre Pronchery vmovdqa 16(%rsp),%xmm13 7242*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 7243*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 7244*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 7245*4757b351SPierre Pronchery vpxor %xmm12,%xmm4,%xmm4 7246*4757b351SPierre Pronchery vpxor %xmm13,%xmm5,%xmm5 7247*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 7248*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 7249*4757b351SPierre Pronchery vpxor %xmm0,%xmm2,%xmm2 7250*4757b351SPierre Pronchery vpxor %xmm0,%xmm3,%xmm3 7251*4757b351SPierre Pronchery vpxor %xmm0,%xmm4,%xmm4 7252*4757b351SPierre Pronchery vpxor %xmm0,%xmm5,%xmm5 7253*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 7254*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7255*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7256*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7257*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7258*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7259*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 7260*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7261*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7262*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7263*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7264*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7265*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 7266*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7267*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7268*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7269*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7270*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7271*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 7272*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7273*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7274*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7275*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7276*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7277*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 7278*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7279*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7280*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7281*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7282*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7283*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 7284*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7285*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7286*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7287*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7288*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7289*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 7290*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7291*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7292*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7293*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7294*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7295*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 7296*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7297*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7298*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7299*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7300*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7301*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 7302*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7303*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7304*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7305*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7306*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7307*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 7308*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7309*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7310*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7311*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7312*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7313*4757b351SPierre Pronchery vmovdqu 176(%rcx),%xmm0 7314*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7315*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7316*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7317*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7318*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7319*4757b351SPierre Pronchery vmovdqu 192(%rcx),%xmm0 7320*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7321*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7322*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7323*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7324*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7325*4757b351SPierre Pronchery vmovdqu 208(%rcx),%xmm0 7326*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7327*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7328*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7329*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7330*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7331*4757b351SPierre Pronchery vmovdqu 224(%rcx),%xmm0 7332*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 7333*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm2,%xmm2 7334*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm3,%xmm3 7335*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm4,%xmm4 7336*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm5,%xmm5 7337*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 7338*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 7339*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 7340*4757b351SPierre Pronchery vpxor %xmm12,%xmm4,%xmm4 7341*4757b351SPierre Pronchery vpxor %xmm13,%xmm5,%xmm5 7342*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 7343*4757b351SPierre Pronchery vmovdqu %xmm2,16(%rsi) 7344*4757b351SPierre Pronchery vmovdqu %xmm3,32(%rsi) 7345*4757b351SPierre Pronchery vmovdqu %xmm4,48(%rsi) 7346*4757b351SPierre Pronchery addq $0x50,%rsi 7347*4757b351SPierre Pronchery vmovdqa %xmm14,%xmm0 7348*4757b351SPierre Pronchery vmovdqa %xmm5,%xmm8 7349*4757b351SPierre Pronchery jmp .L_steal_cipher_EmbgEptodyewbFa 7350*4757b351SPierre Pronchery 7351*4757b351SPierre Pronchery.L_done_5_EmbgEptodyewbFa: 7352*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 7353*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 7354*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 7355*4757b351SPierre Pronchery vpxor %xmm12,%xmm4,%xmm4 7356*4757b351SPierre Pronchery vpxor %xmm13,%xmm5,%xmm5 7357*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 7358*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 7359*4757b351SPierre Pronchery vpxor %xmm0,%xmm2,%xmm2 7360*4757b351SPierre Pronchery vpxor %xmm0,%xmm3,%xmm3 7361*4757b351SPierre Pronchery vpxor %xmm0,%xmm4,%xmm4 7362*4757b351SPierre Pronchery vpxor %xmm0,%xmm5,%xmm5 7363*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 7364*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7365*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7366*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7367*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7368*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7369*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 7370*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7371*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7372*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7373*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7374*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7375*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 7376*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7377*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7378*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7379*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7380*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7381*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 7382*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7383*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7384*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7385*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7386*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7387*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 7388*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7389*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7390*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7391*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7392*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7393*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 7394*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7395*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7396*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7397*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7398*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7399*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 7400*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7401*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7402*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7403*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7404*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7405*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 7406*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7407*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7408*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7409*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7410*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7411*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 7412*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7413*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7414*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7415*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7416*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7417*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 7418*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7419*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7420*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7421*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7422*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7423*4757b351SPierre Pronchery vmovdqu 176(%rcx),%xmm0 7424*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7425*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7426*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7427*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7428*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7429*4757b351SPierre Pronchery vmovdqu 192(%rcx),%xmm0 7430*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7431*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7432*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7433*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7434*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7435*4757b351SPierre Pronchery vmovdqu 208(%rcx),%xmm0 7436*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7437*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7438*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7439*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7440*4757b351SPierre Pronchery vaesdec %xmm0,%xmm5,%xmm5 7441*4757b351SPierre Pronchery vmovdqu 224(%rcx),%xmm0 7442*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 7443*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm2,%xmm2 7444*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm3,%xmm3 7445*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm4,%xmm4 7446*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm5,%xmm5 7447*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 7448*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 7449*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 7450*4757b351SPierre Pronchery vpxor %xmm12,%xmm4,%xmm4 7451*4757b351SPierre Pronchery vpxor %xmm13,%xmm5,%xmm5 7452*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 7453*4757b351SPierre Pronchery vmovdqu %xmm2,16(%rsi) 7454*4757b351SPierre Pronchery vmovdqu %xmm3,32(%rsi) 7455*4757b351SPierre Pronchery vmovdqu %xmm4,48(%rsi) 7456*4757b351SPierre Pronchery addq $0x50,%rsi 7457*4757b351SPierre Pronchery vmovdqa %xmm5,%xmm8 7458*4757b351SPierre Pronchery jmp .L_done_EmbgEptodyewbFa 7459*4757b351SPierre Pronchery 7460*4757b351SPierre Pronchery.L_num_blocks_is_4_EmbgEptodyewbFa: 7461*4757b351SPierre Pronchery vmovdqa 0(%rsp),%xmm9 7462*4757b351SPierre Pronchery movq 0(%rsp),%rax 7463*4757b351SPierre Pronchery movq 8(%rsp),%rbx 7464*4757b351SPierre Pronchery vmovdqu 0(%rdi),%xmm1 7465*4757b351SPierre Pronchery xorq %r11,%r11 7466*4757b351SPierre Pronchery shlq $1,%rax 7467*4757b351SPierre Pronchery adcq %rbx,%rbx 7468*4757b351SPierre Pronchery cmovcq %r10,%r11 7469*4757b351SPierre Pronchery xorq %r11,%rax 7470*4757b351SPierre Pronchery movq %rax,16(%rsp) 7471*4757b351SPierre Pronchery movq %rbx,16 + 8(%rsp) 7472*4757b351SPierre Pronchery vmovdqa 16(%rsp),%xmm10 7473*4757b351SPierre Pronchery vmovdqu 16(%rdi),%xmm2 7474*4757b351SPierre Pronchery xorq %r11,%r11 7475*4757b351SPierre Pronchery shlq $1,%rax 7476*4757b351SPierre Pronchery adcq %rbx,%rbx 7477*4757b351SPierre Pronchery cmovcq %r10,%r11 7478*4757b351SPierre Pronchery xorq %r11,%rax 7479*4757b351SPierre Pronchery movq %rax,32(%rsp) 7480*4757b351SPierre Pronchery movq %rbx,32 + 8(%rsp) 7481*4757b351SPierre Pronchery vmovdqa 32(%rsp),%xmm11 7482*4757b351SPierre Pronchery vmovdqu 32(%rdi),%xmm3 7483*4757b351SPierre Pronchery xorq %r11,%r11 7484*4757b351SPierre Pronchery shlq $1,%rax 7485*4757b351SPierre Pronchery adcq %rbx,%rbx 7486*4757b351SPierre Pronchery cmovcq %r10,%r11 7487*4757b351SPierre Pronchery xorq %r11,%rax 7488*4757b351SPierre Pronchery movq %rax,48(%rsp) 7489*4757b351SPierre Pronchery movq %rbx,48 + 8(%rsp) 7490*4757b351SPierre Pronchery vmovdqa 48(%rsp),%xmm12 7491*4757b351SPierre Pronchery vmovdqu 48(%rdi),%xmm4 7492*4757b351SPierre Pronchery addq $0x40,%rdi 7493*4757b351SPierre Pronchery andq $0xf,%rdx 7494*4757b351SPierre Pronchery je .L_done_4_EmbgEptodyewbFa 7495*4757b351SPierre Pronchery 7496*4757b351SPierre Pronchery.L_steal_cipher_4_EmbgEptodyewbFa: 7497*4757b351SPierre Pronchery xorq %r11,%r11 7498*4757b351SPierre Pronchery shlq $1,%rax 7499*4757b351SPierre Pronchery adcq %rbx,%rbx 7500*4757b351SPierre Pronchery cmovcq %r10,%r11 7501*4757b351SPierre Pronchery xorq %r11,%rax 7502*4757b351SPierre Pronchery movq %rax,16(%rsp) 7503*4757b351SPierre Pronchery movq %rbx,24(%rsp) 7504*4757b351SPierre Pronchery vmovdqa64 %xmm12,%xmm13 7505*4757b351SPierre Pronchery vmovdqa 16(%rsp),%xmm12 7506*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 7507*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 7508*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 7509*4757b351SPierre Pronchery vpxor %xmm12,%xmm4,%xmm4 7510*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 7511*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 7512*4757b351SPierre Pronchery vpxor %xmm0,%xmm2,%xmm2 7513*4757b351SPierre Pronchery vpxor %xmm0,%xmm3,%xmm3 7514*4757b351SPierre Pronchery vpxor %xmm0,%xmm4,%xmm4 7515*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 7516*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7517*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7518*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7519*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7520*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 7521*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7522*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7523*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7524*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7525*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 7526*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7527*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7528*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7529*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7530*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 7531*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7532*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7533*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7534*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7535*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 7536*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7537*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7538*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7539*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7540*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 7541*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7542*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7543*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7544*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7545*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 7546*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7547*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7548*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7549*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7550*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 7551*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7552*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7553*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7554*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7555*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 7556*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7557*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7558*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7559*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7560*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 7561*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7562*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7563*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7564*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7565*4757b351SPierre Pronchery vmovdqu 176(%rcx),%xmm0 7566*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7567*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7568*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7569*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7570*4757b351SPierre Pronchery vmovdqu 192(%rcx),%xmm0 7571*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7572*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7573*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7574*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7575*4757b351SPierre Pronchery vmovdqu 208(%rcx),%xmm0 7576*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7577*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7578*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7579*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7580*4757b351SPierre Pronchery vmovdqu 224(%rcx),%xmm0 7581*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 7582*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm2,%xmm2 7583*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm3,%xmm3 7584*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm4,%xmm4 7585*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 7586*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 7587*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 7588*4757b351SPierre Pronchery vpxor %xmm12,%xmm4,%xmm4 7589*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 7590*4757b351SPierre Pronchery vmovdqu %xmm2,16(%rsi) 7591*4757b351SPierre Pronchery vmovdqu %xmm3,32(%rsi) 7592*4757b351SPierre Pronchery addq $0x40,%rsi 7593*4757b351SPierre Pronchery vmovdqa %xmm13,%xmm0 7594*4757b351SPierre Pronchery vmovdqa %xmm4,%xmm8 7595*4757b351SPierre Pronchery jmp .L_steal_cipher_EmbgEptodyewbFa 7596*4757b351SPierre Pronchery 7597*4757b351SPierre Pronchery.L_done_4_EmbgEptodyewbFa: 7598*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 7599*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 7600*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 7601*4757b351SPierre Pronchery vpxor %xmm12,%xmm4,%xmm4 7602*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 7603*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 7604*4757b351SPierre Pronchery vpxor %xmm0,%xmm2,%xmm2 7605*4757b351SPierre Pronchery vpxor %xmm0,%xmm3,%xmm3 7606*4757b351SPierre Pronchery vpxor %xmm0,%xmm4,%xmm4 7607*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 7608*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7609*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7610*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7611*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7612*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 7613*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7614*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7615*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7616*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7617*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 7618*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7619*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7620*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7621*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7622*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 7623*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7624*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7625*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7626*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7627*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 7628*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7629*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7630*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7631*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7632*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 7633*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7634*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7635*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7636*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7637*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 7638*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7639*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7640*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7641*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7642*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 7643*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7644*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7645*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7646*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7647*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 7648*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7649*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7650*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7651*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7652*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 7653*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7654*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7655*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7656*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7657*4757b351SPierre Pronchery vmovdqu 176(%rcx),%xmm0 7658*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7659*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7660*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7661*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7662*4757b351SPierre Pronchery vmovdqu 192(%rcx),%xmm0 7663*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7664*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7665*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7666*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7667*4757b351SPierre Pronchery vmovdqu 208(%rcx),%xmm0 7668*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7669*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7670*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7671*4757b351SPierre Pronchery vaesdec %xmm0,%xmm4,%xmm4 7672*4757b351SPierre Pronchery vmovdqu 224(%rcx),%xmm0 7673*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 7674*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm2,%xmm2 7675*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm3,%xmm3 7676*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm4,%xmm4 7677*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 7678*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 7679*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 7680*4757b351SPierre Pronchery vpxor %xmm12,%xmm4,%xmm4 7681*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 7682*4757b351SPierre Pronchery vmovdqu %xmm2,16(%rsi) 7683*4757b351SPierre Pronchery vmovdqu %xmm3,32(%rsi) 7684*4757b351SPierre Pronchery addq $0x40,%rsi 7685*4757b351SPierre Pronchery vmovdqa %xmm4,%xmm8 7686*4757b351SPierre Pronchery jmp .L_done_EmbgEptodyewbFa 7687*4757b351SPierre Pronchery 7688*4757b351SPierre Pronchery.L_num_blocks_is_3_EmbgEptodyewbFa: 7689*4757b351SPierre Pronchery vmovdqa 0(%rsp),%xmm9 7690*4757b351SPierre Pronchery movq 0(%rsp),%rax 7691*4757b351SPierre Pronchery movq 8(%rsp),%rbx 7692*4757b351SPierre Pronchery vmovdqu 0(%rdi),%xmm1 7693*4757b351SPierre Pronchery xorq %r11,%r11 7694*4757b351SPierre Pronchery shlq $1,%rax 7695*4757b351SPierre Pronchery adcq %rbx,%rbx 7696*4757b351SPierre Pronchery cmovcq %r10,%r11 7697*4757b351SPierre Pronchery xorq %r11,%rax 7698*4757b351SPierre Pronchery movq %rax,16(%rsp) 7699*4757b351SPierre Pronchery movq %rbx,16 + 8(%rsp) 7700*4757b351SPierre Pronchery vmovdqa 16(%rsp),%xmm10 7701*4757b351SPierre Pronchery vmovdqu 16(%rdi),%xmm2 7702*4757b351SPierre Pronchery xorq %r11,%r11 7703*4757b351SPierre Pronchery shlq $1,%rax 7704*4757b351SPierre Pronchery adcq %rbx,%rbx 7705*4757b351SPierre Pronchery cmovcq %r10,%r11 7706*4757b351SPierre Pronchery xorq %r11,%rax 7707*4757b351SPierre Pronchery movq %rax,32(%rsp) 7708*4757b351SPierre Pronchery movq %rbx,32 + 8(%rsp) 7709*4757b351SPierre Pronchery vmovdqa 32(%rsp),%xmm11 7710*4757b351SPierre Pronchery vmovdqu 32(%rdi),%xmm3 7711*4757b351SPierre Pronchery addq $0x30,%rdi 7712*4757b351SPierre Pronchery andq $0xf,%rdx 7713*4757b351SPierre Pronchery je .L_done_3_EmbgEptodyewbFa 7714*4757b351SPierre Pronchery 7715*4757b351SPierre Pronchery.L_steal_cipher_3_EmbgEptodyewbFa: 7716*4757b351SPierre Pronchery xorq %r11,%r11 7717*4757b351SPierre Pronchery shlq $1,%rax 7718*4757b351SPierre Pronchery adcq %rbx,%rbx 7719*4757b351SPierre Pronchery cmovcq %r10,%r11 7720*4757b351SPierre Pronchery xorq %r11,%rax 7721*4757b351SPierre Pronchery movq %rax,16(%rsp) 7722*4757b351SPierre Pronchery movq %rbx,24(%rsp) 7723*4757b351SPierre Pronchery vmovdqa64 %xmm11,%xmm12 7724*4757b351SPierre Pronchery vmovdqa 16(%rsp),%xmm11 7725*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 7726*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 7727*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 7728*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 7729*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 7730*4757b351SPierre Pronchery vpxor %xmm0,%xmm2,%xmm2 7731*4757b351SPierre Pronchery vpxor %xmm0,%xmm3,%xmm3 7732*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 7733*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7734*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7735*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7736*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 7737*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7738*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7739*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7740*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 7741*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7742*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7743*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7744*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 7745*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7746*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7747*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7748*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 7749*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7750*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7751*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7752*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 7753*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7754*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7755*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7756*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 7757*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7758*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7759*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7760*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 7761*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7762*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7763*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7764*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 7765*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7766*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7767*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7768*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 7769*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7770*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7771*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7772*4757b351SPierre Pronchery vmovdqu 176(%rcx),%xmm0 7773*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7774*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7775*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7776*4757b351SPierre Pronchery vmovdqu 192(%rcx),%xmm0 7777*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7778*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7779*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7780*4757b351SPierre Pronchery vmovdqu 208(%rcx),%xmm0 7781*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7782*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7783*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7784*4757b351SPierre Pronchery vmovdqu 224(%rcx),%xmm0 7785*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 7786*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm2,%xmm2 7787*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm3,%xmm3 7788*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 7789*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 7790*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 7791*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 7792*4757b351SPierre Pronchery vmovdqu %xmm2,16(%rsi) 7793*4757b351SPierre Pronchery addq $0x30,%rsi 7794*4757b351SPierre Pronchery vmovdqa %xmm12,%xmm0 7795*4757b351SPierre Pronchery vmovdqa %xmm3,%xmm8 7796*4757b351SPierre Pronchery jmp .L_steal_cipher_EmbgEptodyewbFa 7797*4757b351SPierre Pronchery 7798*4757b351SPierre Pronchery.L_done_3_EmbgEptodyewbFa: 7799*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 7800*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 7801*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 7802*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 7803*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 7804*4757b351SPierre Pronchery vpxor %xmm0,%xmm2,%xmm2 7805*4757b351SPierre Pronchery vpxor %xmm0,%xmm3,%xmm3 7806*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 7807*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7808*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7809*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7810*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 7811*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7812*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7813*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7814*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 7815*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7816*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7817*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7818*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 7819*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7820*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7821*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7822*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 7823*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7824*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7825*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7826*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 7827*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7828*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7829*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7830*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 7831*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7832*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7833*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7834*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 7835*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7836*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7837*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7838*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 7839*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7840*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7841*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7842*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 7843*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7844*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7845*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7846*4757b351SPierre Pronchery vmovdqu 176(%rcx),%xmm0 7847*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7848*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7849*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7850*4757b351SPierre Pronchery vmovdqu 192(%rcx),%xmm0 7851*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7852*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7853*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7854*4757b351SPierre Pronchery vmovdqu 208(%rcx),%xmm0 7855*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7856*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7857*4757b351SPierre Pronchery vaesdec %xmm0,%xmm3,%xmm3 7858*4757b351SPierre Pronchery vmovdqu 224(%rcx),%xmm0 7859*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 7860*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm2,%xmm2 7861*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm3,%xmm3 7862*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 7863*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 7864*4757b351SPierre Pronchery vpxor %xmm11,%xmm3,%xmm3 7865*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 7866*4757b351SPierre Pronchery vmovdqu %xmm2,16(%rsi) 7867*4757b351SPierre Pronchery addq $0x30,%rsi 7868*4757b351SPierre Pronchery vmovdqa %xmm3,%xmm8 7869*4757b351SPierre Pronchery jmp .L_done_EmbgEptodyewbFa 7870*4757b351SPierre Pronchery 7871*4757b351SPierre Pronchery.L_num_blocks_is_2_EmbgEptodyewbFa: 7872*4757b351SPierre Pronchery vmovdqa 0(%rsp),%xmm9 7873*4757b351SPierre Pronchery movq 0(%rsp),%rax 7874*4757b351SPierre Pronchery movq 8(%rsp),%rbx 7875*4757b351SPierre Pronchery vmovdqu 0(%rdi),%xmm1 7876*4757b351SPierre Pronchery xorq %r11,%r11 7877*4757b351SPierre Pronchery shlq $1,%rax 7878*4757b351SPierre Pronchery adcq %rbx,%rbx 7879*4757b351SPierre Pronchery cmovcq %r10,%r11 7880*4757b351SPierre Pronchery xorq %r11,%rax 7881*4757b351SPierre Pronchery movq %rax,16(%rsp) 7882*4757b351SPierre Pronchery movq %rbx,16 + 8(%rsp) 7883*4757b351SPierre Pronchery vmovdqa 16(%rsp),%xmm10 7884*4757b351SPierre Pronchery vmovdqu 16(%rdi),%xmm2 7885*4757b351SPierre Pronchery addq $0x20,%rdi 7886*4757b351SPierre Pronchery andq $0xf,%rdx 7887*4757b351SPierre Pronchery je .L_done_2_EmbgEptodyewbFa 7888*4757b351SPierre Pronchery 7889*4757b351SPierre Pronchery.L_steal_cipher_2_EmbgEptodyewbFa: 7890*4757b351SPierre Pronchery xorq %r11,%r11 7891*4757b351SPierre Pronchery shlq $1,%rax 7892*4757b351SPierre Pronchery adcq %rbx,%rbx 7893*4757b351SPierre Pronchery cmovcq %r10,%r11 7894*4757b351SPierre Pronchery xorq %r11,%rax 7895*4757b351SPierre Pronchery movq %rax,16(%rsp) 7896*4757b351SPierre Pronchery movq %rbx,24(%rsp) 7897*4757b351SPierre Pronchery vmovdqa64 %xmm10,%xmm11 7898*4757b351SPierre Pronchery vmovdqa 16(%rsp),%xmm10 7899*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 7900*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 7901*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 7902*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 7903*4757b351SPierre Pronchery vpxor %xmm0,%xmm2,%xmm2 7904*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 7905*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7906*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7907*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 7908*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7909*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7910*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 7911*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7912*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7913*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 7914*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7915*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7916*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 7917*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7918*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7919*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 7920*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7921*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7922*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 7923*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7924*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7925*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 7926*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7927*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7928*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 7929*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7930*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7931*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 7932*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7933*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7934*4757b351SPierre Pronchery vmovdqu 176(%rcx),%xmm0 7935*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7936*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7937*4757b351SPierre Pronchery vmovdqu 192(%rcx),%xmm0 7938*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7939*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7940*4757b351SPierre Pronchery vmovdqu 208(%rcx),%xmm0 7941*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7942*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7943*4757b351SPierre Pronchery vmovdqu 224(%rcx),%xmm0 7944*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 7945*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm2,%xmm2 7946*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 7947*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 7948*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 7949*4757b351SPierre Pronchery addq $0x20,%rsi 7950*4757b351SPierre Pronchery vmovdqa %xmm11,%xmm0 7951*4757b351SPierre Pronchery vmovdqa %xmm2,%xmm8 7952*4757b351SPierre Pronchery jmp .L_steal_cipher_EmbgEptodyewbFa 7953*4757b351SPierre Pronchery 7954*4757b351SPierre Pronchery.L_done_2_EmbgEptodyewbFa: 7955*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 7956*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 7957*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 7958*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 7959*4757b351SPierre Pronchery vpxor %xmm0,%xmm2,%xmm2 7960*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 7961*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7962*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7963*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 7964*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7965*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7966*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 7967*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7968*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7969*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 7970*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7971*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7972*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 7973*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7974*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7975*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 7976*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7977*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7978*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 7979*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7980*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7981*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 7982*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7983*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7984*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 7985*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7986*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7987*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 7988*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7989*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7990*4757b351SPierre Pronchery vmovdqu 176(%rcx),%xmm0 7991*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7992*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7993*4757b351SPierre Pronchery vmovdqu 192(%rcx),%xmm0 7994*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7995*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7996*4757b351SPierre Pronchery vmovdqu 208(%rcx),%xmm0 7997*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 7998*4757b351SPierre Pronchery vaesdec %xmm0,%xmm2,%xmm2 7999*4757b351SPierre Pronchery vmovdqu 224(%rcx),%xmm0 8000*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 8001*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm2,%xmm2 8002*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 8003*4757b351SPierre Pronchery vpxor %xmm10,%xmm2,%xmm2 8004*4757b351SPierre Pronchery vmovdqu %xmm1,(%rsi) 8005*4757b351SPierre Pronchery addq $0x20,%rsi 8006*4757b351SPierre Pronchery vmovdqa %xmm2,%xmm8 8007*4757b351SPierre Pronchery jmp .L_done_EmbgEptodyewbFa 8008*4757b351SPierre Pronchery 8009*4757b351SPierre Pronchery.L_num_blocks_is_1_EmbgEptodyewbFa: 8010*4757b351SPierre Pronchery vmovdqa 0(%rsp),%xmm9 8011*4757b351SPierre Pronchery movq 0(%rsp),%rax 8012*4757b351SPierre Pronchery movq 8(%rsp),%rbx 8013*4757b351SPierre Pronchery vmovdqu 0(%rdi),%xmm1 8014*4757b351SPierre Pronchery addq $0x10,%rdi 8015*4757b351SPierre Pronchery andq $0xf,%rdx 8016*4757b351SPierre Pronchery je .L_done_1_EmbgEptodyewbFa 8017*4757b351SPierre Pronchery 8018*4757b351SPierre Pronchery.L_steal_cipher_1_EmbgEptodyewbFa: 8019*4757b351SPierre Pronchery xorq %r11,%r11 8020*4757b351SPierre Pronchery shlq $1,%rax 8021*4757b351SPierre Pronchery adcq %rbx,%rbx 8022*4757b351SPierre Pronchery cmovcq %r10,%r11 8023*4757b351SPierre Pronchery xorq %r11,%rax 8024*4757b351SPierre Pronchery movq %rax,16(%rsp) 8025*4757b351SPierre Pronchery movq %rbx,24(%rsp) 8026*4757b351SPierre Pronchery vmovdqa64 %xmm9,%xmm10 8027*4757b351SPierre Pronchery vmovdqa 16(%rsp),%xmm9 8028*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 8029*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 8030*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 8031*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 8032*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 8033*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 8034*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 8035*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 8036*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 8037*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 8038*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 8039*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 8040*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 8041*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 8042*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 8043*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 8044*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 8045*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 8046*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 8047*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 8048*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 8049*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 8050*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 8051*4757b351SPierre Pronchery vmovdqu 176(%rcx),%xmm0 8052*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 8053*4757b351SPierre Pronchery vmovdqu 192(%rcx),%xmm0 8054*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 8055*4757b351SPierre Pronchery vmovdqu 208(%rcx),%xmm0 8056*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 8057*4757b351SPierre Pronchery vmovdqu 224(%rcx),%xmm0 8058*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 8059*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 8060*4757b351SPierre Pronchery addq $0x10,%rsi 8061*4757b351SPierre Pronchery vmovdqa %xmm10,%xmm0 8062*4757b351SPierre Pronchery vmovdqa %xmm1,%xmm8 8063*4757b351SPierre Pronchery jmp .L_steal_cipher_EmbgEptodyewbFa 8064*4757b351SPierre Pronchery 8065*4757b351SPierre Pronchery.L_done_1_EmbgEptodyewbFa: 8066*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 8067*4757b351SPierre Pronchery vmovdqu (%rcx),%xmm0 8068*4757b351SPierre Pronchery vpxor %xmm0,%xmm1,%xmm1 8069*4757b351SPierre Pronchery vmovdqu 16(%rcx),%xmm0 8070*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 8071*4757b351SPierre Pronchery vmovdqu 32(%rcx),%xmm0 8072*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 8073*4757b351SPierre Pronchery vmovdqu 48(%rcx),%xmm0 8074*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 8075*4757b351SPierre Pronchery vmovdqu 64(%rcx),%xmm0 8076*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 8077*4757b351SPierre Pronchery vmovdqu 80(%rcx),%xmm0 8078*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 8079*4757b351SPierre Pronchery vmovdqu 96(%rcx),%xmm0 8080*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 8081*4757b351SPierre Pronchery vmovdqu 112(%rcx),%xmm0 8082*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 8083*4757b351SPierre Pronchery vmovdqu 128(%rcx),%xmm0 8084*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 8085*4757b351SPierre Pronchery vmovdqu 144(%rcx),%xmm0 8086*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 8087*4757b351SPierre Pronchery vmovdqu 160(%rcx),%xmm0 8088*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 8089*4757b351SPierre Pronchery vmovdqu 176(%rcx),%xmm0 8090*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 8091*4757b351SPierre Pronchery vmovdqu 192(%rcx),%xmm0 8092*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 8093*4757b351SPierre Pronchery vmovdqu 208(%rcx),%xmm0 8094*4757b351SPierre Pronchery vaesdec %xmm0,%xmm1,%xmm1 8095*4757b351SPierre Pronchery vmovdqu 224(%rcx),%xmm0 8096*4757b351SPierre Pronchery vaesdeclast %xmm0,%xmm1,%xmm1 8097*4757b351SPierre Pronchery vpxor %xmm9,%xmm1,%xmm1 8098*4757b351SPierre Pronchery addq $0x10,%rsi 8099*4757b351SPierre Pronchery vmovdqa %xmm1,%xmm8 8100*4757b351SPierre Pronchery jmp .L_done_EmbgEptodyewbFa 8101*4757b351SPierre Pronchery.cfi_endproc 8102*4757b351SPierre Pronchery.section .rodata 8103*4757b351SPierre Pronchery.align 16 8104*4757b351SPierre Pronchery 8105*4757b351SPierre Proncheryvpshufb_shf_table: 8106*4757b351SPierre Pronchery.quad 0x8786858483828100, 0x8f8e8d8c8b8a8988 8107*4757b351SPierre Pronchery.quad 0x0706050403020100, 0x000e0d0c0b0a0908 8108*4757b351SPierre Pronchery 8109*4757b351SPierre Proncherymask1: 8110*4757b351SPierre Pronchery.quad 0x8080808080808080, 0x8080808080808080 8111*4757b351SPierre Pronchery 8112*4757b351SPierre Proncheryconst_dq3210: 8113*4757b351SPierre Pronchery.quad 0, 0, 1, 1, 2, 2, 3, 3 8114*4757b351SPierre Proncheryconst_dq5678: 8115*4757b351SPierre Pronchery.quad 8, 8, 7, 7, 6, 6, 5, 5 8116*4757b351SPierre Proncheryconst_dq7654: 8117*4757b351SPierre Pronchery.quad 4, 4, 5, 5, 6, 6, 7, 7 8118*4757b351SPierre Proncheryconst_dq1234: 8119*4757b351SPierre Pronchery.quad 4, 4, 3, 3, 2, 2, 1, 1 8120*4757b351SPierre Pronchery 8121*4757b351SPierre Proncheryshufb_15_7: 8122*4757b351SPierre Pronchery.byte 15, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 7, 0xff, 0xff 8123*4757b351SPierre Pronchery.byte 0xff, 0xff, 0xff, 0xff, 0xff 8124*4757b351SPierre Pronchery 8125*4757b351SPierre Pronchery.text 8126*4757b351SPierre Pronchery .section ".note.gnu.property", "a" 8127*4757b351SPierre Pronchery .p2align 3 8128*4757b351SPierre Pronchery .long 1f - 0f 8129*4757b351SPierre Pronchery .long 4f - 1f 8130*4757b351SPierre Pronchery .long 5 8131*4757b351SPierre Pronchery0: 8132*4757b351SPierre Pronchery # "GNU" encoded with .byte, since .asciz isn't supported 8133*4757b351SPierre Pronchery # on Solaris. 8134*4757b351SPierre Pronchery .byte 0x47 8135*4757b351SPierre Pronchery .byte 0x4e 8136*4757b351SPierre Pronchery .byte 0x55 8137*4757b351SPierre Pronchery .byte 0 8138*4757b351SPierre Pronchery1: 8139*4757b351SPierre Pronchery .p2align 3 8140*4757b351SPierre Pronchery .long 0xc0000002 8141*4757b351SPierre Pronchery .long 3f - 2f 8142*4757b351SPierre Pronchery2: 8143*4757b351SPierre Pronchery .long 3 8144*4757b351SPierre Pronchery3: 8145*4757b351SPierre Pronchery .p2align 3 8146*4757b351SPierre Pronchery4: 8147