1 1.1 christos #include <machine/asm.h> 2 1.1 christos .text 3 1.1 christos .globl gcm_gmult_4bit_x86 4 1.1 christos .type gcm_gmult_4bit_x86,@function 5 1.1 christos .align 16 6 1.1 christos gcm_gmult_4bit_x86: 7 1.1 christos .L_gcm_gmult_4bit_x86_begin: 8 1.1 christos pushl %ebp 9 1.1 christos pushl %ebx 10 1.1 christos pushl %esi 11 1.1 christos pushl %edi 12 1.1 christos subl $84,%esp 13 1.1 christos movl 104(%esp),%edi 14 1.1 christos movl 108(%esp),%esi 15 1.1 christos movl (%edi),%ebp 16 1.1 christos movl 4(%edi),%edx 17 1.1 christos movl 8(%edi),%ecx 18 1.1 christos movl 12(%edi),%ebx 19 1.1 christos movl $0,16(%esp) 20 1.1 christos movl $471859200,20(%esp) 21 1.1 christos movl $943718400,24(%esp) 22 1.1 christos movl $610271232,28(%esp) 23 1.1 christos movl $1887436800,32(%esp) 24 1.1 christos movl $1822425088,36(%esp) 25 1.1 christos movl $1220542464,40(%esp) 26 1.1 christos movl $1423966208,44(%esp) 27 1.1 christos movl $3774873600,48(%esp) 28 1.1 christos movl $4246732800,52(%esp) 29 1.1 christos movl $3644850176,56(%esp) 30 1.1 christos movl $3311403008,60(%esp) 31 1.1 christos movl $2441084928,64(%esp) 32 1.1 christos movl $2376073216,68(%esp) 33 1.1 christos movl $2847932416,72(%esp) 34 1.1 christos movl $3051356160,76(%esp) 35 1.1 christos movl %ebp,(%esp) 36 1.1 christos movl %edx,4(%esp) 37 1.1 christos movl %ecx,8(%esp) 38 1.1 christos movl %ebx,12(%esp) 39 1.1 christos shrl $20,%ebx 40 1.1 christos andl $240,%ebx 41 1.1 christos movl 4(%esi,%ebx,1),%ebp 42 1.1 christos movl (%esi,%ebx,1),%edx 43 1.1 christos movl 12(%esi,%ebx,1),%ecx 44 1.1 christos movl 8(%esi,%ebx,1),%ebx 45 1.1 christos xorl %eax,%eax 46 1.1 christos movl $15,%edi 47 1.1 christos jmp .L000x86_loop 48 1.1 christos .align 16 49 1.1 christos .L000x86_loop: 50 1.1 christos movb %bl,%al 51 1.1 christos shrdl $4,%ecx,%ebx 52 1.1 christos andb $15,%al 53 1.1 christos shrdl $4,%edx,%ecx 54 1.1 christos shrdl $4,%ebp,%edx 55 1.1 christos shrl $4,%ebp 56 1.1 christos xorl 16(%esp,%eax,4),%ebp 57 1.1 christos movb (%esp,%edi,1),%al 58 1.1 christos andb $240,%al 59 1.1 christos xorl 8(%esi,%eax,1),%ebx 60 1.1 christos xorl 12(%esi,%eax,1),%ecx 61 1.1 christos xorl (%esi,%eax,1),%edx 62 1.1 christos xorl 4(%esi,%eax,1),%ebp 63 1.1 christos decl %edi 64 1.1 christos js .L001x86_break 65 1.1 christos movb %bl,%al 66 1.1 christos shrdl $4,%ecx,%ebx 67 1.1 christos andb $15,%al 68 1.1 christos shrdl $4,%edx,%ecx 69 1.1 christos shrdl $4,%ebp,%edx 70 1.1 christos shrl $4,%ebp 71 1.1 christos xorl 16(%esp,%eax,4),%ebp 72 1.1 christos movb (%esp,%edi,1),%al 73 1.1 christos shlb $4,%al 74 1.1 christos xorl 8(%esi,%eax,1),%ebx 75 1.1 christos xorl 12(%esi,%eax,1),%ecx 76 1.1 christos xorl (%esi,%eax,1),%edx 77 1.1 christos xorl 4(%esi,%eax,1),%ebp 78 1.1 christos jmp .L000x86_loop 79 1.1 christos .align 16 80 1.1 christos .L001x86_break: 81 1.1 christos bswap %ebx 82 1.1 christos bswap %ecx 83 1.1 christos bswap %edx 84 1.1 christos bswap %ebp 85 1.1 christos movl 104(%esp),%edi 86 1.1 christos movl %ebx,12(%edi) 87 1.1 christos movl %ecx,8(%edi) 88 1.1 christos movl %edx,4(%edi) 89 1.1 christos movl %ebp,(%edi) 90 1.1 christos addl $84,%esp 91 1.1 christos popl %edi 92 1.1 christos popl %esi 93 1.1 christos popl %ebx 94 1.1 christos popl %ebp 95 1.1 christos ret 96 1.1 christos .size gcm_gmult_4bit_x86,.-.L_gcm_gmult_4bit_x86_begin 97 1.1 christos .globl gcm_ghash_4bit_x86 98 1.1 christos .type gcm_ghash_4bit_x86,@function 99 1.1 christos .align 16 100 1.1 christos gcm_ghash_4bit_x86: 101 1.1 christos .L_gcm_ghash_4bit_x86_begin: 102 1.1 christos pushl %ebp 103 1.1 christos pushl %ebx 104 1.1 christos pushl %esi 105 1.1 christos pushl %edi 106 1.1 christos subl $84,%esp 107 1.1 christos movl 104(%esp),%ebx 108 1.1 christos movl 108(%esp),%esi 109 1.1 christos movl 112(%esp),%edi 110 1.1 christos movl 116(%esp),%ecx 111 1.1 christos addl %edi,%ecx 112 1.1 christos movl %ecx,116(%esp) 113 1.1 christos movl (%ebx),%ebp 114 1.1 christos movl 4(%ebx),%edx 115 1.1 christos movl 8(%ebx),%ecx 116 1.1 christos movl 12(%ebx),%ebx 117 1.1 christos movl $0,16(%esp) 118 1.1 christos movl $471859200,20(%esp) 119 1.1 christos movl $943718400,24(%esp) 120 1.1 christos movl $610271232,28(%esp) 121 1.1 christos movl $1887436800,32(%esp) 122 1.1 christos movl $1822425088,36(%esp) 123 1.1 christos movl $1220542464,40(%esp) 124 1.1 christos movl $1423966208,44(%esp) 125 1.1 christos movl $3774873600,48(%esp) 126 1.1 christos movl $4246732800,52(%esp) 127 1.1 christos movl $3644850176,56(%esp) 128 1.1 christos movl $3311403008,60(%esp) 129 1.1 christos movl $2441084928,64(%esp) 130 1.1 christos movl $2376073216,68(%esp) 131 1.1 christos movl $2847932416,72(%esp) 132 1.1 christos movl $3051356160,76(%esp) 133 1.1 christos .align 16 134 1.1 christos .L002x86_outer_loop: 135 1.1 christos xorl 12(%edi),%ebx 136 1.1 christos xorl 8(%edi),%ecx 137 1.1 christos xorl 4(%edi),%edx 138 1.1 christos xorl (%edi),%ebp 139 1.1 christos movl %ebx,12(%esp) 140 1.1 christos movl %ecx,8(%esp) 141 1.1 christos movl %edx,4(%esp) 142 1.1 christos movl %ebp,(%esp) 143 1.1 christos shrl $20,%ebx 144 1.1 christos andl $240,%ebx 145 1.1 christos movl 4(%esi,%ebx,1),%ebp 146 1.1 christos movl (%esi,%ebx,1),%edx 147 1.1 christos movl 12(%esi,%ebx,1),%ecx 148 1.1 christos movl 8(%esi,%ebx,1),%ebx 149 1.1 christos xorl %eax,%eax 150 1.1 christos movl $15,%edi 151 1.1 christos jmp .L003x86_loop 152 1.1 christos .align 16 153 1.1 christos .L003x86_loop: 154 1.1 christos movb %bl,%al 155 1.1 christos shrdl $4,%ecx,%ebx 156 1.1 christos andb $15,%al 157 1.1 christos shrdl $4,%edx,%ecx 158 1.1 christos shrdl $4,%ebp,%edx 159 1.1 christos shrl $4,%ebp 160 1.1 christos xorl 16(%esp,%eax,4),%ebp 161 1.1 christos movb (%esp,%edi,1),%al 162 1.1 christos andb $240,%al 163 1.1 christos xorl 8(%esi,%eax,1),%ebx 164 1.1 christos xorl 12(%esi,%eax,1),%ecx 165 1.1 christos xorl (%esi,%eax,1),%edx 166 1.1 christos xorl 4(%esi,%eax,1),%ebp 167 1.1 christos decl %edi 168 1.1 christos js .L004x86_break 169 1.1 christos movb %bl,%al 170 1.1 christos shrdl $4,%ecx,%ebx 171 1.1 christos andb $15,%al 172 1.1 christos shrdl $4,%edx,%ecx 173 1.1 christos shrdl $4,%ebp,%edx 174 1.1 christos shrl $4,%ebp 175 1.1 christos xorl 16(%esp,%eax,4),%ebp 176 1.1 christos movb (%esp,%edi,1),%al 177 1.1 christos shlb $4,%al 178 1.1 christos xorl 8(%esi,%eax,1),%ebx 179 1.1 christos xorl 12(%esi,%eax,1),%ecx 180 1.1 christos xorl (%esi,%eax,1),%edx 181 1.1 christos xorl 4(%esi,%eax,1),%ebp 182 1.1 christos jmp .L003x86_loop 183 1.1 christos .align 16 184 1.1 christos .L004x86_break: 185 1.1 christos bswap %ebx 186 1.1 christos bswap %ecx 187 1.1 christos bswap %edx 188 1.1 christos bswap %ebp 189 1.1 christos movl 112(%esp),%edi 190 1.1 christos leal 16(%edi),%edi 191 1.1 christos cmpl 116(%esp),%edi 192 1.1 christos movl %edi,112(%esp) 193 1.1 christos jb .L002x86_outer_loop 194 1.1 christos movl 104(%esp),%edi 195 1.1 christos movl %ebx,12(%edi) 196 1.1 christos movl %ecx,8(%edi) 197 1.1 christos movl %edx,4(%edi) 198 1.1 christos movl %ebp,(%edi) 199 1.1 christos addl $84,%esp 200 1.1 christos popl %edi 201 1.1 christos popl %esi 202 1.1 christos popl %ebx 203 1.1 christos popl %ebp 204 1.1 christos ret 205 1.1 christos .size gcm_ghash_4bit_x86,.-.L_gcm_ghash_4bit_x86_begin 206 1.1 christos .globl gcm_gmult_4bit_mmx 207 1.1 christos .type gcm_gmult_4bit_mmx,@function 208 1.1 christos .align 16 209 1.1 christos gcm_gmult_4bit_mmx: 210 1.1 christos .L_gcm_gmult_4bit_mmx_begin: 211 1.1 christos pushl %ebp 212 1.1 christos pushl %ebx 213 1.1 christos pushl %esi 214 1.1 christos pushl %edi 215 1.1 christos movl 20(%esp),%edi 216 1.1 christos movl 24(%esp),%esi 217 1.1 christos call .L005pic_point 218 1.1 christos .L005pic_point: 219 1.1 christos popl %eax 220 1.1 christos leal .Lrem_4bit-.L005pic_point(%eax),%eax 221 1.1 christos movzbl 15(%edi),%ebx 222 1.1 christos xorl %ecx,%ecx 223 1.1 christos movl %ebx,%edx 224 1.1 christos movb %dl,%cl 225 1.1 christos movl $14,%ebp 226 1.1 christos shlb $4,%cl 227 1.1 christos andl $240,%edx 228 1.1 christos movq 8(%esi,%ecx,1),%mm0 229 1.1 christos movq (%esi,%ecx,1),%mm1 230 1.1 christos movd %mm0,%ebx 231 1.1 christos jmp .L006mmx_loop 232 1.1 christos .align 16 233 1.1 christos .L006mmx_loop: 234 1.1 christos psrlq $4,%mm0 235 1.1 christos andl $15,%ebx 236 1.1 christos movq %mm1,%mm2 237 1.1 christos psrlq $4,%mm1 238 1.1 christos pxor 8(%esi,%edx,1),%mm0 239 1.1 christos movb (%edi,%ebp,1),%cl 240 1.1 christos psllq $60,%mm2 241 1.1 christos pxor (%eax,%ebx,8),%mm1 242 1.1 christos decl %ebp 243 1.1 christos movd %mm0,%ebx 244 1.1 christos pxor (%esi,%edx,1),%mm1 245 1.1 christos movl %ecx,%edx 246 1.1 christos pxor %mm2,%mm0 247 1.1 christos js .L007mmx_break 248 1.1 christos shlb $4,%cl 249 1.1 christos andl $15,%ebx 250 1.1 christos psrlq $4,%mm0 251 1.1 christos andl $240,%edx 252 1.1 christos movq %mm1,%mm2 253 1.1 christos psrlq $4,%mm1 254 1.1 christos pxor 8(%esi,%ecx,1),%mm0 255 1.1 christos psllq $60,%mm2 256 1.1 christos pxor (%eax,%ebx,8),%mm1 257 1.1 christos movd %mm0,%ebx 258 1.1 christos pxor (%esi,%ecx,1),%mm1 259 1.1 christos pxor %mm2,%mm0 260 1.1 christos jmp .L006mmx_loop 261 1.1 christos .align 16 262 1.1 christos .L007mmx_break: 263 1.1 christos shlb $4,%cl 264 1.1 christos andl $15,%ebx 265 1.1 christos psrlq $4,%mm0 266 1.1 christos andl $240,%edx 267 1.1 christos movq %mm1,%mm2 268 1.1 christos psrlq $4,%mm1 269 1.1 christos pxor 8(%esi,%ecx,1),%mm0 270 1.1 christos psllq $60,%mm2 271 1.1 christos pxor (%eax,%ebx,8),%mm1 272 1.1 christos movd %mm0,%ebx 273 1.1 christos pxor (%esi,%ecx,1),%mm1 274 1.1 christos pxor %mm2,%mm0 275 1.1 christos psrlq $4,%mm0 276 1.1 christos andl $15,%ebx 277 1.1 christos movq %mm1,%mm2 278 1.1 christos psrlq $4,%mm1 279 1.1 christos pxor 8(%esi,%edx,1),%mm0 280 1.1 christos psllq $60,%mm2 281 1.1 christos pxor (%eax,%ebx,8),%mm1 282 1.1 christos movd %mm0,%ebx 283 1.1 christos pxor (%esi,%edx,1),%mm1 284 1.1 christos pxor %mm2,%mm0 285 1.1 christos psrlq $32,%mm0 286 1.1 christos movd %mm1,%edx 287 1.1 christos psrlq $32,%mm1 288 1.1 christos movd %mm0,%ecx 289 1.1 christos movd %mm1,%ebp 290 1.1 christos bswap %ebx 291 1.1 christos bswap %edx 292 1.1 christos bswap %ecx 293 1.1 christos bswap %ebp 294 1.1 christos emms 295 1.1 christos movl %ebx,12(%edi) 296 1.1 christos movl %edx,4(%edi) 297 1.1 christos movl %ecx,8(%edi) 298 1.1 christos movl %ebp,(%edi) 299 1.1 christos popl %edi 300 1.1 christos popl %esi 301 1.1 christos popl %ebx 302 1.1 christos popl %ebp 303 1.1 christos ret 304 1.1 christos .size gcm_gmult_4bit_mmx,.-.L_gcm_gmult_4bit_mmx_begin 305 1.1 christos .globl gcm_ghash_4bit_mmx 306 1.1 christos .type gcm_ghash_4bit_mmx,@function 307 1.1 christos .align 16 308 1.1 christos gcm_ghash_4bit_mmx: 309 1.1 christos .L_gcm_ghash_4bit_mmx_begin: 310 1.1 christos pushl %ebp 311 1.1 christos pushl %ebx 312 1.1 christos pushl %esi 313 1.1 christos pushl %edi 314 1.1 christos movl 20(%esp),%eax 315 1.1 christos movl 24(%esp),%ebx 316 1.1 christos movl 28(%esp),%ecx 317 1.1 christos movl 32(%esp),%edx 318 1.1 christos movl %esp,%ebp 319 1.1 christos call .L008pic_point 320 1.1 christos .L008pic_point: 321 1.1 christos popl %esi 322 1.1 christos leal .Lrem_8bit-.L008pic_point(%esi),%esi 323 1.1 christos subl $544,%esp 324 1.1 christos andl $-64,%esp 325 1.1 christos subl $16,%esp 326 1.1 christos addl %ecx,%edx 327 1.1 christos movl %eax,544(%esp) 328 1.1 christos movl %edx,552(%esp) 329 1.1 christos movl %ebp,556(%esp) 330 1.1 christos addl $128,%ebx 331 1.1 christos leal 144(%esp),%edi 332 1.1 christos leal 400(%esp),%ebp 333 1.1 christos movl -120(%ebx),%edx 334 1.1 christos movq -120(%ebx),%mm0 335 1.1 christos movq -128(%ebx),%mm3 336 1.1 christos shll $4,%edx 337 1.1 christos movb %dl,(%esp) 338 1.1 christos movl -104(%ebx),%edx 339 1.1 christos movq -104(%ebx),%mm2 340 1.1 christos movq -112(%ebx),%mm5 341 1.1 christos movq %mm0,-128(%edi) 342 1.1 christos psrlq $4,%mm0 343 1.1 christos movq %mm3,(%edi) 344 1.1 christos movq %mm3,%mm7 345 1.1 christos psrlq $4,%mm3 346 1.1 christos shll $4,%edx 347 1.1 christos movb %dl,1(%esp) 348 1.1 christos movl -88(%ebx),%edx 349 1.1 christos movq -88(%ebx),%mm1 350 1.1 christos psllq $60,%mm7 351 1.1 christos movq -96(%ebx),%mm4 352 1.1 christos por %mm7,%mm0 353 1.1 christos movq %mm2,-120(%edi) 354 1.1 christos psrlq $4,%mm2 355 1.1 christos movq %mm5,8(%edi) 356 1.1 christos movq %mm5,%mm6 357 1.1 christos movq %mm0,-128(%ebp) 358 1.1 christos psrlq $4,%mm5 359 1.1 christos movq %mm3,(%ebp) 360 1.1 christos shll $4,%edx 361 1.1 christos movb %dl,2(%esp) 362 1.1 christos movl -72(%ebx),%edx 363 1.1 christos movq -72(%ebx),%mm0 364 1.1 christos psllq $60,%mm6 365 1.1 christos movq -80(%ebx),%mm3 366 1.1 christos por %mm6,%mm2 367 1.1 christos movq %mm1,-112(%edi) 368 1.1 christos psrlq $4,%mm1 369 1.1 christos movq %mm4,16(%edi) 370 1.1 christos movq %mm4,%mm7 371 1.1 christos movq %mm2,-120(%ebp) 372 1.1 christos psrlq $4,%mm4 373 1.1 christos movq %mm5,8(%ebp) 374 1.1 christos shll $4,%edx 375 1.1 christos movb %dl,3(%esp) 376 1.1 christos movl -56(%ebx),%edx 377 1.1 christos movq -56(%ebx),%mm2 378 1.1 christos psllq $60,%mm7 379 1.1 christos movq -64(%ebx),%mm5 380 1.1 christos por %mm7,%mm1 381 1.1 christos movq %mm0,-104(%edi) 382 1.1 christos psrlq $4,%mm0 383 1.1 christos movq %mm3,24(%edi) 384 1.1 christos movq %mm3,%mm6 385 1.1 christos movq %mm1,-112(%ebp) 386 1.1 christos psrlq $4,%mm3 387 1.1 christos movq %mm4,16(%ebp) 388 1.1 christos shll $4,%edx 389 1.1 christos movb %dl,4(%esp) 390 1.1 christos movl -40(%ebx),%edx 391 1.1 christos movq -40(%ebx),%mm1 392 1.1 christos psllq $60,%mm6 393 1.1 christos movq -48(%ebx),%mm4 394 1.1 christos por %mm6,%mm0 395 1.1 christos movq %mm2,-96(%edi) 396 1.1 christos psrlq $4,%mm2 397 1.1 christos movq %mm5,32(%edi) 398 1.1 christos movq %mm5,%mm7 399 1.1 christos movq %mm0,-104(%ebp) 400 1.1 christos psrlq $4,%mm5 401 1.1 christos movq %mm3,24(%ebp) 402 1.1 christos shll $4,%edx 403 1.1 christos movb %dl,5(%esp) 404 1.1 christos movl -24(%ebx),%edx 405 1.1 christos movq -24(%ebx),%mm0 406 1.1 christos psllq $60,%mm7 407 1.1 christos movq -32(%ebx),%mm3 408 1.1 christos por %mm7,%mm2 409 1.1 christos movq %mm1,-88(%edi) 410 1.1 christos psrlq $4,%mm1 411 1.1 christos movq %mm4,40(%edi) 412 1.1 christos movq %mm4,%mm6 413 1.1 christos movq %mm2,-96(%ebp) 414 1.1 christos psrlq $4,%mm4 415 1.1 christos movq %mm5,32(%ebp) 416 1.1 christos shll $4,%edx 417 1.1 christos movb %dl,6(%esp) 418 1.1 christos movl -8(%ebx),%edx 419 1.1 christos movq -8(%ebx),%mm2 420 1.1 christos psllq $60,%mm6 421 1.1 christos movq -16(%ebx),%mm5 422 1.1 christos por %mm6,%mm1 423 1.1 christos movq %mm0,-80(%edi) 424 1.1 christos psrlq $4,%mm0 425 1.1 christos movq %mm3,48(%edi) 426 1.1 christos movq %mm3,%mm7 427 1.1 christos movq %mm1,-88(%ebp) 428 1.1 christos psrlq $4,%mm3 429 1.1 christos movq %mm4,40(%ebp) 430 1.1 christos shll $4,%edx 431 1.1 christos movb %dl,7(%esp) 432 1.1 christos movl 8(%ebx),%edx 433 1.1 christos movq 8(%ebx),%mm1 434 1.1 christos psllq $60,%mm7 435 1.1 christos movq (%ebx),%mm4 436 1.1 christos por %mm7,%mm0 437 1.1 christos movq %mm2,-72(%edi) 438 1.1 christos psrlq $4,%mm2 439 1.1 christos movq %mm5,56(%edi) 440 1.1 christos movq %mm5,%mm6 441 1.1 christos movq %mm0,-80(%ebp) 442 1.1 christos psrlq $4,%mm5 443 1.1 christos movq %mm3,48(%ebp) 444 1.1 christos shll $4,%edx 445 1.1 christos movb %dl,8(%esp) 446 1.1 christos movl 24(%ebx),%edx 447 1.1 christos movq 24(%ebx),%mm0 448 1.1 christos psllq $60,%mm6 449 1.1 christos movq 16(%ebx),%mm3 450 1.1 christos por %mm6,%mm2 451 1.1 christos movq %mm1,-64(%edi) 452 1.1 christos psrlq $4,%mm1 453 1.1 christos movq %mm4,64(%edi) 454 1.1 christos movq %mm4,%mm7 455 1.1 christos movq %mm2,-72(%ebp) 456 1.1 christos psrlq $4,%mm4 457 1.1 christos movq %mm5,56(%ebp) 458 1.1 christos shll $4,%edx 459 1.1 christos movb %dl,9(%esp) 460 1.1 christos movl 40(%ebx),%edx 461 1.1 christos movq 40(%ebx),%mm2 462 1.1 christos psllq $60,%mm7 463 1.1 christos movq 32(%ebx),%mm5 464 1.1 christos por %mm7,%mm1 465 1.1 christos movq %mm0,-56(%edi) 466 1.1 christos psrlq $4,%mm0 467 1.1 christos movq %mm3,72(%edi) 468 1.1 christos movq %mm3,%mm6 469 1.1 christos movq %mm1,-64(%ebp) 470 1.1 christos psrlq $4,%mm3 471 1.1 christos movq %mm4,64(%ebp) 472 1.1 christos shll $4,%edx 473 1.1 christos movb %dl,10(%esp) 474 1.1 christos movl 56(%ebx),%edx 475 1.1 christos movq 56(%ebx),%mm1 476 1.1 christos psllq $60,%mm6 477 1.1 christos movq 48(%ebx),%mm4 478 1.1 christos por %mm6,%mm0 479 1.1 christos movq %mm2,-48(%edi) 480 1.1 christos psrlq $4,%mm2 481 1.1 christos movq %mm5,80(%edi) 482 1.1 christos movq %mm5,%mm7 483 1.1 christos movq %mm0,-56(%ebp) 484 1.1 christos psrlq $4,%mm5 485 1.1 christos movq %mm3,72(%ebp) 486 1.1 christos shll $4,%edx 487 1.1 christos movb %dl,11(%esp) 488 1.1 christos movl 72(%ebx),%edx 489 1.1 christos movq 72(%ebx),%mm0 490 1.1 christos psllq $60,%mm7 491 1.1 christos movq 64(%ebx),%mm3 492 1.1 christos por %mm7,%mm2 493 1.1 christos movq %mm1,-40(%edi) 494 1.1 christos psrlq $4,%mm1 495 1.1 christos movq %mm4,88(%edi) 496 1.1 christos movq %mm4,%mm6 497 1.1 christos movq %mm2,-48(%ebp) 498 1.1 christos psrlq $4,%mm4 499 1.1 christos movq %mm5,80(%ebp) 500 1.1 christos shll $4,%edx 501 1.1 christos movb %dl,12(%esp) 502 1.1 christos movl 88(%ebx),%edx 503 1.1 christos movq 88(%ebx),%mm2 504 1.1 christos psllq $60,%mm6 505 1.1 christos movq 80(%ebx),%mm5 506 1.1 christos por %mm6,%mm1 507 1.1 christos movq %mm0,-32(%edi) 508 1.1 christos psrlq $4,%mm0 509 1.1 christos movq %mm3,96(%edi) 510 1.1 christos movq %mm3,%mm7 511 1.1 christos movq %mm1,-40(%ebp) 512 1.1 christos psrlq $4,%mm3 513 1.1 christos movq %mm4,88(%ebp) 514 1.1 christos shll $4,%edx 515 1.1 christos movb %dl,13(%esp) 516 1.1 christos movl 104(%ebx),%edx 517 1.1 christos movq 104(%ebx),%mm1 518 1.1 christos psllq $60,%mm7 519 1.1 christos movq 96(%ebx),%mm4 520 1.1 christos por %mm7,%mm0 521 1.1 christos movq %mm2,-24(%edi) 522 1.1 christos psrlq $4,%mm2 523 1.1 christos movq %mm5,104(%edi) 524 1.1 christos movq %mm5,%mm6 525 1.1 christos movq %mm0,-32(%ebp) 526 1.1 christos psrlq $4,%mm5 527 1.1 christos movq %mm3,96(%ebp) 528 1.1 christos shll $4,%edx 529 1.1 christos movb %dl,14(%esp) 530 1.1 christos movl 120(%ebx),%edx 531 1.1 christos movq 120(%ebx),%mm0 532 1.1 christos psllq $60,%mm6 533 1.1 christos movq 112(%ebx),%mm3 534 1.1 christos por %mm6,%mm2 535 1.1 christos movq %mm1,-16(%edi) 536 1.1 christos psrlq $4,%mm1 537 1.1 christos movq %mm4,112(%edi) 538 1.1 christos movq %mm4,%mm7 539 1.1 christos movq %mm2,-24(%ebp) 540 1.1 christos psrlq $4,%mm4 541 1.1 christos movq %mm5,104(%ebp) 542 1.1 christos shll $4,%edx 543 1.1 christos movb %dl,15(%esp) 544 1.1 christos psllq $60,%mm7 545 1.1 christos por %mm7,%mm1 546 1.1 christos movq %mm0,-8(%edi) 547 1.1 christos psrlq $4,%mm0 548 1.1 christos movq %mm3,120(%edi) 549 1.1 christos movq %mm3,%mm6 550 1.1 christos movq %mm1,-16(%ebp) 551 1.1 christos psrlq $4,%mm3 552 1.1 christos movq %mm4,112(%ebp) 553 1.1 christos psllq $60,%mm6 554 1.1 christos por %mm6,%mm0 555 1.1 christos movq %mm0,-8(%ebp) 556 1.1 christos movq %mm3,120(%ebp) 557 1.1 christos movq (%eax),%mm6 558 1.1 christos movl 8(%eax),%ebx 559 1.1 christos movl 12(%eax),%edx 560 1.1 christos .align 16 561 1.1 christos .L009outer: 562 1.1 christos xorl 12(%ecx),%edx 563 1.1 christos xorl 8(%ecx),%ebx 564 1.1 christos pxor (%ecx),%mm6 565 1.1 christos leal 16(%ecx),%ecx 566 1.1 christos movl %ebx,536(%esp) 567 1.1 christos movq %mm6,528(%esp) 568 1.1 christos movl %ecx,548(%esp) 569 1.1 christos xorl %eax,%eax 570 1.1 christos roll $8,%edx 571 1.1 christos movb %dl,%al 572 1.1 christos movl %eax,%ebp 573 1.1 christos andb $15,%al 574 1.1 christos shrl $4,%ebp 575 1.1 christos pxor %mm0,%mm0 576 1.1 christos roll $8,%edx 577 1.1 christos pxor %mm1,%mm1 578 1.1 christos pxor %mm2,%mm2 579 1.1 christos movq 16(%esp,%eax,8),%mm7 580 1.1 christos movq 144(%esp,%eax,8),%mm6 581 1.1 christos movb %dl,%al 582 1.1 christos movd %mm7,%ebx 583 1.1 christos psrlq $8,%mm7 584 1.1 christos movq %mm6,%mm3 585 1.1 christos movl %eax,%edi 586 1.1 christos psrlq $8,%mm6 587 1.1 christos pxor 272(%esp,%ebp,8),%mm7 588 1.1 christos andb $15,%al 589 1.1 christos psllq $56,%mm3 590 1.1 christos shrl $4,%edi 591 1.1 christos pxor 16(%esp,%eax,8),%mm7 592 1.1 christos roll $8,%edx 593 1.1 christos pxor 144(%esp,%eax,8),%mm6 594 1.1 christos pxor %mm3,%mm7 595 1.1 christos pxor 400(%esp,%ebp,8),%mm6 596 1.1 christos xorb (%esp,%ebp,1),%bl 597 1.1 christos movb %dl,%al 598 1.1 christos movd %mm7,%ecx 599 1.1 christos movzbl %bl,%ebx 600 1.1 christos psrlq $8,%mm7 601 1.1 christos movq %mm6,%mm3 602 1.1 christos movl %eax,%ebp 603 1.1 christos psrlq $8,%mm6 604 1.1 christos pxor 272(%esp,%edi,8),%mm7 605 1.1 christos andb $15,%al 606 1.1 christos psllq $56,%mm3 607 1.1 christos shrl $4,%ebp 608 1.1 christos pinsrw $2,(%esi,%ebx,2),%mm2 609 1.1 christos pxor 16(%esp,%eax,8),%mm7 610 1.1 christos roll $8,%edx 611 1.1 christos pxor 144(%esp,%eax,8),%mm6 612 1.1 christos pxor %mm3,%mm7 613 1.1 christos pxor 400(%esp,%edi,8),%mm6 614 1.1 christos xorb (%esp,%edi,1),%cl 615 1.1 christos movb %dl,%al 616 1.1 christos movl 536(%esp),%edx 617 1.1 christos movd %mm7,%ebx 618 1.1 christos movzbl %cl,%ecx 619 1.1 christos psrlq $8,%mm7 620 1.1 christos movq %mm6,%mm3 621 1.1 christos movl %eax,%edi 622 1.1 christos psrlq $8,%mm6 623 1.1 christos pxor 272(%esp,%ebp,8),%mm7 624 1.1 christos andb $15,%al 625 1.1 christos psllq $56,%mm3 626 1.1 christos pxor %mm2,%mm6 627 1.1 christos shrl $4,%edi 628 1.1 christos pinsrw $2,(%esi,%ecx,2),%mm1 629 1.1 christos pxor 16(%esp,%eax,8),%mm7 630 1.1 christos roll $8,%edx 631 1.1 christos pxor 144(%esp,%eax,8),%mm6 632 1.1 christos pxor %mm3,%mm7 633 1.1 christos pxor 400(%esp,%ebp,8),%mm6 634 1.1 christos xorb (%esp,%ebp,1),%bl 635 1.1 christos movb %dl,%al 636 1.1 christos movd %mm7,%ecx 637 1.1 christos movzbl %bl,%ebx 638 1.1 christos psrlq $8,%mm7 639 1.1 christos movq %mm6,%mm3 640 1.1 christos movl %eax,%ebp 641 1.1 christos psrlq $8,%mm6 642 1.1 christos pxor 272(%esp,%edi,8),%mm7 643 1.1 christos andb $15,%al 644 1.1 christos psllq $56,%mm3 645 1.1 christos pxor %mm1,%mm6 646 1.1 christos shrl $4,%ebp 647 1.1 christos pinsrw $2,(%esi,%ebx,2),%mm0 648 1.1 christos pxor 16(%esp,%eax,8),%mm7 649 1.1 christos roll $8,%edx 650 1.1 christos pxor 144(%esp,%eax,8),%mm6 651 1.1 christos pxor %mm3,%mm7 652 1.1 christos pxor 400(%esp,%edi,8),%mm6 653 1.1 christos xorb (%esp,%edi,1),%cl 654 1.1 christos movb %dl,%al 655 1.1 christos movd %mm7,%ebx 656 1.1 christos movzbl %cl,%ecx 657 1.1 christos psrlq $8,%mm7 658 1.1 christos movq %mm6,%mm3 659 1.1 christos movl %eax,%edi 660 1.1 christos psrlq $8,%mm6 661 1.1 christos pxor 272(%esp,%ebp,8),%mm7 662 1.1 christos andb $15,%al 663 1.1 christos psllq $56,%mm3 664 1.1 christos pxor %mm0,%mm6 665 1.1 christos shrl $4,%edi 666 1.1 christos pinsrw $2,(%esi,%ecx,2),%mm2 667 1.1 christos pxor 16(%esp,%eax,8),%mm7 668 1.1 christos roll $8,%edx 669 1.1 christos pxor 144(%esp,%eax,8),%mm6 670 1.1 christos pxor %mm3,%mm7 671 1.1 christos pxor 400(%esp,%ebp,8),%mm6 672 1.1 christos xorb (%esp,%ebp,1),%bl 673 1.1 christos movb %dl,%al 674 1.1 christos movd %mm7,%ecx 675 1.1 christos movzbl %bl,%ebx 676 1.1 christos psrlq $8,%mm7 677 1.1 christos movq %mm6,%mm3 678 1.1 christos movl %eax,%ebp 679 1.1 christos psrlq $8,%mm6 680 1.1 christos pxor 272(%esp,%edi,8),%mm7 681 1.1 christos andb $15,%al 682 1.1 christos psllq $56,%mm3 683 1.1 christos pxor %mm2,%mm6 684 1.1 christos shrl $4,%ebp 685 1.1 christos pinsrw $2,(%esi,%ebx,2),%mm1 686 1.1 christos pxor 16(%esp,%eax,8),%mm7 687 1.1 christos roll $8,%edx 688 1.1 christos pxor 144(%esp,%eax,8),%mm6 689 1.1 christos pxor %mm3,%mm7 690 1.1 christos pxor 400(%esp,%edi,8),%mm6 691 1.1 christos xorb (%esp,%edi,1),%cl 692 1.1 christos movb %dl,%al 693 1.1 christos movl 532(%esp),%edx 694 1.1 christos movd %mm7,%ebx 695 1.1 christos movzbl %cl,%ecx 696 1.1 christos psrlq $8,%mm7 697 1.1 christos movq %mm6,%mm3 698 1.1 christos movl %eax,%edi 699 1.1 christos psrlq $8,%mm6 700 1.1 christos pxor 272(%esp,%ebp,8),%mm7 701 1.1 christos andb $15,%al 702 1.1 christos psllq $56,%mm3 703 1.1 christos pxor %mm1,%mm6 704 1.1 christos shrl $4,%edi 705 1.1 christos pinsrw $2,(%esi,%ecx,2),%mm0 706 1.1 christos pxor 16(%esp,%eax,8),%mm7 707 1.1 christos roll $8,%edx 708 1.1 christos pxor 144(%esp,%eax,8),%mm6 709 1.1 christos pxor %mm3,%mm7 710 1.1 christos pxor 400(%esp,%ebp,8),%mm6 711 1.1 christos xorb (%esp,%ebp,1),%bl 712 1.1 christos movb %dl,%al 713 1.1 christos movd %mm7,%ecx 714 1.1 christos movzbl %bl,%ebx 715 1.1 christos psrlq $8,%mm7 716 1.1 christos movq %mm6,%mm3 717 1.1 christos movl %eax,%ebp 718 1.1 christos psrlq $8,%mm6 719 1.1 christos pxor 272(%esp,%edi,8),%mm7 720 1.1 christos andb $15,%al 721 1.1 christos psllq $56,%mm3 722 1.1 christos pxor %mm0,%mm6 723 1.1 christos shrl $4,%ebp 724 1.1 christos pinsrw $2,(%esi,%ebx,2),%mm2 725 1.1 christos pxor 16(%esp,%eax,8),%mm7 726 1.1 christos roll $8,%edx 727 1.1 christos pxor 144(%esp,%eax,8),%mm6 728 1.1 christos pxor %mm3,%mm7 729 1.1 christos pxor 400(%esp,%edi,8),%mm6 730 1.1 christos xorb (%esp,%edi,1),%cl 731 1.1 christos movb %dl,%al 732 1.1 christos movd %mm7,%ebx 733 1.1 christos movzbl %cl,%ecx 734 1.1 christos psrlq $8,%mm7 735 1.1 christos movq %mm6,%mm3 736 1.1 christos movl %eax,%edi 737 1.1 christos psrlq $8,%mm6 738 1.1 christos pxor 272(%esp,%ebp,8),%mm7 739 1.1 christos andb $15,%al 740 1.1 christos psllq $56,%mm3 741 1.1 christos pxor %mm2,%mm6 742 1.1 christos shrl $4,%edi 743 1.1 christos pinsrw $2,(%esi,%ecx,2),%mm1 744 1.1 christos pxor 16(%esp,%eax,8),%mm7 745 1.1 christos roll $8,%edx 746 1.1 christos pxor 144(%esp,%eax,8),%mm6 747 1.1 christos pxor %mm3,%mm7 748 1.1 christos pxor 400(%esp,%ebp,8),%mm6 749 1.1 christos xorb (%esp,%ebp,1),%bl 750 1.1 christos movb %dl,%al 751 1.1 christos movd %mm7,%ecx 752 1.1 christos movzbl %bl,%ebx 753 1.1 christos psrlq $8,%mm7 754 1.1 christos movq %mm6,%mm3 755 1.1 christos movl %eax,%ebp 756 1.1 christos psrlq $8,%mm6 757 1.1 christos pxor 272(%esp,%edi,8),%mm7 758 1.1 christos andb $15,%al 759 1.1 christos psllq $56,%mm3 760 1.1 christos pxor %mm1,%mm6 761 1.1 christos shrl $4,%ebp 762 1.1 christos pinsrw $2,(%esi,%ebx,2),%mm0 763 1.1 christos pxor 16(%esp,%eax,8),%mm7 764 1.1 christos roll $8,%edx 765 1.1 christos pxor 144(%esp,%eax,8),%mm6 766 1.1 christos pxor %mm3,%mm7 767 1.1 christos pxor 400(%esp,%edi,8),%mm6 768 1.1 christos xorb (%esp,%edi,1),%cl 769 1.1 christos movb %dl,%al 770 1.1 christos movl 528(%esp),%edx 771 1.1 christos movd %mm7,%ebx 772 1.1 christos movzbl %cl,%ecx 773 1.1 christos psrlq $8,%mm7 774 1.1 christos movq %mm6,%mm3 775 1.1 christos movl %eax,%edi 776 1.1 christos psrlq $8,%mm6 777 1.1 christos pxor 272(%esp,%ebp,8),%mm7 778 1.1 christos andb $15,%al 779 1.1 christos psllq $56,%mm3 780 1.1 christos pxor %mm0,%mm6 781 1.1 christos shrl $4,%edi 782 1.1 christos pinsrw $2,(%esi,%ecx,2),%mm2 783 1.1 christos pxor 16(%esp,%eax,8),%mm7 784 1.1 christos roll $8,%edx 785 1.1 christos pxor 144(%esp,%eax,8),%mm6 786 1.1 christos pxor %mm3,%mm7 787 1.1 christos pxor 400(%esp,%ebp,8),%mm6 788 1.1 christos xorb (%esp,%ebp,1),%bl 789 1.1 christos movb %dl,%al 790 1.1 christos movd %mm7,%ecx 791 1.1 christos movzbl %bl,%ebx 792 1.1 christos psrlq $8,%mm7 793 1.1 christos movq %mm6,%mm3 794 1.1 christos movl %eax,%ebp 795 1.1 christos psrlq $8,%mm6 796 1.1 christos pxor 272(%esp,%edi,8),%mm7 797 1.1 christos andb $15,%al 798 1.1 christos psllq $56,%mm3 799 1.1 christos pxor %mm2,%mm6 800 1.1 christos shrl $4,%ebp 801 1.1 christos pinsrw $2,(%esi,%ebx,2),%mm1 802 1.1 christos pxor 16(%esp,%eax,8),%mm7 803 1.1 christos roll $8,%edx 804 1.1 christos pxor 144(%esp,%eax,8),%mm6 805 1.1 christos pxor %mm3,%mm7 806 1.1 christos pxor 400(%esp,%edi,8),%mm6 807 1.1 christos xorb (%esp,%edi,1),%cl 808 1.1 christos movb %dl,%al 809 1.1 christos movd %mm7,%ebx 810 1.1 christos movzbl %cl,%ecx 811 1.1 christos psrlq $8,%mm7 812 1.1 christos movq %mm6,%mm3 813 1.1 christos movl %eax,%edi 814 1.1 christos psrlq $8,%mm6 815 1.1 christos pxor 272(%esp,%ebp,8),%mm7 816 1.1 christos andb $15,%al 817 1.1 christos psllq $56,%mm3 818 1.1 christos pxor %mm1,%mm6 819 1.1 christos shrl $4,%edi 820 1.1 christos pinsrw $2,(%esi,%ecx,2),%mm0 821 1.1 christos pxor 16(%esp,%eax,8),%mm7 822 1.1 christos roll $8,%edx 823 1.1 christos pxor 144(%esp,%eax,8),%mm6 824 1.1 christos pxor %mm3,%mm7 825 1.1 christos pxor 400(%esp,%ebp,8),%mm6 826 1.1 christos xorb (%esp,%ebp,1),%bl 827 1.1 christos movb %dl,%al 828 1.1 christos movd %mm7,%ecx 829 1.1 christos movzbl %bl,%ebx 830 1.1 christos psrlq $8,%mm7 831 1.1 christos movq %mm6,%mm3 832 1.1 christos movl %eax,%ebp 833 1.1 christos psrlq $8,%mm6 834 1.1 christos pxor 272(%esp,%edi,8),%mm7 835 1.1 christos andb $15,%al 836 1.1 christos psllq $56,%mm3 837 1.1 christos pxor %mm0,%mm6 838 1.1 christos shrl $4,%ebp 839 1.1 christos pinsrw $2,(%esi,%ebx,2),%mm2 840 1.1 christos pxor 16(%esp,%eax,8),%mm7 841 1.1 christos roll $8,%edx 842 1.1 christos pxor 144(%esp,%eax,8),%mm6 843 1.1 christos pxor %mm3,%mm7 844 1.1 christos pxor 400(%esp,%edi,8),%mm6 845 1.1 christos xorb (%esp,%edi,1),%cl 846 1.1 christos movb %dl,%al 847 1.1 christos movl 524(%esp),%edx 848 1.1 christos movd %mm7,%ebx 849 1.1 christos movzbl %cl,%ecx 850 1.1 christos psrlq $8,%mm7 851 1.1 christos movq %mm6,%mm3 852 1.1 christos movl %eax,%edi 853 1.1 christos psrlq $8,%mm6 854 1.1 christos pxor 272(%esp,%ebp,8),%mm7 855 1.1 christos andb $15,%al 856 1.1 christos psllq $56,%mm3 857 1.1 christos pxor %mm2,%mm6 858 1.1 christos shrl $4,%edi 859 1.1 christos pinsrw $2,(%esi,%ecx,2),%mm1 860 1.1 christos pxor 16(%esp,%eax,8),%mm7 861 1.1 christos pxor 144(%esp,%eax,8),%mm6 862 1.1 christos xorb (%esp,%ebp,1),%bl 863 1.1 christos pxor %mm3,%mm7 864 1.1 christos pxor 400(%esp,%ebp,8),%mm6 865 1.1 christos movzbl %bl,%ebx 866 1.1 christos pxor %mm2,%mm2 867 1.1 christos psllq $4,%mm1 868 1.1 christos movd %mm7,%ecx 869 1.1 christos psrlq $4,%mm7 870 1.1 christos movq %mm6,%mm3 871 1.1 christos psrlq $4,%mm6 872 1.1 christos shll $4,%ecx 873 1.1 christos pxor 16(%esp,%edi,8),%mm7 874 1.1 christos psllq $60,%mm3 875 1.1 christos movzbl %cl,%ecx 876 1.1 christos pxor %mm3,%mm7 877 1.1 christos pxor 144(%esp,%edi,8),%mm6 878 1.1 christos pinsrw $2,(%esi,%ebx,2),%mm0 879 1.1 christos pxor %mm1,%mm6 880 1.1 christos movd %mm7,%edx 881 1.1 christos pinsrw $3,(%esi,%ecx,2),%mm2 882 1.1 christos psllq $12,%mm0 883 1.1 christos pxor %mm0,%mm6 884 1.1 christos psrlq $32,%mm7 885 1.1 christos pxor %mm2,%mm6 886 1.1 christos movl 548(%esp),%ecx 887 1.1 christos movd %mm7,%ebx 888 1.1 christos movq %mm6,%mm3 889 1.1 christos psllw $8,%mm6 890 1.1 christos psrlw $8,%mm3 891 1.1 christos por %mm3,%mm6 892 1.1 christos bswap %edx 893 1.1 christos pshufw $27,%mm6,%mm6 894 1.1 christos bswap %ebx 895 1.1 christos cmpl 552(%esp),%ecx 896 1.1 christos jne .L009outer 897 1.1 christos movl 544(%esp),%eax 898 1.1 christos movl %edx,12(%eax) 899 1.1 christos movl %ebx,8(%eax) 900 1.1 christos movq %mm6,(%eax) 901 1.1 christos movl 556(%esp),%esp 902 1.1 christos emms 903 1.1 christos popl %edi 904 1.1 christos popl %esi 905 1.1 christos popl %ebx 906 1.1 christos popl %ebp 907 1.1 christos ret 908 1.1 christos .size gcm_ghash_4bit_mmx,.-.L_gcm_ghash_4bit_mmx_begin 909 1.1 christos .globl gcm_init_clmul 910 1.1 christos .type gcm_init_clmul,@function 911 1.1 christos .align 16 912 1.1 christos gcm_init_clmul: 913 1.1 christos .L_gcm_init_clmul_begin: 914 1.1 christos movl 4(%esp),%edx 915 1.1 christos movl 8(%esp),%eax 916 1.1 christos call .L010pic 917 1.1 christos .L010pic: 918 1.1 christos popl %ecx 919 1.1 christos leal .Lbswap-.L010pic(%ecx),%ecx 920 1.1 christos movdqu (%eax),%xmm2 921 1.1 christos pshufd $78,%xmm2,%xmm2 922 1.1 christos pshufd $255,%xmm2,%xmm4 923 1.1 christos movdqa %xmm2,%xmm3 924 1.1 christos psllq $1,%xmm2 925 1.1 christos pxor %xmm5,%xmm5 926 1.1 christos psrlq $63,%xmm3 927 1.1 christos pcmpgtd %xmm4,%xmm5 928 1.1 christos pslldq $8,%xmm3 929 1.1 christos por %xmm3,%xmm2 930 1.1 christos pand 16(%ecx),%xmm5 931 1.1 christos pxor %xmm5,%xmm2 932 1.1 christos movdqa %xmm2,%xmm0 933 1.1 christos movdqa %xmm0,%xmm1 934 1.1 christos pshufd $78,%xmm0,%xmm3 935 1.1 christos pshufd $78,%xmm2,%xmm4 936 1.1 christos pxor %xmm0,%xmm3 937 1.1 christos pxor %xmm2,%xmm4 938 1.1 christos .byte 102,15,58,68,194,0 939 1.1 christos .byte 102,15,58,68,202,17 940 1.1 christos .byte 102,15,58,68,220,0 941 1.1 christos xorps %xmm0,%xmm3 942 1.1 christos xorps %xmm1,%xmm3 943 1.1 christos movdqa %xmm3,%xmm4 944 1.1 christos psrldq $8,%xmm3 945 1.1 christos pslldq $8,%xmm4 946 1.1 christos pxor %xmm3,%xmm1 947 1.1 christos pxor %xmm4,%xmm0 948 1.1 christos movdqa %xmm0,%xmm4 949 1.1 christos movdqa %xmm0,%xmm3 950 1.1 christos psllq $5,%xmm0 951 1.1 christos pxor %xmm0,%xmm3 952 1.1 christos psllq $1,%xmm0 953 1.1 christos pxor %xmm3,%xmm0 954 1.1 christos psllq $57,%xmm0 955 1.1 christos movdqa %xmm0,%xmm3 956 1.1 christos pslldq $8,%xmm0 957 1.1 christos psrldq $8,%xmm3 958 1.1 christos pxor %xmm4,%xmm0 959 1.1 christos pxor %xmm3,%xmm1 960 1.1 christos movdqa %xmm0,%xmm4 961 1.1 christos psrlq $1,%xmm0 962 1.1 christos pxor %xmm4,%xmm1 963 1.1 christos pxor %xmm0,%xmm4 964 1.1 christos psrlq $5,%xmm0 965 1.1 christos pxor %xmm4,%xmm0 966 1.1 christos psrlq $1,%xmm0 967 1.1 christos pxor %xmm1,%xmm0 968 1.1 christos pshufd $78,%xmm2,%xmm3 969 1.1 christos pshufd $78,%xmm0,%xmm4 970 1.1 christos pxor %xmm2,%xmm3 971 1.1 christos movdqu %xmm2,(%edx) 972 1.1 christos pxor %xmm0,%xmm4 973 1.1 christos movdqu %xmm0,16(%edx) 974 1.1 christos .byte 102,15,58,15,227,8 975 1.1 christos movdqu %xmm4,32(%edx) 976 1.1 christos ret 977 1.1 christos .size gcm_init_clmul,.-.L_gcm_init_clmul_begin 978 1.1 christos .globl gcm_gmult_clmul 979 1.1 christos .type gcm_gmult_clmul,@function 980 1.1 christos .align 16 981 1.1 christos gcm_gmult_clmul: 982 1.1 christos .L_gcm_gmult_clmul_begin: 983 1.1 christos movl 4(%esp),%eax 984 1.1 christos movl 8(%esp),%edx 985 1.1 christos call .L011pic 986 1.1 christos .L011pic: 987 1.1 christos popl %ecx 988 1.1 christos leal .Lbswap-.L011pic(%ecx),%ecx 989 1.1 christos movdqu (%eax),%xmm0 990 1.1 christos movdqa (%ecx),%xmm5 991 1.1 christos movups (%edx),%xmm2 992 1.1 christos .byte 102,15,56,0,197 993 1.1 christos movups 32(%edx),%xmm4 994 1.1 christos movdqa %xmm0,%xmm1 995 1.1 christos pshufd $78,%xmm0,%xmm3 996 1.1 christos pxor %xmm0,%xmm3 997 1.1 christos .byte 102,15,58,68,194,0 998 1.1 christos .byte 102,15,58,68,202,17 999 1.1 christos .byte 102,15,58,68,220,0 1000 1.1 christos xorps %xmm0,%xmm3 1001 1.1 christos xorps %xmm1,%xmm3 1002 1.1 christos movdqa %xmm3,%xmm4 1003 1.1 christos psrldq $8,%xmm3 1004 1.1 christos pslldq $8,%xmm4 1005 1.1 christos pxor %xmm3,%xmm1 1006 1.1 christos pxor %xmm4,%xmm0 1007 1.1 christos movdqa %xmm0,%xmm4 1008 1.1 christos movdqa %xmm0,%xmm3 1009 1.1 christos psllq $5,%xmm0 1010 1.1 christos pxor %xmm0,%xmm3 1011 1.1 christos psllq $1,%xmm0 1012 1.1 christos pxor %xmm3,%xmm0 1013 1.1 christos psllq $57,%xmm0 1014 1.1 christos movdqa %xmm0,%xmm3 1015 1.1 christos pslldq $8,%xmm0 1016 1.1 christos psrldq $8,%xmm3 1017 1.1 christos pxor %xmm4,%xmm0 1018 1.1 christos pxor %xmm3,%xmm1 1019 1.1 christos movdqa %xmm0,%xmm4 1020 1.1 christos psrlq $1,%xmm0 1021 1.1 christos pxor %xmm4,%xmm1 1022 1.1 christos pxor %xmm0,%xmm4 1023 1.1 christos psrlq $5,%xmm0 1024 1.1 christos pxor %xmm4,%xmm0 1025 1.1 christos psrlq $1,%xmm0 1026 1.1 christos pxor %xmm1,%xmm0 1027 1.1 christos .byte 102,15,56,0,197 1028 1.1 christos movdqu %xmm0,(%eax) 1029 1.1 christos ret 1030 1.1 christos .size gcm_gmult_clmul,.-.L_gcm_gmult_clmul_begin 1031 1.1 christos .globl gcm_ghash_clmul 1032 1.1 christos .type gcm_ghash_clmul,@function 1033 1.1 christos .align 16 1034 1.1 christos gcm_ghash_clmul: 1035 1.1 christos .L_gcm_ghash_clmul_begin: 1036 1.1 christos pushl %ebp 1037 1.1 christos pushl %ebx 1038 1.1 christos pushl %esi 1039 1.1 christos pushl %edi 1040 1.1 christos movl 20(%esp),%eax 1041 1.1 christos movl 24(%esp),%edx 1042 1.1 christos movl 28(%esp),%esi 1043 1.1 christos movl 32(%esp),%ebx 1044 1.1 christos call .L012pic 1045 1.1 christos .L012pic: 1046 1.1 christos popl %ecx 1047 1.1 christos leal .Lbswap-.L012pic(%ecx),%ecx 1048 1.1 christos movdqu (%eax),%xmm0 1049 1.1 christos movdqa (%ecx),%xmm5 1050 1.1 christos movdqu (%edx),%xmm2 1051 1.1 christos .byte 102,15,56,0,197 1052 1.1 christos subl $16,%ebx 1053 1.1 christos jz .L013odd_tail 1054 1.1 christos movdqu (%esi),%xmm3 1055 1.1 christos movdqu 16(%esi),%xmm6 1056 1.1 christos .byte 102,15,56,0,221 1057 1.1 christos .byte 102,15,56,0,245 1058 1.1 christos movdqu 32(%edx),%xmm5 1059 1.1 christos pxor %xmm3,%xmm0 1060 1.1 christos pshufd $78,%xmm6,%xmm3 1061 1.1 christos movdqa %xmm6,%xmm7 1062 1.1 christos pxor %xmm6,%xmm3 1063 1.1 christos leal 32(%esi),%esi 1064 1.1 christos .byte 102,15,58,68,242,0 1065 1.1 christos .byte 102,15,58,68,250,17 1066 1.1 christos .byte 102,15,58,68,221,0 1067 1.1 christos movups 16(%edx),%xmm2 1068 1.1 christos nop 1069 1.1 christos subl $32,%ebx 1070 1.1 christos jbe .L014even_tail 1071 1.1 christos jmp .L015mod_loop 1072 1.1 christos .align 32 1073 1.1 christos .L015mod_loop: 1074 1.1 christos pshufd $78,%xmm0,%xmm4 1075 1.1 christos movdqa %xmm0,%xmm1 1076 1.1 christos pxor %xmm0,%xmm4 1077 1.1 christos nop 1078 1.1 christos .byte 102,15,58,68,194,0 1079 1.1 christos .byte 102,15,58,68,202,17 1080 1.1 christos .byte 102,15,58,68,229,16 1081 1.1 christos movups (%edx),%xmm2 1082 1.1 christos xorps %xmm6,%xmm0 1083 1.1 christos movdqa (%ecx),%xmm5 1084 1.1 christos xorps %xmm7,%xmm1 1085 1.1 christos movdqu (%esi),%xmm7 1086 1.1 christos pxor %xmm0,%xmm3 1087 1.1 christos movdqu 16(%esi),%xmm6 1088 1.1 christos pxor %xmm1,%xmm3 1089 1.1 christos .byte 102,15,56,0,253 1090 1.1 christos pxor %xmm3,%xmm4 1091 1.1 christos movdqa %xmm4,%xmm3 1092 1.1 christos psrldq $8,%xmm4 1093 1.1 christos pslldq $8,%xmm3 1094 1.1 christos pxor %xmm4,%xmm1 1095 1.1 christos pxor %xmm3,%xmm0 1096 1.1 christos .byte 102,15,56,0,245 1097 1.1 christos pxor %xmm7,%xmm1 1098 1.1 christos movdqa %xmm6,%xmm7 1099 1.1 christos movdqa %xmm0,%xmm4 1100 1.1 christos movdqa %xmm0,%xmm3 1101 1.1 christos psllq $5,%xmm0 1102 1.1 christos pxor %xmm0,%xmm3 1103 1.1 christos psllq $1,%xmm0 1104 1.1 christos pxor %xmm3,%xmm0 1105 1.1 christos .byte 102,15,58,68,242,0 1106 1.1 christos movups 32(%edx),%xmm5 1107 1.1 christos psllq $57,%xmm0 1108 1.1 christos movdqa %xmm0,%xmm3 1109 1.1 christos pslldq $8,%xmm0 1110 1.1 christos psrldq $8,%xmm3 1111 1.1 christos pxor %xmm4,%xmm0 1112 1.1 christos pxor %xmm3,%xmm1 1113 1.1 christos pshufd $78,%xmm7,%xmm3 1114 1.1 christos movdqa %xmm0,%xmm4 1115 1.1 christos psrlq $1,%xmm0 1116 1.1 christos pxor %xmm7,%xmm3 1117 1.1 christos pxor %xmm4,%xmm1 1118 1.1 christos .byte 102,15,58,68,250,17 1119 1.1 christos movups 16(%edx),%xmm2 1120 1.1 christos pxor %xmm0,%xmm4 1121 1.1 christos psrlq $5,%xmm0 1122 1.1 christos pxor %xmm4,%xmm0 1123 1.1 christos psrlq $1,%xmm0 1124 1.1 christos pxor %xmm1,%xmm0 1125 1.1 christos .byte 102,15,58,68,221,0 1126 1.1 christos leal 32(%esi),%esi 1127 1.1 christos subl $32,%ebx 1128 1.1 christos ja .L015mod_loop 1129 1.1 christos .L014even_tail: 1130 1.1 christos pshufd $78,%xmm0,%xmm4 1131 1.1 christos movdqa %xmm0,%xmm1 1132 1.1 christos pxor %xmm0,%xmm4 1133 1.1 christos .byte 102,15,58,68,194,0 1134 1.1 christos .byte 102,15,58,68,202,17 1135 1.1 christos .byte 102,15,58,68,229,16 1136 1.1 christos movdqa (%ecx),%xmm5 1137 1.1 christos xorps %xmm6,%xmm0 1138 1.1 christos xorps %xmm7,%xmm1 1139 1.1 christos pxor %xmm0,%xmm3 1140 1.1 christos pxor %xmm1,%xmm3 1141 1.1 christos pxor %xmm3,%xmm4 1142 1.1 christos movdqa %xmm4,%xmm3 1143 1.1 christos psrldq $8,%xmm4 1144 1.1 christos pslldq $8,%xmm3 1145 1.1 christos pxor %xmm4,%xmm1 1146 1.1 christos pxor %xmm3,%xmm0 1147 1.1 christos movdqa %xmm0,%xmm4 1148 1.1 christos movdqa %xmm0,%xmm3 1149 1.1 christos psllq $5,%xmm0 1150 1.1 christos pxor %xmm0,%xmm3 1151 1.1 christos psllq $1,%xmm0 1152 1.1 christos pxor %xmm3,%xmm0 1153 1.1 christos psllq $57,%xmm0 1154 1.1 christos movdqa %xmm0,%xmm3 1155 1.1 christos pslldq $8,%xmm0 1156 1.1 christos psrldq $8,%xmm3 1157 1.1 christos pxor %xmm4,%xmm0 1158 1.1 christos pxor %xmm3,%xmm1 1159 1.1 christos movdqa %xmm0,%xmm4 1160 1.1 christos psrlq $1,%xmm0 1161 1.1 christos pxor %xmm4,%xmm1 1162 1.1 christos pxor %xmm0,%xmm4 1163 1.1 christos psrlq $5,%xmm0 1164 1.1 christos pxor %xmm4,%xmm0 1165 1.1 christos psrlq $1,%xmm0 1166 1.1 christos pxor %xmm1,%xmm0 1167 1.1 christos testl %ebx,%ebx 1168 1.1 christos jnz .L016done 1169 1.1 christos movups (%edx),%xmm2 1170 1.1 christos .L013odd_tail: 1171 1.1 christos movdqu (%esi),%xmm3 1172 1.1 christos .byte 102,15,56,0,221 1173 1.1 christos pxor %xmm3,%xmm0 1174 1.1 christos movdqa %xmm0,%xmm1 1175 1.1 christos pshufd $78,%xmm0,%xmm3 1176 1.1 christos pshufd $78,%xmm2,%xmm4 1177 1.1 christos pxor %xmm0,%xmm3 1178 1.1 christos pxor %xmm2,%xmm4 1179 1.1 christos .byte 102,15,58,68,194,0 1180 1.1 christos .byte 102,15,58,68,202,17 1181 1.1 christos .byte 102,15,58,68,220,0 1182 1.1 christos xorps %xmm0,%xmm3 1183 1.1 christos xorps %xmm1,%xmm3 1184 1.1 christos movdqa %xmm3,%xmm4 1185 1.1 christos psrldq $8,%xmm3 1186 1.1 christos pslldq $8,%xmm4 1187 1.1 christos pxor %xmm3,%xmm1 1188 1.1 christos pxor %xmm4,%xmm0 1189 1.1 christos movdqa %xmm0,%xmm4 1190 1.1 christos movdqa %xmm0,%xmm3 1191 1.1 christos psllq $5,%xmm0 1192 1.1 christos pxor %xmm0,%xmm3 1193 1.1 christos psllq $1,%xmm0 1194 1.1 christos pxor %xmm3,%xmm0 1195 1.1 christos psllq $57,%xmm0 1196 1.1 christos movdqa %xmm0,%xmm3 1197 1.1 christos pslldq $8,%xmm0 1198 1.1 christos psrldq $8,%xmm3 1199 1.1 christos pxor %xmm4,%xmm0 1200 1.1 christos pxor %xmm3,%xmm1 1201 1.1 christos movdqa %xmm0,%xmm4 1202 1.1 christos psrlq $1,%xmm0 1203 1.1 christos pxor %xmm4,%xmm1 1204 1.1 christos pxor %xmm0,%xmm4 1205 1.1 christos psrlq $5,%xmm0 1206 1.1 christos pxor %xmm4,%xmm0 1207 1.1 christos psrlq $1,%xmm0 1208 1.1 christos pxor %xmm1,%xmm0 1209 1.1 christos .L016done: 1210 1.1 christos .byte 102,15,56,0,197 1211 1.1 christos movdqu %xmm0,(%eax) 1212 1.1 christos popl %edi 1213 1.1 christos popl %esi 1214 1.1 christos popl %ebx 1215 1.1 christos popl %ebp 1216 1.1 christos ret 1217 1.1 christos .size gcm_ghash_clmul,.-.L_gcm_ghash_clmul_begin 1218 1.1 christos .align 64 1219 1.1 christos .Lbswap: 1220 1.1 christos .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 1221 1.1 christos .byte 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,194 1222 1.1 christos .align 64 1223 1.1 christos .Lrem_8bit: 1224 1.1 christos .value 0,450,900,582,1800,1738,1164,1358 1225 1.1 christos .value 3600,4050,3476,3158,2328,2266,2716,2910 1226 1.1 christos .value 7200,7650,8100,7782,6952,6890,6316,6510 1227 1.1 christos .value 4656,5106,4532,4214,5432,5370,5820,6014 1228 1.1 christos .value 14400,14722,15300,14854,16200,16010,15564,15630 1229 1.1 christos .value 13904,14226,13780,13334,12632,12442,13020,13086 1230 1.1 christos .value 9312,9634,10212,9766,9064,8874,8428,8494 1231 1.1 christos .value 10864,11186,10740,10294,11640,11450,12028,12094 1232 1.1 christos .value 28800,28994,29444,29382,30600,30282,29708,30158 1233 1.1 christos .value 32400,32594,32020,31958,31128,30810,31260,31710 1234 1.1 christos .value 27808,28002,28452,28390,27560,27242,26668,27118 1235 1.1 christos .value 25264,25458,24884,24822,26040,25722,26172,26622 1236 1.1 christos .value 18624,18690,19268,19078,20424,19978,19532,19854 1237 1.1 christos .value 18128,18194,17748,17558,16856,16410,16988,17310 1238 1.1 christos .value 21728,21794,22372,22182,21480,21034,20588,20910 1239 1.1 christos .value 23280,23346,22900,22710,24056,23610,24188,24510 1240 1.1 christos .value 57600,57538,57988,58182,58888,59338,58764,58446 1241 1.1 christos .value 61200,61138,60564,60758,59416,59866,60316,59998 1242 1.1 christos .value 64800,64738,65188,65382,64040,64490,63916,63598 1243 1.1 christos .value 62256,62194,61620,61814,62520,62970,63420,63102 1244 1.1 christos .value 55616,55426,56004,56070,56904,57226,56780,56334 1245 1.1 christos .value 55120,54930,54484,54550,53336,53658,54236,53790 1246 1.1 christos .value 50528,50338,50916,50982,49768,50090,49644,49198 1247 1.1 christos .value 52080,51890,51444,51510,52344,52666,53244,52798 1248 1.1 christos .value 37248,36930,37380,37830,38536,38730,38156,38094 1249 1.1 christos .value 40848,40530,39956,40406,39064,39258,39708,39646 1250 1.1 christos .value 36256,35938,36388,36838,35496,35690,35116,35054 1251 1.1 christos .value 33712,33394,32820,33270,33976,34170,34620,34558 1252 1.1 christos .value 43456,43010,43588,43910,44744,44810,44364,44174 1253 1.1 christos .value 42960,42514,42068,42390,41176,41242,41820,41630 1254 1.1 christos .value 46560,46114,46692,47014,45800,45866,45420,45230 1255 1.1 christos .value 48112,47666,47220,47542,48376,48442,49020,48830 1256 1.1 christos .align 64 1257 1.1 christos .Lrem_4bit: 1258 1.1 christos .long 0,0,0,471859200,0,943718400,0,610271232 1259 1.1 christos .long 0,1887436800,0,1822425088,0,1220542464,0,1423966208 1260 1.1 christos .long 0,3774873600,0,4246732800,0,3644850176,0,3311403008 1261 1.1 christos .long 0,2441084928,0,2376073216,0,2847932416,0,3051356160 1262 1.1 christos .byte 71,72,65,83,72,32,102,111,114,32,120,56,54,44,32,67 1263 1.1 christos .byte 82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112 1264 1.1 christos .byte 112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62 1265 1.1 christos .byte 0 1266