1d9e397b599b13d642138480a28c14db7a136bf0Adam Langley#if defined(__x86_64__) 2d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.text 3d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 4d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 5d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.globl _gcm_gmult_4bit 6d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.private_extern _gcm_gmult_4bit 7d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 8d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.p2align 4 9d9e397b599b13d642138480a28c14db7a136bf0Adam Langley_gcm_gmult_4bit: 10d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pushq %rbx 11d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pushq %rbp 12d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pushq %r12 13a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan pushq %r13 14a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan pushq %r14 15a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan pushq %r15 16a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan subq $280,%rsp 17d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyL$gmult_prologue: 18d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 19d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbq 15(%rdi),%r8 20d9e397b599b13d642138480a28c14db7a136bf0Adam Langley leaq L$rem_4bit(%rip),%r11 21d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %rax,%rax 22d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %rbx,%rbx 23d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %r8b,%al 24d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %r8b,%bl 25d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%al 26d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq $14,%rcx 27d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 8(%rsi,%rax,1),%r8 28d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq (%rsi,%rax,1),%r9 294969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin andb $0xf0,%bl 30d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r8,%rdx 31d9e397b599b13d642138480a28c14db7a136bf0Adam Langley jmp L$oop1 32d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 33d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.p2align 4 34d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyL$oop1: 35d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%r8 364969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin andq $0xf,%rdx 37d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,%r10 38d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb (%rdi,%rcx,1),%al 39d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%r9 40d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq 8(%rsi,%rbx,1),%r8 41d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $60,%r10 42d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rsi,%rbx,1),%r9 43d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %al,%bl 44d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%r11,%rdx,8),%r9 45d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r8,%rdx 46d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%al 47d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r10,%r8 48d9e397b599b13d642138480a28c14db7a136bf0Adam Langley decq %rcx 49d9e397b599b13d642138480a28c14db7a136bf0Adam Langley js L$break1 50d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 51d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%r8 524969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin andq $0xf,%rdx 53d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,%r10 54d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%r9 55d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq 8(%rsi,%rax,1),%r8 56d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $60,%r10 57d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rsi,%rax,1),%r9 584969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin andb $0xf0,%bl 59d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%r11,%rdx,8),%r9 60d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r8,%rdx 61d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r10,%r8 62d9e397b599b13d642138480a28c14db7a136bf0Adam Langley jmp L$oop1 63d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 64d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.p2align 4 65d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyL$break1: 66d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%r8 674969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin andq $0xf,%rdx 68d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,%r10 69d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%r9 70d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq 8(%rsi,%rax,1),%r8 71d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $60,%r10 72d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rsi,%rax,1),%r9 734969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin andb $0xf0,%bl 74d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%r11,%rdx,8),%r9 75d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r8,%rdx 76d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r10,%r8 77d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 78d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%r8 794969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin andq $0xf,%rdx 80d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,%r10 81d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%r9 82d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq 8(%rsi,%rbx,1),%r8 83d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $60,%r10 84d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rsi,%rbx,1),%r9 85d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r10,%r8 86d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%r11,%rdx,8),%r9 87d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 88d9e397b599b13d642138480a28c14db7a136bf0Adam Langley bswapq %r8 89d9e397b599b13d642138480a28c14db7a136bf0Adam Langley bswapq %r9 90d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r8,8(%rdi) 91d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,(%rdi) 92d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 93a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan leaq 280+48(%rsp),%rsi 94a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan movq -8(%rsi),%rbx 95a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan leaq (%rsi),%rsp 96d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyL$gmult_epilogue: 97d9e397b599b13d642138480a28c14db7a136bf0Adam Langley .byte 0xf3,0xc3 98d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 99d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.globl _gcm_ghash_4bit 100d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.private_extern _gcm_ghash_4bit 101d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 102d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.p2align 4 103d9e397b599b13d642138480a28c14db7a136bf0Adam Langley_gcm_ghash_4bit: 104d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pushq %rbx 105d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pushq %rbp 106d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pushq %r12 107d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pushq %r13 108d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pushq %r14 109d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pushq %r15 110d9e397b599b13d642138480a28c14db7a136bf0Adam Langley subq $280,%rsp 111d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyL$ghash_prologue: 112d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %rdx,%r14 113d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %rcx,%r15 114d9e397b599b13d642138480a28c14db7a136bf0Adam Langley subq $-128,%rsi 115d9e397b599b13d642138480a28c14db7a136bf0Adam Langley leaq 16+128(%rsp),%rbp 116d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorl %edx,%edx 117d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 0+0-128(%rsi),%r8 118d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 0+8-128(%rsi),%rax 119d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %al,%dl 120d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%rax 121d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r8,%r10 122d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%r8 123d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 16+0-128(%rsi),%r9 124d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%dl 125d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 16+8-128(%rsi),%rbx 126d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $60,%r10 127d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %dl,0(%rsp) 128d9e397b599b13d642138480a28c14db7a136bf0Adam Langley orq %r10,%rax 129d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %bl,%dl 130d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%rbx 131d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,%r10 132d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%r9 133d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r8,0(%rbp) 134d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 32+0-128(%rsi),%r8 135d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%dl 136d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %rax,0-128(%rbp) 137d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 32+8-128(%rsi),%rax 138d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $60,%r10 139d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %dl,1(%rsp) 140d9e397b599b13d642138480a28c14db7a136bf0Adam Langley orq %r10,%rbx 141d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %al,%dl 142d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%rax 143d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r8,%r10 144d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%r8 145d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,8(%rbp) 146d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 48+0-128(%rsi),%r9 147d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%dl 148d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %rbx,8-128(%rbp) 149d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 48+8-128(%rsi),%rbx 150d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $60,%r10 151d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %dl,2(%rsp) 152d9e397b599b13d642138480a28c14db7a136bf0Adam Langley orq %r10,%rax 153d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %bl,%dl 154d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%rbx 155d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,%r10 156d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%r9 157d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r8,16(%rbp) 158d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 64+0-128(%rsi),%r8 159d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%dl 160d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %rax,16-128(%rbp) 161d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 64+8-128(%rsi),%rax 162d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $60,%r10 163d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %dl,3(%rsp) 164d9e397b599b13d642138480a28c14db7a136bf0Adam Langley orq %r10,%rbx 165d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %al,%dl 166d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%rax 167d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r8,%r10 168d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%r8 169d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,24(%rbp) 170d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 80+0-128(%rsi),%r9 171d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%dl 172d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %rbx,24-128(%rbp) 173d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 80+8-128(%rsi),%rbx 174d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $60,%r10 175d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %dl,4(%rsp) 176d9e397b599b13d642138480a28c14db7a136bf0Adam Langley orq %r10,%rax 177d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %bl,%dl 178d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%rbx 179d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,%r10 180d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%r9 181d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r8,32(%rbp) 182d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 96+0-128(%rsi),%r8 183d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%dl 184d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %rax,32-128(%rbp) 185d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 96+8-128(%rsi),%rax 186d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $60,%r10 187d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %dl,5(%rsp) 188d9e397b599b13d642138480a28c14db7a136bf0Adam Langley orq %r10,%rbx 189d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %al,%dl 190d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%rax 191d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r8,%r10 192d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%r8 193d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,40(%rbp) 194d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 112+0-128(%rsi),%r9 195d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%dl 196d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %rbx,40-128(%rbp) 197d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 112+8-128(%rsi),%rbx 198d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $60,%r10 199d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %dl,6(%rsp) 200d9e397b599b13d642138480a28c14db7a136bf0Adam Langley orq %r10,%rax 201d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %bl,%dl 202d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%rbx 203d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,%r10 204d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%r9 205d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r8,48(%rbp) 206d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 128+0-128(%rsi),%r8 207d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%dl 208d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %rax,48-128(%rbp) 209d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 128+8-128(%rsi),%rax 210d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $60,%r10 211d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %dl,7(%rsp) 212d9e397b599b13d642138480a28c14db7a136bf0Adam Langley orq %r10,%rbx 213d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %al,%dl 214d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%rax 215d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r8,%r10 216d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%r8 217d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,56(%rbp) 218d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 144+0-128(%rsi),%r9 219d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%dl 220d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %rbx,56-128(%rbp) 221d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 144+8-128(%rsi),%rbx 222d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $60,%r10 223d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %dl,8(%rsp) 224d9e397b599b13d642138480a28c14db7a136bf0Adam Langley orq %r10,%rax 225d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %bl,%dl 226d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%rbx 227d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,%r10 228d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%r9 229d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r8,64(%rbp) 230d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 160+0-128(%rsi),%r8 231d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%dl 232d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %rax,64-128(%rbp) 233d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 160+8-128(%rsi),%rax 234d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $60,%r10 235d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %dl,9(%rsp) 236d9e397b599b13d642138480a28c14db7a136bf0Adam Langley orq %r10,%rbx 237d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %al,%dl 238d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%rax 239d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r8,%r10 240d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%r8 241d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,72(%rbp) 242d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 176+0-128(%rsi),%r9 243d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%dl 244d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %rbx,72-128(%rbp) 245d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 176+8-128(%rsi),%rbx 246d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $60,%r10 247d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %dl,10(%rsp) 248d9e397b599b13d642138480a28c14db7a136bf0Adam Langley orq %r10,%rax 249d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %bl,%dl 250d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%rbx 251d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,%r10 252d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%r9 253d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r8,80(%rbp) 254d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 192+0-128(%rsi),%r8 255d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%dl 256d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %rax,80-128(%rbp) 257d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 192+8-128(%rsi),%rax 258d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $60,%r10 259d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %dl,11(%rsp) 260d9e397b599b13d642138480a28c14db7a136bf0Adam Langley orq %r10,%rbx 261d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %al,%dl 262d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%rax 263d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r8,%r10 264d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%r8 265d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,88(%rbp) 266d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 208+0-128(%rsi),%r9 267d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%dl 268d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %rbx,88-128(%rbp) 269d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 208+8-128(%rsi),%rbx 270d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $60,%r10 271d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %dl,12(%rsp) 272d9e397b599b13d642138480a28c14db7a136bf0Adam Langley orq %r10,%rax 273d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %bl,%dl 274d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%rbx 275d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,%r10 276d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%r9 277d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r8,96(%rbp) 278d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 224+0-128(%rsi),%r8 279d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%dl 280d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %rax,96-128(%rbp) 281d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 224+8-128(%rsi),%rax 282d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $60,%r10 283d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %dl,13(%rsp) 284d9e397b599b13d642138480a28c14db7a136bf0Adam Langley orq %r10,%rbx 285d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %al,%dl 286d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%rax 287d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r8,%r10 288d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%r8 289d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,104(%rbp) 290d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 240+0-128(%rsi),%r9 291d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%dl 292d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %rbx,104-128(%rbp) 293d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 240+8-128(%rsi),%rbx 294d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $60,%r10 295d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %dl,14(%rsp) 296d9e397b599b13d642138480a28c14db7a136bf0Adam Langley orq %r10,%rax 297d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %bl,%dl 298d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%rbx 299d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,%r10 300d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%r9 301d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r8,112(%rbp) 302d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%dl 303d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %rax,112-128(%rbp) 304d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $60,%r10 305d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %dl,15(%rsp) 306d9e397b599b13d642138480a28c14db7a136bf0Adam Langley orq %r10,%rbx 307d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,120(%rbp) 308d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %rbx,120-128(%rbp) 309d9e397b599b13d642138480a28c14db7a136bf0Adam Langley addq $-128,%rsi 310d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 8(%rdi),%r8 311d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 0(%rdi),%r9 312d9e397b599b13d642138480a28c14db7a136bf0Adam Langley addq %r14,%r15 313d9e397b599b13d642138480a28c14db7a136bf0Adam Langley leaq L$rem_8bit(%rip),%r11 314d9e397b599b13d642138480a28c14db7a136bf0Adam Langley jmp L$outer_loop 315d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.p2align 4 316d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyL$outer_loop: 317d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%r14),%r9 318d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 8(%r14),%rdx 319d9e397b599b13d642138480a28c14db7a136bf0Adam Langley leaq 16(%r14),%r14 320d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r8,%rdx 321d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,(%rdi) 322d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %rdx,8(%rdi) 323d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $32,%rdx 324d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %rax,%rax 325d9e397b599b13d642138480a28c14db7a136bf0Adam Langley roll $8,%edx 326d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %dl,%al 327d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbl %dl,%ebx 328d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%al 329d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrl $4,%ebx 330d9e397b599b13d642138480a28c14db7a136bf0Adam Langley roll $8,%edx 331d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq 8(%rsi,%rax,1),%r8 332d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq (%rsi,%rax,1),%r9 333d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %dl,%al 334d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbl %dl,%ecx 335d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%al 336d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbq (%rsp,%rbx,1),%r12 337d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrl $4,%ecx 338d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r8,%r12 339d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,%r10 340d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $8,%r8 341d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbq %r12b,%r12 342d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $8,%r9 343d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq -128(%rbp,%rbx,8),%r8 344d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $56,%r10 345d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rbp,%rbx,8),%r9 346d9e397b599b13d642138480a28c14db7a136bf0Adam Langley roll $8,%edx 347d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq 8(%rsi,%rax,1),%r8 348d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rsi,%rax,1),%r9 349d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %dl,%al 350d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r10,%r8 351d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzwq (%r11,%r12,2),%r12 352d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbl %dl,%ebx 353d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%al 354d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbq (%rsp,%rcx,1),%r13 355d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrl $4,%ebx 356d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $48,%r12 357d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r8,%r13 358d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,%r10 359d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r12,%r9 360d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $8,%r8 361d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbq %r13b,%r13 362d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $8,%r9 363d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq -128(%rbp,%rcx,8),%r8 364d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $56,%r10 365d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rbp,%rcx,8),%r9 366d9e397b599b13d642138480a28c14db7a136bf0Adam Langley roll $8,%edx 367d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq 8(%rsi,%rax,1),%r8 368d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rsi,%rax,1),%r9 369d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %dl,%al 370d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r10,%r8 371d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzwq (%r11,%r13,2),%r13 372d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbl %dl,%ecx 373d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%al 374d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbq (%rsp,%rbx,1),%r12 375d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrl $4,%ecx 376d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $48,%r13 377d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r8,%r12 378d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,%r10 379d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r13,%r9 380d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $8,%r8 381d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbq %r12b,%r12 382d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movl 8(%rdi),%edx 383d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $8,%r9 384d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq -128(%rbp,%rbx,8),%r8 385d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $56,%r10 386d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rbp,%rbx,8),%r9 387d9e397b599b13d642138480a28c14db7a136bf0Adam Langley roll $8,%edx 388d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq 8(%rsi,%rax,1),%r8 389d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rsi,%rax,1),%r9 390d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %dl,%al 391d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r10,%r8 392d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzwq (%r11,%r12,2),%r12 393d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbl %dl,%ebx 394d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%al 395d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbq (%rsp,%rcx,1),%r13 396d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrl $4,%ebx 397d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $48,%r12 398d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r8,%r13 399d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,%r10 400d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r12,%r9 401d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $8,%r8 402d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbq %r13b,%r13 403d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $8,%r9 404d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq -128(%rbp,%rcx,8),%r8 405d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $56,%r10 406d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rbp,%rcx,8),%r9 407d9e397b599b13d642138480a28c14db7a136bf0Adam Langley roll $8,%edx 408d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq 8(%rsi,%rax,1),%r8 409d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rsi,%rax,1),%r9 410d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %dl,%al 411d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r10,%r8 412d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzwq (%r11,%r13,2),%r13 413d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbl %dl,%ecx 414d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%al 415d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbq (%rsp,%rbx,1),%r12 416d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrl $4,%ecx 417d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $48,%r13 418d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r8,%r12 419d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,%r10 420d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r13,%r9 421d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $8,%r8 422d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbq %r12b,%r12 423d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $8,%r9 424d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq -128(%rbp,%rbx,8),%r8 425d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $56,%r10 426d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rbp,%rbx,8),%r9 427d9e397b599b13d642138480a28c14db7a136bf0Adam Langley roll $8,%edx 428d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq 8(%rsi,%rax,1),%r8 429d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rsi,%rax,1),%r9 430d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %dl,%al 431d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r10,%r8 432d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzwq (%r11,%r12,2),%r12 433d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbl %dl,%ebx 434d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%al 435d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbq (%rsp,%rcx,1),%r13 436d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrl $4,%ebx 437d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $48,%r12 438d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r8,%r13 439d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,%r10 440d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r12,%r9 441d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $8,%r8 442d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbq %r13b,%r13 443d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $8,%r9 444d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq -128(%rbp,%rcx,8),%r8 445d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $56,%r10 446d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rbp,%rcx,8),%r9 447d9e397b599b13d642138480a28c14db7a136bf0Adam Langley roll $8,%edx 448d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq 8(%rsi,%rax,1),%r8 449d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rsi,%rax,1),%r9 450d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %dl,%al 451d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r10,%r8 452d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzwq (%r11,%r13,2),%r13 453d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbl %dl,%ecx 454d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%al 455d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbq (%rsp,%rbx,1),%r12 456d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrl $4,%ecx 457d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $48,%r13 458d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r8,%r12 459d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,%r10 460d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r13,%r9 461d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $8,%r8 462d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbq %r12b,%r12 463d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movl 4(%rdi),%edx 464d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $8,%r9 465d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq -128(%rbp,%rbx,8),%r8 466d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $56,%r10 467d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rbp,%rbx,8),%r9 468d9e397b599b13d642138480a28c14db7a136bf0Adam Langley roll $8,%edx 469d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq 8(%rsi,%rax,1),%r8 470d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rsi,%rax,1),%r9 471d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %dl,%al 472d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r10,%r8 473d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzwq (%r11,%r12,2),%r12 474d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbl %dl,%ebx 475d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%al 476d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbq (%rsp,%rcx,1),%r13 477d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrl $4,%ebx 478d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $48,%r12 479d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r8,%r13 480d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,%r10 481d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r12,%r9 482d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $8,%r8 483d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbq %r13b,%r13 484d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $8,%r9 485d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq -128(%rbp,%rcx,8),%r8 486d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $56,%r10 487d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rbp,%rcx,8),%r9 488d9e397b599b13d642138480a28c14db7a136bf0Adam Langley roll $8,%edx 489d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq 8(%rsi,%rax,1),%r8 490d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rsi,%rax,1),%r9 491d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %dl,%al 492d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r10,%r8 493d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzwq (%r11,%r13,2),%r13 494d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbl %dl,%ecx 495d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%al 496d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbq (%rsp,%rbx,1),%r12 497d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrl $4,%ecx 498d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $48,%r13 499d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r8,%r12 500d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,%r10 501d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r13,%r9 502d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $8,%r8 503d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbq %r12b,%r12 504d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $8,%r9 505d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq -128(%rbp,%rbx,8),%r8 506d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $56,%r10 507d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rbp,%rbx,8),%r9 508d9e397b599b13d642138480a28c14db7a136bf0Adam Langley roll $8,%edx 509d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq 8(%rsi,%rax,1),%r8 510d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rsi,%rax,1),%r9 511d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %dl,%al 512d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r10,%r8 513d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzwq (%r11,%r12,2),%r12 514d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbl %dl,%ebx 515d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%al 516d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbq (%rsp,%rcx,1),%r13 517d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrl $4,%ebx 518d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $48,%r12 519d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r8,%r13 520d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,%r10 521d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r12,%r9 522d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $8,%r8 523d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbq %r13b,%r13 524d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $8,%r9 525d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq -128(%rbp,%rcx,8),%r8 526d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $56,%r10 527d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rbp,%rcx,8),%r9 528d9e397b599b13d642138480a28c14db7a136bf0Adam Langley roll $8,%edx 529d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq 8(%rsi,%rax,1),%r8 530d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rsi,%rax,1),%r9 531d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %dl,%al 532d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r10,%r8 533d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzwq (%r11,%r13,2),%r13 534d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbl %dl,%ecx 535d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%al 536d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbq (%rsp,%rbx,1),%r12 537d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrl $4,%ecx 538d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $48,%r13 539d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r8,%r12 540d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,%r10 541d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r13,%r9 542d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $8,%r8 543d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbq %r12b,%r12 544d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movl 0(%rdi),%edx 545d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $8,%r9 546d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq -128(%rbp,%rbx,8),%r8 547d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $56,%r10 548d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rbp,%rbx,8),%r9 549d9e397b599b13d642138480a28c14db7a136bf0Adam Langley roll $8,%edx 550d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq 8(%rsi,%rax,1),%r8 551d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rsi,%rax,1),%r9 552d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %dl,%al 553d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r10,%r8 554d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzwq (%r11,%r12,2),%r12 555d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbl %dl,%ebx 556d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%al 557d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbq (%rsp,%rcx,1),%r13 558d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrl $4,%ebx 559d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $48,%r12 560d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r8,%r13 561d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,%r10 562d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r12,%r9 563d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $8,%r8 564d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbq %r13b,%r13 565d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $8,%r9 566d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq -128(%rbp,%rcx,8),%r8 567d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $56,%r10 568d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rbp,%rcx,8),%r9 569d9e397b599b13d642138480a28c14db7a136bf0Adam Langley roll $8,%edx 570d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq 8(%rsi,%rax,1),%r8 571d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rsi,%rax,1),%r9 572d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %dl,%al 573d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r10,%r8 574d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzwq (%r11,%r13,2),%r13 575d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbl %dl,%ecx 576d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%al 577d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbq (%rsp,%rbx,1),%r12 578d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrl $4,%ecx 579d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $48,%r13 580d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r8,%r12 581d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,%r10 582d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r13,%r9 583d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $8,%r8 584d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbq %r12b,%r12 585d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $8,%r9 586d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq -128(%rbp,%rbx,8),%r8 587d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $56,%r10 588d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rbp,%rbx,8),%r9 589d9e397b599b13d642138480a28c14db7a136bf0Adam Langley roll $8,%edx 590d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq 8(%rsi,%rax,1),%r8 591d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rsi,%rax,1),%r9 592d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %dl,%al 593d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r10,%r8 594d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzwq (%r11,%r12,2),%r12 595d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbl %dl,%ebx 596d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%al 597d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbq (%rsp,%rcx,1),%r13 598d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrl $4,%ebx 599d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $48,%r12 600d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r8,%r13 601d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,%r10 602d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r12,%r9 603d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $8,%r8 604d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbq %r13b,%r13 605d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $8,%r9 606d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq -128(%rbp,%rcx,8),%r8 607d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $56,%r10 608d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rbp,%rcx,8),%r9 609d9e397b599b13d642138480a28c14db7a136bf0Adam Langley roll $8,%edx 610d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq 8(%rsi,%rax,1),%r8 611d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rsi,%rax,1),%r9 612d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movb %dl,%al 613d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r10,%r8 614d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzwq (%r11,%r13,2),%r13 615d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbl %dl,%ecx 616d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%al 617d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbq (%rsp,%rbx,1),%r12 618d9e397b599b13d642138480a28c14db7a136bf0Adam Langley andl $240,%ecx 619d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $48,%r13 620d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r8,%r12 621d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,%r10 622d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r13,%r9 623d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $8,%r8 624d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbq %r12b,%r12 625d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movl -4(%rdi),%edx 626d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $8,%r9 627d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq -128(%rbp,%rbx,8),%r8 628d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $56,%r10 629d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rbp,%rbx,8),%r9 630d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzwq (%r11,%r12,2),%r12 631d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq 8(%rsi,%rax,1),%r8 632d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rsi,%rax,1),%r9 633d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $48,%r12 634d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r10,%r8 635d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r12,%r9 636d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzbq %r8b,%r13 637d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%r8 638d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,%r10 639d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlb $4,%r13b 640d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shrq $4,%r9 641d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq 8(%rsi,%rcx,1),%r8 642d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movzwq (%r11,%r13,2),%r13 643d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $60,%r10 644d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq (%rsi,%rcx,1),%r9 645d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r10,%r8 646d9e397b599b13d642138480a28c14db7a136bf0Adam Langley shlq $48,%r13 647d9e397b599b13d642138480a28c14db7a136bf0Adam Langley bswapq %r8 648d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorq %r13,%r9 649d9e397b599b13d642138480a28c14db7a136bf0Adam Langley bswapq %r9 650d9e397b599b13d642138480a28c14db7a136bf0Adam Langley cmpq %r15,%r14 651d9e397b599b13d642138480a28c14db7a136bf0Adam Langley jb L$outer_loop 652d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r8,8(%rdi) 653d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movq %r9,(%rdi) 654d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 655a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan leaq 280+48(%rsp),%rsi 656a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan movq -48(%rsi),%r15 657a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan movq -40(%rsi),%r14 658a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan movq -32(%rsi),%r13 659a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan movq -24(%rsi),%r12 660a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan movq -16(%rsi),%rbp 661a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan movq -8(%rsi),%rbx 662a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan leaq 0(%rsi),%rsp 663d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyL$ghash_epilogue: 664d9e397b599b13d642138480a28c14db7a136bf0Adam Langley .byte 0xf3,0xc3 665d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 666d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.globl _gcm_init_clmul 667d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.private_extern _gcm_init_clmul 668d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 669d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.p2align 4 670d9e397b599b13d642138480a28c14db7a136bf0Adam Langley_gcm_init_clmul: 671d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyL$_init_clmul: 672d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqu (%rsi),%xmm2 673d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pshufd $78,%xmm2,%xmm2 674d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 675d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 676d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pshufd $255,%xmm2,%xmm4 677d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm2,%xmm3 678d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psllq $1,%xmm2 679d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm5,%xmm5 680d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrlq $63,%xmm3 681d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pcmpgtd %xmm4,%xmm5 682d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pslldq $8,%xmm3 683d9e397b599b13d642138480a28c14db7a136bf0Adam Langley por %xmm3,%xmm2 684d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 685d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 686d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pand L$0x1c2_polynomial(%rip),%xmm5 687d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm5,%xmm2 688d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 689d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 690d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pshufd $78,%xmm2,%xmm6 691d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm2,%xmm0 692d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm2,%xmm6 693d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm1 694d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pshufd $78,%xmm0,%xmm3 695d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm3 696d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,68,194,0 697d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,68,202,17 698d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,68,222,0 699d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm3 700d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm1,%xmm3 701d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 702d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm3,%xmm4 703d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrldq $8,%xmm3 704d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pslldq $8,%xmm4 705d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm3,%xmm1 706d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm4,%xmm0 707d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 708d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm4 709d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm3 710d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psllq $5,%xmm0 711d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm3 712d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psllq $1,%xmm0 713d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm3,%xmm0 714d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psllq $57,%xmm0 715d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm3 716d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pslldq $8,%xmm0 717d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrldq $8,%xmm3 718d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm4,%xmm0 719d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm3,%xmm1 720d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 721d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 722d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm4 723d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrlq $1,%xmm0 724d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm4,%xmm1 725d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm4 726d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrlq $5,%xmm0 727d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm4,%xmm0 728d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrlq $1,%xmm0 729d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm1,%xmm0 730d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pshufd $78,%xmm2,%xmm3 731d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pshufd $78,%xmm0,%xmm4 732d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm2,%xmm3 733d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqu %xmm2,0(%rdi) 734d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm4 735d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqu %xmm0,16(%rdi) 736d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,15,227,8 737d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqu %xmm4,32(%rdi) 738d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm1 739d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pshufd $78,%xmm0,%xmm3 740d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm3 741d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,68,194,0 742d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,68,202,17 743d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,68,222,0 744d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm3 745d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm1,%xmm3 746d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 747d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm3,%xmm4 748d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrldq $8,%xmm3 749d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pslldq $8,%xmm4 750d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm3,%xmm1 751d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm4,%xmm0 752d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 753d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm4 754d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm3 755d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psllq $5,%xmm0 756d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm3 757d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psllq $1,%xmm0 758d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm3,%xmm0 759d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psllq $57,%xmm0 760d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm3 761d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pslldq $8,%xmm0 762d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrldq $8,%xmm3 763d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm4,%xmm0 764d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm3,%xmm1 765d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 766d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 767d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm4 768d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrlq $1,%xmm0 769d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm4,%xmm1 770d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm4 771d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrlq $5,%xmm0 772d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm4,%xmm0 773d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrlq $1,%xmm0 774d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm1,%xmm0 775d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm5 776d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm1 777d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pshufd $78,%xmm0,%xmm3 778d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm3 779d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,68,194,0 780d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,68,202,17 781d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,68,222,0 782d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm3 783d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm1,%xmm3 784d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 785d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm3,%xmm4 786d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrldq $8,%xmm3 787d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pslldq $8,%xmm4 788d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm3,%xmm1 789d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm4,%xmm0 790d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 791d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm4 792d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm3 793d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psllq $5,%xmm0 794d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm3 795d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psllq $1,%xmm0 796d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm3,%xmm0 797d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psllq $57,%xmm0 798d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm3 799d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pslldq $8,%xmm0 800d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrldq $8,%xmm3 801d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm4,%xmm0 802d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm3,%xmm1 803d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 804d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 805d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm4 806d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrlq $1,%xmm0 807d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm4,%xmm1 808d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm4 809d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrlq $5,%xmm0 810d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm4,%xmm0 811d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrlq $1,%xmm0 812d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm1,%xmm0 813d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pshufd $78,%xmm5,%xmm3 814d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pshufd $78,%xmm0,%xmm4 815d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm5,%xmm3 816d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqu %xmm5,48(%rdi) 817d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm4 818d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqu %xmm0,64(%rdi) 819d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,15,227,8 820d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqu %xmm4,80(%rdi) 821d9e397b599b13d642138480a28c14db7a136bf0Adam Langley .byte 0xf3,0xc3 822d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 823d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.globl _gcm_gmult_clmul 824d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.private_extern _gcm_gmult_clmul 825d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 826d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.p2align 4 827d9e397b599b13d642138480a28c14db7a136bf0Adam Langley_gcm_gmult_clmul: 828d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyL$_gmult_clmul: 829d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqu (%rdi),%xmm0 830d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa L$bswap_mask(%rip),%xmm5 831d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqu (%rsi),%xmm2 832d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqu 32(%rsi),%xmm4 833d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,56,0,197 834d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm1 835d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pshufd $78,%xmm0,%xmm3 836d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm3 837d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,68,194,0 838d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,68,202,17 839d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,68,220,0 840d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm3 841d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm1,%xmm3 842d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 843d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm3,%xmm4 844d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrldq $8,%xmm3 845d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pslldq $8,%xmm4 846d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm3,%xmm1 847d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm4,%xmm0 848d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 849d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm4 850d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm3 851d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psllq $5,%xmm0 852d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm3 853d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psllq $1,%xmm0 854d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm3,%xmm0 855d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psllq $57,%xmm0 856d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm3 857d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pslldq $8,%xmm0 858d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrldq $8,%xmm3 859d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm4,%xmm0 860d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm3,%xmm1 861d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 862d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 863d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm4 864d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrlq $1,%xmm0 865d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm4,%xmm1 866d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm4 867d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrlq $5,%xmm0 868d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm4,%xmm0 869d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrlq $1,%xmm0 870d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm1,%xmm0 871d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,56,0,197 872d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqu %xmm0,(%rdi) 873d9e397b599b13d642138480a28c14db7a136bf0Adam Langley .byte 0xf3,0xc3 874d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 875d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.globl _gcm_ghash_clmul 876d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.private_extern _gcm_ghash_clmul 877d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 878d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.p2align 5 879d9e397b599b13d642138480a28c14db7a136bf0Adam Langley_gcm_ghash_clmul: 880d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyL$_ghash_clmul: 881d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa L$bswap_mask(%rip),%xmm10 882d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 883d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqu (%rdi),%xmm0 884d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqu (%rsi),%xmm2 885d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqu 32(%rsi),%xmm7 886d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,65,15,56,0,194 887d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 8884969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin subq $0x10,%rcx 889d9e397b599b13d642138480a28c14db7a136bf0Adam Langley jz L$odd_tail 890d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 891d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqu 16(%rsi),%xmm6 892d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movl _OPENSSL_ia32cap_P+4(%rip),%eax 8934969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin cmpq $0x30,%rcx 894d9e397b599b13d642138480a28c14db7a136bf0Adam Langley jb L$skip4x 895d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 896d9e397b599b13d642138480a28c14db7a136bf0Adam Langley andl $71303168,%eax 897d9e397b599b13d642138480a28c14db7a136bf0Adam Langley cmpl $4194304,%eax 898d9e397b599b13d642138480a28c14db7a136bf0Adam Langley je L$skip4x 899d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 9004969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin subq $0x30,%rcx 9014969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin movq $0xA040608020C0E000,%rax 902d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqu 48(%rsi),%xmm14 903d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqu 64(%rsi),%xmm15 904d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 905d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 906d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 907d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 908d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqu 48(%rdx),%xmm3 909d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqu 32(%rdx),%xmm11 910d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,65,15,56,0,218 911d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,69,15,56,0,218 912d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm3,%xmm5 913d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pshufd $78,%xmm3,%xmm4 914d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm3,%xmm4 915d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,68,218,0 916d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,68,234,17 917d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,68,231,0 918d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 919d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm11,%xmm13 920d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pshufd $78,%xmm11,%xmm12 921d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm11,%xmm12 922d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,68,15,58,68,222,0 923d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,68,15,58,68,238,17 924d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,68,15,58,68,231,16 925d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorps %xmm11,%xmm3 926d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorps %xmm13,%xmm5 927d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movups 80(%rsi),%xmm7 928d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorps %xmm12,%xmm4 929d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 930d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqu 16(%rdx),%xmm11 931d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqu 0(%rdx),%xmm8 932d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,69,15,56,0,218 933d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,69,15,56,0,194 934d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm11,%xmm13 935d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pshufd $78,%xmm11,%xmm12 936d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm8,%xmm0 937d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm11,%xmm12 938d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,69,15,58,68,222,0 939d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm1 940d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pshufd $78,%xmm0,%xmm8 941d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm8 942d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,69,15,58,68,238,17 943d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,68,15,58,68,231,0 944d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorps %xmm11,%xmm3 945d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorps %xmm13,%xmm5 946d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 947d9e397b599b13d642138480a28c14db7a136bf0Adam Langley leaq 64(%rdx),%rdx 9484969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin subq $0x40,%rcx 949d9e397b599b13d642138480a28c14db7a136bf0Adam Langley jc L$tail4x 950d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 951d9e397b599b13d642138480a28c14db7a136bf0Adam Langley jmp L$mod4_loop 952d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.p2align 5 953d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyL$mod4_loop: 954d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,65,15,58,68,199,0 955d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorps %xmm12,%xmm4 956d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqu 48(%rdx),%xmm11 957d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,69,15,56,0,218 958d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,65,15,58,68,207,17 959d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorps %xmm3,%xmm0 960d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqu 32(%rdx),%xmm3 961d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm11,%xmm13 962d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,68,15,58,68,199,16 963d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pshufd $78,%xmm11,%xmm12 964d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorps %xmm5,%xmm1 965d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm11,%xmm12 966d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,65,15,56,0,218 967d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movups 32(%rsi),%xmm7 968d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorps %xmm4,%xmm8 969d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,68,15,58,68,218,0 970d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pshufd $78,%xmm3,%xmm4 971d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 972d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm8 973d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm3,%xmm5 974d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm1,%xmm8 975d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm3,%xmm4 976d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm8,%xmm9 977d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,68,15,58,68,234,17 978d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pslldq $8,%xmm8 979d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrldq $8,%xmm9 980d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm8,%xmm0 981d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa L$7_mask(%rip),%xmm8 982d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm9,%xmm1 983d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,76,15,110,200 984d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 985d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pand %xmm0,%xmm8 986d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,69,15,56,0,200 987d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm9 988d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,68,15,58,68,231,0 989d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psllq $57,%xmm9 990d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm9,%xmm8 991d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pslldq $8,%xmm9 992d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,68,222,0 993d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrldq $8,%xmm8 994d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm9,%xmm0 995d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm8,%xmm1 996d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqu 0(%rdx),%xmm8 997d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 998d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm9 999d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrlq $1,%xmm0 1000d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,68,238,17 1001d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorps %xmm11,%xmm3 1002d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqu 16(%rdx),%xmm11 1003d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,69,15,56,0,218 1004d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,68,231,16 1005d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorps %xmm13,%xmm5 1006d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movups 80(%rsi),%xmm7 1007d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,69,15,56,0,194 1008d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm9,%xmm1 1009d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm9 1010d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrlq $5,%xmm0 1011d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1012d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm11,%xmm13 1013d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm12,%xmm4 1014d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pshufd $78,%xmm11,%xmm12 1015d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm9,%xmm0 1016d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm8,%xmm1 1017d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm11,%xmm12 1018d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,69,15,58,68,222,0 1019d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrlq $1,%xmm0 1020d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm1,%xmm0 1021d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm1 1022d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,69,15,58,68,238,17 1023d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorps %xmm11,%xmm3 1024d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pshufd $78,%xmm0,%xmm8 1025d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm8 1026d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1027d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,68,15,58,68,231,0 1028d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorps %xmm13,%xmm5 1029d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1030d9e397b599b13d642138480a28c14db7a136bf0Adam Langley leaq 64(%rdx),%rdx 10314969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin subq $0x40,%rcx 1032d9e397b599b13d642138480a28c14db7a136bf0Adam Langley jnc L$mod4_loop 1033d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1034d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyL$tail4x: 1035d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,65,15,58,68,199,0 1036d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,65,15,58,68,207,17 1037d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,68,15,58,68,199,16 1038d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorps %xmm12,%xmm4 1039d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorps %xmm3,%xmm0 1040d9e397b599b13d642138480a28c14db7a136bf0Adam Langley xorps %xmm5,%xmm1 1041d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm1 1042d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm4,%xmm8 1043d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1044d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm1,%xmm8 1045d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm1 1046d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1047d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm8,%xmm9 1048d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrldq $8,%xmm8 1049d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pslldq $8,%xmm9 1050d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm8,%xmm1 1051d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm9,%xmm0 1052d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1053d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm4 1054d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm3 1055d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psllq $5,%xmm0 1056d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm3 1057d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psllq $1,%xmm0 1058d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm3,%xmm0 1059d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psllq $57,%xmm0 1060d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm3 1061d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pslldq $8,%xmm0 1062d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrldq $8,%xmm3 1063d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm4,%xmm0 1064d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm3,%xmm1 1065d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1066d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1067d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm4 1068d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrlq $1,%xmm0 1069d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm4,%xmm1 1070d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm4 1071d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrlq $5,%xmm0 1072d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm4,%xmm0 1073d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrlq $1,%xmm0 1074d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm1,%xmm0 10754969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin addq $0x40,%rcx 1076d9e397b599b13d642138480a28c14db7a136bf0Adam Langley jz L$done 1077d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqu 32(%rsi),%xmm7 10784969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin subq $0x10,%rcx 1079d9e397b599b13d642138480a28c14db7a136bf0Adam Langley jz L$odd_tail 1080d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyL$skip4x: 1081d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1082d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1083d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1084d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1085d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1086d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqu (%rdx),%xmm8 1087d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqu 16(%rdx),%xmm3 1088d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,69,15,56,0,194 1089d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,65,15,56,0,218 1090d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm8,%xmm0 1091d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1092d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm3,%xmm5 1093d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pshufd $78,%xmm3,%xmm4 1094d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm3,%xmm4 1095d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,68,218,0 1096d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,68,234,17 1097d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,68,231,0 1098d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1099d9e397b599b13d642138480a28c14db7a136bf0Adam Langley leaq 32(%rdx),%rdx 1100d9e397b599b13d642138480a28c14db7a136bf0Adam Langley nop 11014969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin subq $0x20,%rcx 1102d9e397b599b13d642138480a28c14db7a136bf0Adam Langley jbe L$even_tail 1103d9e397b599b13d642138480a28c14db7a136bf0Adam Langley nop 1104d9e397b599b13d642138480a28c14db7a136bf0Adam Langley jmp L$mod_loop 1105d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1106d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.p2align 5 1107d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyL$mod_loop: 1108d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm1 1109d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm4,%xmm8 1110d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pshufd $78,%xmm0,%xmm4 1111d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm4 1112d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1113d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,68,198,0 1114d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,68,206,17 1115d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,68,231,16 1116d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1117d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm3,%xmm0 1118d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm5,%xmm1 1119d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqu (%rdx),%xmm9 1120d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm8 1121d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,69,15,56,0,202 1122d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqu 16(%rdx),%xmm3 1123d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1124d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm1,%xmm8 1125d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm9,%xmm1 1126d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm8,%xmm4 1127d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,65,15,56,0,218 1128d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm4,%xmm8 1129d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrldq $8,%xmm8 1130d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pslldq $8,%xmm4 1131d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm8,%xmm1 1132d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm4,%xmm0 1133d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1134d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm3,%xmm5 1135d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1136d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm9 1137d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm8 1138d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psllq $5,%xmm0 1139d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm8 1140d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,68,218,0 1141d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psllq $1,%xmm0 1142d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm8,%xmm0 1143d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psllq $57,%xmm0 1144d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm8 1145d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pslldq $8,%xmm0 1146d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrldq $8,%xmm8 1147d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm9,%xmm0 1148d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pshufd $78,%xmm5,%xmm4 1149d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm8,%xmm1 1150d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm5,%xmm4 1151d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1152d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm9 1153d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrlq $1,%xmm0 1154d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,68,234,17 1155d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm9,%xmm1 1156d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm9 1157d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrlq $5,%xmm0 1158d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm9,%xmm0 1159d9e397b599b13d642138480a28c14db7a136bf0Adam Langley leaq 32(%rdx),%rdx 1160d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrlq $1,%xmm0 1161d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,68,231,0 1162d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm1,%xmm0 1163d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 11644969cc9b0ab2905ec478277f50ed3849b37a6c6bDavid Benjamin subq $0x20,%rcx 1165d9e397b599b13d642138480a28c14db7a136bf0Adam Langley ja L$mod_loop 1166d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1167d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyL$even_tail: 1168d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm1 1169d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm4,%xmm8 1170d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pshufd $78,%xmm0,%xmm4 1171d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm4 1172d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1173d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,68,198,0 1174d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,68,206,17 1175d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,68,231,16 1176d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1177d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm3,%xmm0 1178d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm5,%xmm1 1179d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm8 1180d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm1,%xmm8 1181d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm8,%xmm4 1182d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm4,%xmm8 1183d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrldq $8,%xmm8 1184d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pslldq $8,%xmm4 1185d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm8,%xmm1 1186d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm4,%xmm0 1187d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1188d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm4 1189d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm3 1190d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psllq $5,%xmm0 1191d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm3 1192d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psllq $1,%xmm0 1193d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm3,%xmm0 1194d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psllq $57,%xmm0 1195d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm3 1196d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pslldq $8,%xmm0 1197d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrldq $8,%xmm3 1198d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm4,%xmm0 1199d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm3,%xmm1 1200d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1201d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1202d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm4 1203d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrlq $1,%xmm0 1204d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm4,%xmm1 1205d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm4 1206d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrlq $5,%xmm0 1207d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm4,%xmm0 1208d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrlq $1,%xmm0 1209d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm1,%xmm0 1210d9e397b599b13d642138480a28c14db7a136bf0Adam Langley testq %rcx,%rcx 1211d9e397b599b13d642138480a28c14db7a136bf0Adam Langley jnz L$done 1212d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1213d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyL$odd_tail: 1214d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqu (%rdx),%xmm8 1215d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,69,15,56,0,194 1216d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm8,%xmm0 1217d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm1 1218d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pshufd $78,%xmm0,%xmm3 1219d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm3 1220d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,68,194,0 1221d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,68,202,17 1222d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,15,58,68,223,0 1223d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm3 1224d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm1,%xmm3 1225d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1226d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm3,%xmm4 1227d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrldq $8,%xmm3 1228d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pslldq $8,%xmm4 1229d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm3,%xmm1 1230d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm4,%xmm0 1231d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1232d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm4 1233d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm3 1234d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psllq $5,%xmm0 1235d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm3 1236d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psllq $1,%xmm0 1237d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm3,%xmm0 1238d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psllq $57,%xmm0 1239d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm3 1240d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pslldq $8,%xmm0 1241d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrldq $8,%xmm3 1242d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm4,%xmm0 1243d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm3,%xmm1 1244d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1245d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1246d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqa %xmm0,%xmm4 1247d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrlq $1,%xmm0 1248d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm4,%xmm1 1249d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm0,%xmm4 1250d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrlq $5,%xmm0 1251d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm4,%xmm0 1252d9e397b599b13d642138480a28c14db7a136bf0Adam Langley psrlq $1,%xmm0 1253d9e397b599b13d642138480a28c14db7a136bf0Adam Langley pxor %xmm1,%xmm0 1254d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyL$done: 1255d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 102,65,15,56,0,194 1256d9e397b599b13d642138480a28c14db7a136bf0Adam Langley movdqu %xmm0,(%rdi) 1257d9e397b599b13d642138480a28c14db7a136bf0Adam Langley .byte 0xf3,0xc3 1258d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1259d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.globl _gcm_init_avx 1260d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.private_extern _gcm_init_avx 1261d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1262d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.p2align 5 1263d9e397b599b13d642138480a28c14db7a136bf0Adam Langley_gcm_init_avx: 1264b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vzeroupper 1265b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1266b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu (%rsi),%xmm2 1267b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpshufd $78,%xmm2,%xmm2 1268b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1269b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1270b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpshufd $255,%xmm2,%xmm4 1271b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpsrlq $63,%xmm2,%xmm3 1272b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpsllq $1,%xmm2,%xmm2 1273b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm5,%xmm5,%xmm5 1274b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpcmpgtd %xmm4,%xmm5,%xmm5 1275b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpslldq $8,%xmm3,%xmm3 1276b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpor %xmm3,%xmm2,%xmm2 1277b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1278b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1279b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpand L$0x1c2_polynomial(%rip),%xmm5,%xmm5 1280b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm5,%xmm2,%xmm2 1281b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1282b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpunpckhqdq %xmm2,%xmm2,%xmm6 1283b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqa %xmm2,%xmm0 1284b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm2,%xmm6,%xmm6 1285b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez movq $4,%r10 1286b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez jmp L$init_start_avx 1287b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez.p2align 5 1288b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven ValdezL$init_loop_avx: 1289b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpalignr $8,%xmm3,%xmm4,%xmm5 1290b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu %xmm5,-16(%rdi) 1291b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpunpckhqdq %xmm0,%xmm0,%xmm3 1292b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm0,%xmm3,%xmm3 1293b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x11,%xmm2,%xmm0,%xmm1 1294b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm2,%xmm0,%xmm0 1295b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm6,%xmm3,%xmm3 1296b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm0,%xmm1,%xmm4 1297b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm4,%xmm3,%xmm3 1298b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1299b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpslldq $8,%xmm3,%xmm4 1300b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpsrldq $8,%xmm3,%xmm3 1301b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm4,%xmm0,%xmm0 1302b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm3,%xmm1,%xmm1 1303b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpsllq $57,%xmm0,%xmm3 1304b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpsllq $62,%xmm0,%xmm4 1305b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm3,%xmm4,%xmm4 1306b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpsllq $63,%xmm0,%xmm3 1307b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm3,%xmm4,%xmm4 1308b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpslldq $8,%xmm4,%xmm3 1309b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpsrldq $8,%xmm4,%xmm4 1310b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm3,%xmm0,%xmm0 1311b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm4,%xmm1,%xmm1 1312b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1313b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpsrlq $1,%xmm0,%xmm4 1314b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm0,%xmm1,%xmm1 1315b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm4,%xmm0,%xmm0 1316b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpsrlq $5,%xmm4,%xmm4 1317b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm4,%xmm0,%xmm0 1318b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpsrlq $1,%xmm0,%xmm0 1319b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm1,%xmm0,%xmm0 1320b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven ValdezL$init_start_avx: 1321b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqa %xmm0,%xmm5 1322b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpunpckhqdq %xmm0,%xmm0,%xmm3 1323b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm0,%xmm3,%xmm3 1324b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x11,%xmm2,%xmm0,%xmm1 1325b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm2,%xmm0,%xmm0 1326b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm6,%xmm3,%xmm3 1327b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm0,%xmm1,%xmm4 1328b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm4,%xmm3,%xmm3 1329b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1330b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpslldq $8,%xmm3,%xmm4 1331b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpsrldq $8,%xmm3,%xmm3 1332b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm4,%xmm0,%xmm0 1333b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm3,%xmm1,%xmm1 1334b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpsllq $57,%xmm0,%xmm3 1335b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpsllq $62,%xmm0,%xmm4 1336b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm3,%xmm4,%xmm4 1337b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpsllq $63,%xmm0,%xmm3 1338b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm3,%xmm4,%xmm4 1339b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpslldq $8,%xmm4,%xmm3 1340b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpsrldq $8,%xmm4,%xmm4 1341b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm3,%xmm0,%xmm0 1342b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm4,%xmm1,%xmm1 1343b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1344b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpsrlq $1,%xmm0,%xmm4 1345b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm0,%xmm1,%xmm1 1346b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm4,%xmm0,%xmm0 1347b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpsrlq $5,%xmm4,%xmm4 1348b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm4,%xmm0,%xmm0 1349b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpsrlq $1,%xmm0,%xmm0 1350b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm1,%xmm0,%xmm0 1351b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpshufd $78,%xmm5,%xmm3 1352b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpshufd $78,%xmm0,%xmm4 1353b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm5,%xmm3,%xmm3 1354b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu %xmm5,0(%rdi) 1355b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm0,%xmm4,%xmm4 1356b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu %xmm0,16(%rdi) 1357b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez leaq 48(%rdi),%rdi 1358b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez subq $1,%r10 1359b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez jnz L$init_loop_avx 1360b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1361b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpalignr $8,%xmm4,%xmm3,%xmm5 1362b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu %xmm5,-16(%rdi) 1363b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1364b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vzeroupper 1365b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez .byte 0xf3,0xc3 1366d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1367d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.globl _gcm_gmult_avx 1368d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.private_extern _gcm_gmult_avx 1369d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1370d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.p2align 5 1371d9e397b599b13d642138480a28c14db7a136bf0Adam Langley_gcm_gmult_avx: 1372d9e397b599b13d642138480a28c14db7a136bf0Adam Langley jmp L$_gmult_clmul 1373d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1374d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.globl _gcm_ghash_avx 1375d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.private_extern _gcm_ghash_avx 1376d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1377d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.p2align 5 1378d9e397b599b13d642138480a28c14db7a136bf0Adam Langley_gcm_ghash_avx: 1379b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vzeroupper 1380b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1381b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu (%rdi),%xmm10 1382b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez leaq L$0x1c2_polynomial(%rip),%r10 1383b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez leaq 64(%rsi),%rsi 1384b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu L$bswap_mask(%rip),%xmm13 1385b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpshufb %xmm13,%xmm10,%xmm10 1386b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez cmpq $0x80,%rcx 1387b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez jb L$short_avx 1388b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez subq $0x80,%rcx 1389b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1390b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 112(%rdx),%xmm14 1391b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 0-64(%rsi),%xmm6 1392b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpshufb %xmm13,%xmm14,%xmm14 1393b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 32-64(%rsi),%xmm7 1394b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1395b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpunpckhqdq %xmm14,%xmm14,%xmm9 1396b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 96(%rdx),%xmm15 1397b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0 1398b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm14,%xmm9,%xmm9 1399b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpshufb %xmm13,%xmm15,%xmm15 1400b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1 1401b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 16-64(%rsi),%xmm6 1402b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpunpckhqdq %xmm15,%xmm15,%xmm8 1403b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 80(%rdx),%xmm14 1404b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm7,%xmm9,%xmm2 1405b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm15,%xmm8,%xmm8 1406b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1407b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpshufb %xmm13,%xmm14,%xmm14 1408b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm6,%xmm15,%xmm3 1409b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpunpckhqdq %xmm14,%xmm14,%xmm9 1410b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x11,%xmm6,%xmm15,%xmm4 1411b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 48-64(%rsi),%xmm6 1412b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm14,%xmm9,%xmm9 1413b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 64(%rdx),%xmm15 1414b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x10,%xmm7,%xmm8,%xmm5 1415b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 80-64(%rsi),%xmm7 1416b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1417b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpshufb %xmm13,%xmm15,%xmm15 1418b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm0,%xmm3,%xmm3 1419b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0 1420b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm1,%xmm4,%xmm4 1421b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpunpckhqdq %xmm15,%xmm15,%xmm8 1422b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1 1423b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 64-64(%rsi),%xmm6 1424b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm2,%xmm5,%xmm5 1425b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm7,%xmm9,%xmm2 1426b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm15,%xmm8,%xmm8 1427b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1428b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 48(%rdx),%xmm14 1429b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm3,%xmm0,%xmm0 1430b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm6,%xmm15,%xmm3 1431b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm4,%xmm1,%xmm1 1432b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpshufb %xmm13,%xmm14,%xmm14 1433b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x11,%xmm6,%xmm15,%xmm4 1434b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 96-64(%rsi),%xmm6 1435b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm5,%xmm2,%xmm2 1436b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpunpckhqdq %xmm14,%xmm14,%xmm9 1437b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x10,%xmm7,%xmm8,%xmm5 1438b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 128-64(%rsi),%xmm7 1439b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm14,%xmm9,%xmm9 1440b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1441b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 32(%rdx),%xmm15 1442b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm0,%xmm3,%xmm3 1443b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0 1444b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm1,%xmm4,%xmm4 1445b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpshufb %xmm13,%xmm15,%xmm15 1446b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1 1447b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 112-64(%rsi),%xmm6 1448b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm2,%xmm5,%xmm5 1449b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpunpckhqdq %xmm15,%xmm15,%xmm8 1450b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm7,%xmm9,%xmm2 1451b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm15,%xmm8,%xmm8 1452b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1453b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 16(%rdx),%xmm14 1454b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm3,%xmm0,%xmm0 1455b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm6,%xmm15,%xmm3 1456b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm4,%xmm1,%xmm1 1457b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpshufb %xmm13,%xmm14,%xmm14 1458b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x11,%xmm6,%xmm15,%xmm4 1459b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 144-64(%rsi),%xmm6 1460b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm5,%xmm2,%xmm2 1461b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpunpckhqdq %xmm14,%xmm14,%xmm9 1462b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x10,%xmm7,%xmm8,%xmm5 1463b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 176-64(%rsi),%xmm7 1464b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm14,%xmm9,%xmm9 1465b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1466b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu (%rdx),%xmm15 1467b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm0,%xmm3,%xmm3 1468b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0 1469b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm1,%xmm4,%xmm4 1470b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpshufb %xmm13,%xmm15,%xmm15 1471b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1 1472b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 160-64(%rsi),%xmm6 1473b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm2,%xmm5,%xmm5 1474b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x10,%xmm7,%xmm9,%xmm2 1475b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1476b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez leaq 128(%rdx),%rdx 1477b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez cmpq $0x80,%rcx 1478b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez jb L$tail_avx 1479b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1480b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm10,%xmm15,%xmm15 1481b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez subq $0x80,%rcx 1482b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez jmp L$oop8x_avx 1483b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1484b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez.p2align 5 1485b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven ValdezL$oop8x_avx: 1486b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpunpckhqdq %xmm15,%xmm15,%xmm8 1487b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 112(%rdx),%xmm14 1488b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm0,%xmm3,%xmm3 1489b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm15,%xmm8,%xmm8 1490b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm6,%xmm15,%xmm10 1491b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpshufb %xmm13,%xmm14,%xmm14 1492b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm1,%xmm4,%xmm4 1493b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x11,%xmm6,%xmm15,%xmm11 1494b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 0-64(%rsi),%xmm6 1495b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpunpckhqdq %xmm14,%xmm14,%xmm9 1496b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm2,%xmm5,%xmm5 1497b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm7,%xmm8,%xmm12 1498b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 32-64(%rsi),%xmm7 1499b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm14,%xmm9,%xmm9 1500b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1501b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 96(%rdx),%xmm15 1502b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0 1503b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm3,%xmm10,%xmm10 1504b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpshufb %xmm13,%xmm15,%xmm15 1505b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1 1506b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vxorps %xmm4,%xmm11,%xmm11 1507b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 16-64(%rsi),%xmm6 1508b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpunpckhqdq %xmm15,%xmm15,%xmm8 1509b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm7,%xmm9,%xmm2 1510b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm5,%xmm12,%xmm12 1511b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vxorps %xmm15,%xmm8,%xmm8 1512b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1513b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 80(%rdx),%xmm14 1514b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm10,%xmm12,%xmm12 1515b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm6,%xmm15,%xmm3 1516b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm11,%xmm12,%xmm12 1517b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpslldq $8,%xmm12,%xmm9 1518b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm0,%xmm3,%xmm3 1519b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x11,%xmm6,%xmm15,%xmm4 1520b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpsrldq $8,%xmm12,%xmm12 1521b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm9,%xmm10,%xmm10 1522b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 48-64(%rsi),%xmm6 1523b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpshufb %xmm13,%xmm14,%xmm14 1524b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vxorps %xmm12,%xmm11,%xmm11 1525b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm1,%xmm4,%xmm4 1526b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpunpckhqdq %xmm14,%xmm14,%xmm9 1527b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x10,%xmm7,%xmm8,%xmm5 1528b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 80-64(%rsi),%xmm7 1529b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm14,%xmm9,%xmm9 1530b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm2,%xmm5,%xmm5 1531b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1532b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 64(%rdx),%xmm15 1533b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpalignr $8,%xmm10,%xmm10,%xmm12 1534b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0 1535b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpshufb %xmm13,%xmm15,%xmm15 1536b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm3,%xmm0,%xmm0 1537b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1 1538b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 64-64(%rsi),%xmm6 1539b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpunpckhqdq %xmm15,%xmm15,%xmm8 1540b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm4,%xmm1,%xmm1 1541b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm7,%xmm9,%xmm2 1542b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vxorps %xmm15,%xmm8,%xmm8 1543b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm5,%xmm2,%xmm2 1544b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1545b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 48(%rdx),%xmm14 1546b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x10,(%r10),%xmm10,%xmm10 1547b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm6,%xmm15,%xmm3 1548b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpshufb %xmm13,%xmm14,%xmm14 1549b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm0,%xmm3,%xmm3 1550b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x11,%xmm6,%xmm15,%xmm4 1551b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 96-64(%rsi),%xmm6 1552b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpunpckhqdq %xmm14,%xmm14,%xmm9 1553b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm1,%xmm4,%xmm4 1554b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x10,%xmm7,%xmm8,%xmm5 1555b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 128-64(%rsi),%xmm7 1556b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm14,%xmm9,%xmm9 1557b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm2,%xmm5,%xmm5 1558b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1559b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 32(%rdx),%xmm15 1560b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0 1561b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpshufb %xmm13,%xmm15,%xmm15 1562b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm3,%xmm0,%xmm0 1563b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1 1564b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 112-64(%rsi),%xmm6 1565b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpunpckhqdq %xmm15,%xmm15,%xmm8 1566b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm4,%xmm1,%xmm1 1567b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm7,%xmm9,%xmm2 1568b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm15,%xmm8,%xmm8 1569b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm5,%xmm2,%xmm2 1570b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vxorps %xmm12,%xmm10,%xmm10 1571b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1572b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 16(%rdx),%xmm14 1573b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpalignr $8,%xmm10,%xmm10,%xmm12 1574b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm6,%xmm15,%xmm3 1575b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpshufb %xmm13,%xmm14,%xmm14 1576b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm0,%xmm3,%xmm3 1577b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x11,%xmm6,%xmm15,%xmm4 1578b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 144-64(%rsi),%xmm6 1579b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x10,(%r10),%xmm10,%xmm10 1580b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vxorps %xmm11,%xmm12,%xmm12 1581b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpunpckhqdq %xmm14,%xmm14,%xmm9 1582b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm1,%xmm4,%xmm4 1583b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x10,%xmm7,%xmm8,%xmm5 1584b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 176-64(%rsi),%xmm7 1585b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm14,%xmm9,%xmm9 1586b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm2,%xmm5,%xmm5 1587b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1588b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu (%rdx),%xmm15 1589b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0 1590b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpshufb %xmm13,%xmm15,%xmm15 1591b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1 1592b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 160-64(%rsi),%xmm6 1593b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm12,%xmm15,%xmm15 1594b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x10,%xmm7,%xmm9,%xmm2 1595b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm10,%xmm15,%xmm15 1596b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1597b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez leaq 128(%rdx),%rdx 1598b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez subq $0x80,%rcx 1599b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez jnc L$oop8x_avx 1600b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1601b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez addq $0x80,%rcx 1602b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez jmp L$tail_no_xor_avx 1603b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1604b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez.p2align 5 1605b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven ValdezL$short_avx: 1606b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu -16(%rdx,%rcx,1),%xmm14 1607b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez leaq (%rdx,%rcx,1),%rdx 1608b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 0-64(%rsi),%xmm6 1609b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 32-64(%rsi),%xmm7 1610b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpshufb %xmm13,%xmm14,%xmm15 1611b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1612b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqa %xmm0,%xmm3 1613b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqa %xmm1,%xmm4 1614b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqa %xmm2,%xmm5 1615b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez subq $0x10,%rcx 1616b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez jz L$tail_avx 1617b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1618b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpunpckhqdq %xmm15,%xmm15,%xmm8 1619b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm0,%xmm3,%xmm3 1620b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0 1621b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm15,%xmm8,%xmm8 1622b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu -32(%rdx),%xmm14 1623b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm1,%xmm4,%xmm4 1624b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1 1625b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 16-64(%rsi),%xmm6 1626b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpshufb %xmm13,%xmm14,%xmm15 1627b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm2,%xmm5,%xmm5 1628b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2 1629b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpsrldq $8,%xmm7,%xmm7 1630b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez subq $0x10,%rcx 1631b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez jz L$tail_avx 1632b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1633b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpunpckhqdq %xmm15,%xmm15,%xmm8 1634b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm0,%xmm3,%xmm3 1635b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0 1636b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm15,%xmm8,%xmm8 1637b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu -48(%rdx),%xmm14 1638b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm1,%xmm4,%xmm4 1639b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1 1640b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 48-64(%rsi),%xmm6 1641b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpshufb %xmm13,%xmm14,%xmm15 1642b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm2,%xmm5,%xmm5 1643b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2 1644b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 80-64(%rsi),%xmm7 1645b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez subq $0x10,%rcx 1646b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez jz L$tail_avx 1647b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1648b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpunpckhqdq %xmm15,%xmm15,%xmm8 1649b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm0,%xmm3,%xmm3 1650b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0 1651b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm15,%xmm8,%xmm8 1652b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu -64(%rdx),%xmm14 1653b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm1,%xmm4,%xmm4 1654b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1 1655b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 64-64(%rsi),%xmm6 1656b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpshufb %xmm13,%xmm14,%xmm15 1657b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm2,%xmm5,%xmm5 1658b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2 1659b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpsrldq $8,%xmm7,%xmm7 1660b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez subq $0x10,%rcx 1661b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez jz L$tail_avx 1662b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1663b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpunpckhqdq %xmm15,%xmm15,%xmm8 1664b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm0,%xmm3,%xmm3 1665b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0 1666b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm15,%xmm8,%xmm8 1667b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu -80(%rdx),%xmm14 1668b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm1,%xmm4,%xmm4 1669b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1 1670b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 96-64(%rsi),%xmm6 1671b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpshufb %xmm13,%xmm14,%xmm15 1672b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm2,%xmm5,%xmm5 1673b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2 1674b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 128-64(%rsi),%xmm7 1675b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez subq $0x10,%rcx 1676b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez jz L$tail_avx 1677b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1678b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpunpckhqdq %xmm15,%xmm15,%xmm8 1679b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm0,%xmm3,%xmm3 1680b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0 1681b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm15,%xmm8,%xmm8 1682b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu -96(%rdx),%xmm14 1683b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm1,%xmm4,%xmm4 1684b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1 1685b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 112-64(%rsi),%xmm6 1686b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpshufb %xmm13,%xmm14,%xmm15 1687b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm2,%xmm5,%xmm5 1688b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2 1689b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpsrldq $8,%xmm7,%xmm7 1690b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez subq $0x10,%rcx 1691b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez jz L$tail_avx 1692b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1693b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpunpckhqdq %xmm15,%xmm15,%xmm8 1694b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm0,%xmm3,%xmm3 1695b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0 1696b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm15,%xmm8,%xmm8 1697b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu -112(%rdx),%xmm14 1698b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm1,%xmm4,%xmm4 1699b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1 1700b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu 144-64(%rsi),%xmm6 1701b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpshufb %xmm13,%xmm14,%xmm15 1702b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm2,%xmm5,%xmm5 1703b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2 1704b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovq 184-64(%rsi),%xmm7 1705b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez subq $0x10,%rcx 1706b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez jmp L$tail_avx 1707b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1708b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez.p2align 5 1709b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven ValdezL$tail_avx: 1710b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm10,%xmm15,%xmm15 1711b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven ValdezL$tail_no_xor_avx: 1712b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpunpckhqdq %xmm15,%xmm15,%xmm8 1713b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm0,%xmm3,%xmm3 1714b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0 1715b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm15,%xmm8,%xmm8 1716b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm1,%xmm4,%xmm4 1717b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1 1718b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm2,%xmm5,%xmm5 1719b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2 1720b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1721b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu (%r10),%xmm12 1722b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1723b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm0,%xmm3,%xmm10 1724b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm1,%xmm4,%xmm11 1725b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm2,%xmm5,%xmm5 1726b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1727b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm10,%xmm5,%xmm5 1728b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm11,%xmm5,%xmm5 1729b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpslldq $8,%xmm5,%xmm9 1730b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpsrldq $8,%xmm5,%xmm5 1731b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm9,%xmm10,%xmm10 1732b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm5,%xmm11,%xmm11 1733b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1734b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x10,%xmm12,%xmm10,%xmm9 1735b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpalignr $8,%xmm10,%xmm10,%xmm10 1736b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm9,%xmm10,%xmm10 1737b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1738b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpclmulqdq $0x10,%xmm12,%xmm10,%xmm9 1739b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpalignr $8,%xmm10,%xmm10,%xmm10 1740b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm11,%xmm10,%xmm10 1741b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpxor %xmm9,%xmm10,%xmm10 1742b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1743b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez cmpq $0,%rcx 1744b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez jne L$short_avx 1745b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez 1746b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vpshufb %xmm13,%xmm10,%xmm10 1747b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vmovdqu %xmm10,(%rdi) 1748b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez vzeroupper 1749b0b45c63bbbf16b7f5ff3cbe3f1d0905108038aaSteven Valdez .byte 0xf3,0xc3 1750d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1751d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.p2align 6 1752d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyL$bswap_mask: 1753d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 1754d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyL$0x1c2_polynomial: 1755d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc2 1756d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyL$7_mask: 1757d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.long 7,0,7,0 1758d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyL$7_mask_poly: 1759d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.long 7,0,450,0 1760d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.p2align 6 1761d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1762d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyL$rem_4bit: 1763d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.long 0,0,0,471859200,0,943718400,0,610271232 1764d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.long 0,1887436800,0,1822425088,0,1220542464,0,1423966208 1765d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.long 0,3774873600,0,4246732800,0,3644850176,0,3311403008 1766d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.long 0,2441084928,0,2376073216,0,2847932416,0,3051356160 1767d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1768d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyL$rem_8bit: 1769d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.value 0x0000,0x01C2,0x0384,0x0246,0x0708,0x06CA,0x048C,0x054E 1770d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.value 0x0E10,0x0FD2,0x0D94,0x0C56,0x0918,0x08DA,0x0A9C,0x0B5E 1771d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.value 0x1C20,0x1DE2,0x1FA4,0x1E66,0x1B28,0x1AEA,0x18AC,0x196E 1772d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.value 0x1230,0x13F2,0x11B4,0x1076,0x1538,0x14FA,0x16BC,0x177E 1773d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.value 0x3840,0x3982,0x3BC4,0x3A06,0x3F48,0x3E8A,0x3CCC,0x3D0E 1774d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.value 0x3650,0x3792,0x35D4,0x3416,0x3158,0x309A,0x32DC,0x331E 1775d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.value 0x2460,0x25A2,0x27E4,0x2626,0x2368,0x22AA,0x20EC,0x212E 1776d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.value 0x2A70,0x2BB2,0x29F4,0x2836,0x2D78,0x2CBA,0x2EFC,0x2F3E 1777d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.value 0x7080,0x7142,0x7304,0x72C6,0x7788,0x764A,0x740C,0x75CE 1778d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.value 0x7E90,0x7F52,0x7D14,0x7CD6,0x7998,0x785A,0x7A1C,0x7BDE 1779d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.value 0x6CA0,0x6D62,0x6F24,0x6EE6,0x6BA8,0x6A6A,0x682C,0x69EE 1780d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.value 0x62B0,0x6372,0x6134,0x60F6,0x65B8,0x647A,0x663C,0x67FE 1781d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.value 0x48C0,0x4902,0x4B44,0x4A86,0x4FC8,0x4E0A,0x4C4C,0x4D8E 1782d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.value 0x46D0,0x4712,0x4554,0x4496,0x41D8,0x401A,0x425C,0x439E 1783d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.value 0x54E0,0x5522,0x5764,0x56A6,0x53E8,0x522A,0x506C,0x51AE 1784d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.value 0x5AF0,0x5B32,0x5974,0x58B6,0x5DF8,0x5C3A,0x5E7C,0x5FBE 1785d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.value 0xE100,0xE0C2,0xE284,0xE346,0xE608,0xE7CA,0xE58C,0xE44E 1786d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.value 0xEF10,0xEED2,0xEC94,0xED56,0xE818,0xE9DA,0xEB9C,0xEA5E 1787d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.value 0xFD20,0xFCE2,0xFEA4,0xFF66,0xFA28,0xFBEA,0xF9AC,0xF86E 1788d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.value 0xF330,0xF2F2,0xF0B4,0xF176,0xF438,0xF5FA,0xF7BC,0xF67E 1789d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.value 0xD940,0xD882,0xDAC4,0xDB06,0xDE48,0xDF8A,0xDDCC,0xDC0E 1790d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.value 0xD750,0xD692,0xD4D4,0xD516,0xD058,0xD19A,0xD3DC,0xD21E 1791d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.value 0xC560,0xC4A2,0xC6E4,0xC726,0xC268,0xC3AA,0xC1EC,0xC02E 1792d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.value 0xCB70,0xCAB2,0xC8F4,0xC936,0xCC78,0xCDBA,0xCFFC,0xCE3E 1793d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.value 0x9180,0x9042,0x9204,0x93C6,0x9688,0x974A,0x950C,0x94CE 1794d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.value 0x9F90,0x9E52,0x9C14,0x9DD6,0x9898,0x995A,0x9B1C,0x9ADE 1795d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.value 0x8DA0,0x8C62,0x8E24,0x8FE6,0x8AA8,0x8B6A,0x892C,0x88EE 1796d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.value 0x83B0,0x8272,0x8034,0x81F6,0x84B8,0x857A,0x873C,0x86FE 1797d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.value 0xA9C0,0xA802,0xAA44,0xAB86,0xAEC8,0xAF0A,0xAD4C,0xAC8E 1798d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.value 0xA7D0,0xA612,0xA454,0xA596,0xA0D8,0xA11A,0xA35C,0xA29E 1799d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.value 0xB5E0,0xB422,0xB664,0xB7A6,0xB2E8,0xB32A,0xB16C,0xB0AE 1800d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.value 0xBBF0,0xBA32,0xB874,0xB9B6,0xBCF8,0xBD3A,0xBF7C,0xBEBE 1801d9e397b599b13d642138480a28c14db7a136bf0Adam Langley 1802d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte 71,72,65,83,72,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 1803d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.p2align 6 1804d9e397b599b13d642138480a28c14db7a136bf0Adam Langley#endif 1805