1.text 2 3.type _mul_1x1,@function 4.align 16 5_mul_1x1: 6.cfi_startproc 7 subq $128+8,%rsp 8.cfi_adjust_cfa_offset 128+8 9 movq $-1,%r9 10 leaq (%rax,%rax,1),%rsi 11 shrq $3,%r9 12 leaq (,%rax,4),%rdi 13 andq %rax,%r9 14 leaq (,%rax,8),%r12 15 sarq $63,%rax 16 leaq (%r9,%r9,1),%r10 17 sarq $63,%rsi 18 leaq (,%r9,4),%r11 19 andq %rbp,%rax 20 sarq $63,%rdi 21 movq %rax,%rdx 22 shlq $63,%rax 23 andq %rbp,%rsi 24 shrq $1,%rdx 25 movq %rsi,%rcx 26 shlq $62,%rsi 27 andq %rbp,%rdi 28 shrq $2,%rcx 29 xorq %rsi,%rax 30 movq %rdi,%rbx 31 shlq $61,%rdi 32 xorq %rcx,%rdx 33 shrq $3,%rbx 34 xorq %rdi,%rax 35 xorq %rbx,%rdx 36 37 movq %r9,%r13 38 movq $0,0(%rsp) 39 xorq %r10,%r13 40 movq %r9,8(%rsp) 41 movq %r11,%r14 42 movq %r10,16(%rsp) 43 xorq %r12,%r14 44 movq %r13,24(%rsp) 45 46 xorq %r11,%r9 47 movq %r11,32(%rsp) 48 xorq %r11,%r10 49 movq %r9,40(%rsp) 50 xorq %r11,%r13 51 movq %r10,48(%rsp) 52 xorq %r14,%r9 53 movq %r13,56(%rsp) 54 xorq %r14,%r10 55 56 movq %r12,64(%rsp) 57 xorq %r14,%r13 58 movq %r9,72(%rsp) 59 xorq %r11,%r9 60 movq %r10,80(%rsp) 61 xorq %r11,%r10 62 movq %r13,88(%rsp) 63 64 xorq %r11,%r13 65 movq %r14,96(%rsp) 66 movq %r8,%rsi 67 movq %r9,104(%rsp) 68 andq %rbp,%rsi 69 movq %r10,112(%rsp) 70 shrq $4,%rbp 71 movq %r13,120(%rsp) 72 movq %r8,%rdi 73 andq %rbp,%rdi 74 shrq $4,%rbp 75 76 movq (%rsp,%rsi,8),%xmm0 77 movq %r8,%rsi 78 andq %rbp,%rsi 79 shrq $4,%rbp 80 movq (%rsp,%rdi,8),%rcx 81 movq %r8,%rdi 82 movq %rcx,%rbx 83 shlq $4,%rcx 84 andq %rbp,%rdi 85 movq (%rsp,%rsi,8),%xmm1 86 shrq $60,%rbx 87 xorq %rcx,%rax 88 pslldq $1,%xmm1 89 movq %r8,%rsi 90 shrq $4,%rbp 91 xorq %rbx,%rdx 92 andq %rbp,%rsi 93 shrq $4,%rbp 94 pxor %xmm1,%xmm0 95 movq (%rsp,%rdi,8),%rcx 96 movq %r8,%rdi 97 movq %rcx,%rbx 98 shlq $12,%rcx 99 andq %rbp,%rdi 100 movq (%rsp,%rsi,8),%xmm1 101 shrq $52,%rbx 102 xorq %rcx,%rax 103 pslldq $2,%xmm1 104 movq %r8,%rsi 105 shrq $4,%rbp 106 xorq %rbx,%rdx 107 andq %rbp,%rsi 108 shrq $4,%rbp 109 pxor %xmm1,%xmm0 110 movq (%rsp,%rdi,8),%rcx 111 movq %r8,%rdi 112 movq %rcx,%rbx 113 shlq $20,%rcx 114 andq %rbp,%rdi 115 movq (%rsp,%rsi,8),%xmm1 116 shrq $44,%rbx 117 xorq %rcx,%rax 118 pslldq $3,%xmm1 119 movq %r8,%rsi 120 shrq $4,%rbp 121 xorq %rbx,%rdx 122 andq %rbp,%rsi 123 shrq $4,%rbp 124 pxor %xmm1,%xmm0 125 movq (%rsp,%rdi,8),%rcx 126 movq %r8,%rdi 127 movq %rcx,%rbx 128 shlq $28,%rcx 129 andq %rbp,%rdi 130 movq (%rsp,%rsi,8),%xmm1 131 shrq $36,%rbx 132 xorq %rcx,%rax 133 pslldq $4,%xmm1 134 movq %r8,%rsi 135 shrq $4,%rbp 136 xorq %rbx,%rdx 137 andq %rbp,%rsi 138 shrq $4,%rbp 139 pxor %xmm1,%xmm0 140 movq (%rsp,%rdi,8),%rcx 141 movq %r8,%rdi 142 movq %rcx,%rbx 143 shlq $36,%rcx 144 andq %rbp,%rdi 145 movq (%rsp,%rsi,8),%xmm1 146 shrq $28,%rbx 147 xorq %rcx,%rax 148 pslldq $5,%xmm1 149 movq %r8,%rsi 150 shrq $4,%rbp 151 xorq %rbx,%rdx 152 andq %rbp,%rsi 153 shrq $4,%rbp 154 pxor %xmm1,%xmm0 155 movq (%rsp,%rdi,8),%rcx 156 movq %r8,%rdi 157 movq %rcx,%rbx 158 shlq $44,%rcx 159 andq %rbp,%rdi 160 movq (%rsp,%rsi,8),%xmm1 161 shrq $20,%rbx 162 xorq %rcx,%rax 163 pslldq $6,%xmm1 164 movq %r8,%rsi 165 shrq $4,%rbp 166 xorq %rbx,%rdx 167 andq %rbp,%rsi 168 shrq $4,%rbp 169 pxor %xmm1,%xmm0 170 movq (%rsp,%rdi,8),%rcx 171 movq %r8,%rdi 172 movq %rcx,%rbx 173 shlq $52,%rcx 174 andq %rbp,%rdi 175 movq (%rsp,%rsi,8),%xmm1 176 shrq $12,%rbx 177 xorq %rcx,%rax 178 pslldq $7,%xmm1 179 movq %r8,%rsi 180 shrq $4,%rbp 181 xorq %rbx,%rdx 182 andq %rbp,%rsi 183 shrq $4,%rbp 184 pxor %xmm1,%xmm0 185 movq (%rsp,%rdi,8),%rcx 186 movq %rcx,%rbx 187 shlq $60,%rcx 188.byte 102,72,15,126,198 189 shrq $4,%rbx 190 xorq %rcx,%rax 191 psrldq $8,%xmm0 192 xorq %rbx,%rdx 193.byte 102,72,15,126,199 194 xorq %rsi,%rax 195 xorq %rdi,%rdx 196 197 addq $128+8,%rsp 198.cfi_adjust_cfa_offset -128-8 199 .byte 0xf3,0xc3 200.Lend_mul_1x1: 201.cfi_endproc 202.size _mul_1x1,.-_mul_1x1 203 204.globl bn_GF2m_mul_2x2 205.type bn_GF2m_mul_2x2,@function 206.align 16 207bn_GF2m_mul_2x2: 208.cfi_startproc 209 movq %rsp,%rax 210 movq OPENSSL_ia32cap_P(%rip),%r10 211 btq $33,%r10 212 jnc .Lvanilla_mul_2x2 213 214.byte 102,72,15,110,198 215.byte 102,72,15,110,201 216.byte 102,72,15,110,210 217.byte 102,73,15,110,216 218 movdqa %xmm0,%xmm4 219 movdqa %xmm1,%xmm5 220.byte 102,15,58,68,193,0 221 pxor %xmm2,%xmm4 222 pxor %xmm3,%xmm5 223.byte 102,15,58,68,211,0 224.byte 102,15,58,68,229,0 225 xorps %xmm0,%xmm4 226 xorps %xmm2,%xmm4 227 movdqa %xmm4,%xmm5 228 pslldq $8,%xmm4 229 psrldq $8,%xmm5 230 pxor %xmm4,%xmm2 231 pxor %xmm5,%xmm0 232 movdqu %xmm2,0(%rdi) 233 movdqu %xmm0,16(%rdi) 234 .byte 0xf3,0xc3 235 236.align 16 237.Lvanilla_mul_2x2: 238 leaq -136(%rsp),%rsp 239.cfi_adjust_cfa_offset 8*17 240 movq %r14,80(%rsp) 241.cfi_rel_offset %r14,8*10 242 movq %r13,88(%rsp) 243.cfi_rel_offset %r13,8*11 244 movq %r12,96(%rsp) 245.cfi_rel_offset %r12,8*12 246 movq %rbp,104(%rsp) 247.cfi_rel_offset %rbp,8*13 248 movq %rbx,112(%rsp) 249.cfi_rel_offset %rbx,8*14 250.Lbody_mul_2x2: 251 movq %rdi,32(%rsp) 252 movq %rsi,40(%rsp) 253 movq %rdx,48(%rsp) 254 movq %rcx,56(%rsp) 255 movq %r8,64(%rsp) 256 257 movq $0xf,%r8 258 movq %rsi,%rax 259 movq %rcx,%rbp 260 call _mul_1x1 261 movq %rax,16(%rsp) 262 movq %rdx,24(%rsp) 263 264 movq 48(%rsp),%rax 265 movq 64(%rsp),%rbp 266 call _mul_1x1 267 movq %rax,0(%rsp) 268 movq %rdx,8(%rsp) 269 270 movq 40(%rsp),%rax 271 movq 56(%rsp),%rbp 272 xorq 48(%rsp),%rax 273 xorq 64(%rsp),%rbp 274 call _mul_1x1 275 movq 0(%rsp),%rbx 276 movq 8(%rsp),%rcx 277 movq 16(%rsp),%rdi 278 movq 24(%rsp),%rsi 279 movq 32(%rsp),%rbp 280 281 xorq %rdx,%rax 282 xorq %rcx,%rdx 283 xorq %rbx,%rax 284 movq %rbx,0(%rbp) 285 xorq %rdi,%rdx 286 movq %rsi,24(%rbp) 287 xorq %rsi,%rax 288 xorq %rsi,%rdx 289 xorq %rdx,%rax 290 movq %rdx,16(%rbp) 291 movq %rax,8(%rbp) 292 293 movq 80(%rsp),%r14 294.cfi_restore %r14 295 movq 88(%rsp),%r13 296.cfi_restore %r13 297 movq 96(%rsp),%r12 298.cfi_restore %r12 299 movq 104(%rsp),%rbp 300.cfi_restore %rbp 301 movq 112(%rsp),%rbx 302.cfi_restore %rbx 303 leaq 136(%rsp),%rsp 304.cfi_adjust_cfa_offset -8*17 305.Lepilogue_mul_2x2: 306 .byte 0xf3,0xc3 307.Lend_mul_2x2: 308.cfi_endproc 309.size bn_GF2m_mul_2x2,.-bn_GF2m_mul_2x2 310.byte 71,70,40,50,94,109,41,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,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 311.align 16 312