1 1.8 christos #include <machine/asm.h> 2 1.8 christos .text 3 1.8 christos .globl aesni_encrypt 4 1.8 christos .type aesni_encrypt,@function 5 1.8 christos .align 16 6 1.8 christos aesni_encrypt: 7 1.8 christos .L_aesni_encrypt_begin: 8 1.11 christos #ifdef __CET__ 9 1.11 christos 10 1.11 christos .byte 243,15,30,251 11 1.11 christos #endif 12 1.11 christos 13 1.8 christos movl 4(%esp),%eax 14 1.8 christos movl 12(%esp),%edx 15 1.8 christos movups (%eax),%xmm2 16 1.8 christos movl 240(%edx),%ecx 17 1.8 christos movl 8(%esp),%eax 18 1.8 christos movups (%edx),%xmm0 19 1.8 christos movups 16(%edx),%xmm1 20 1.8 christos leal 32(%edx),%edx 21 1.8 christos xorps %xmm0,%xmm2 22 1.8 christos .L000enc1_loop_1: 23 1.8 christos .byte 102,15,56,220,209 24 1.8 christos decl %ecx 25 1.8 christos movups (%edx),%xmm1 26 1.8 christos leal 16(%edx),%edx 27 1.8 christos jnz .L000enc1_loop_1 28 1.8 christos .byte 102,15,56,221,209 29 1.8 christos pxor %xmm0,%xmm0 30 1.8 christos pxor %xmm1,%xmm1 31 1.8 christos movups %xmm2,(%eax) 32 1.8 christos pxor %xmm2,%xmm2 33 1.8 christos ret 34 1.8 christos .size aesni_encrypt,.-.L_aesni_encrypt_begin 35 1.8 christos .globl aesni_decrypt 36 1.8 christos .type aesni_decrypt,@function 37 1.8 christos .align 16 38 1.8 christos aesni_decrypt: 39 1.8 christos .L_aesni_decrypt_begin: 40 1.11 christos #ifdef __CET__ 41 1.11 christos 42 1.11 christos .byte 243,15,30,251 43 1.11 christos #endif 44 1.11 christos 45 1.8 christos movl 4(%esp),%eax 46 1.8 christos movl 12(%esp),%edx 47 1.8 christos movups (%eax),%xmm2 48 1.8 christos movl 240(%edx),%ecx 49 1.8 christos movl 8(%esp),%eax 50 1.8 christos movups (%edx),%xmm0 51 1.8 christos movups 16(%edx),%xmm1 52 1.8 christos leal 32(%edx),%edx 53 1.8 christos xorps %xmm0,%xmm2 54 1.8 christos .L001dec1_loop_2: 55 1.8 christos .byte 102,15,56,222,209 56 1.8 christos decl %ecx 57 1.8 christos movups (%edx),%xmm1 58 1.8 christos leal 16(%edx),%edx 59 1.8 christos jnz .L001dec1_loop_2 60 1.8 christos .byte 102,15,56,223,209 61 1.8 christos pxor %xmm0,%xmm0 62 1.8 christos pxor %xmm1,%xmm1 63 1.8 christos movups %xmm2,(%eax) 64 1.8 christos pxor %xmm2,%xmm2 65 1.8 christos ret 66 1.8 christos .size aesni_decrypt,.-.L_aesni_decrypt_begin 67 1.8 christos .type _aesni_encrypt2,@function 68 1.8 christos .align 16 69 1.8 christos _aesni_encrypt2: 70 1.11 christos #ifdef __CET__ 71 1.11 christos 72 1.11 christos .byte 243,15,30,251 73 1.11 christos #endif 74 1.11 christos 75 1.8 christos movups (%edx),%xmm0 76 1.8 christos shll $4,%ecx 77 1.8 christos movups 16(%edx),%xmm1 78 1.8 christos xorps %xmm0,%xmm2 79 1.8 christos pxor %xmm0,%xmm3 80 1.8 christos movups 32(%edx),%xmm0 81 1.8 christos leal 32(%edx,%ecx,1),%edx 82 1.8 christos negl %ecx 83 1.8 christos addl $16,%ecx 84 1.8 christos .L002enc2_loop: 85 1.8 christos .byte 102,15,56,220,209 86 1.8 christos .byte 102,15,56,220,217 87 1.8 christos movups (%edx,%ecx,1),%xmm1 88 1.8 christos addl $32,%ecx 89 1.8 christos .byte 102,15,56,220,208 90 1.8 christos .byte 102,15,56,220,216 91 1.8 christos movups -16(%edx,%ecx,1),%xmm0 92 1.8 christos jnz .L002enc2_loop 93 1.8 christos .byte 102,15,56,220,209 94 1.8 christos .byte 102,15,56,220,217 95 1.8 christos .byte 102,15,56,221,208 96 1.8 christos .byte 102,15,56,221,216 97 1.8 christos ret 98 1.8 christos .size _aesni_encrypt2,.-_aesni_encrypt2 99 1.8 christos .type _aesni_decrypt2,@function 100 1.8 christos .align 16 101 1.8 christos _aesni_decrypt2: 102 1.11 christos #ifdef __CET__ 103 1.11 christos 104 1.11 christos .byte 243,15,30,251 105 1.11 christos #endif 106 1.11 christos 107 1.8 christos movups (%edx),%xmm0 108 1.8 christos shll $4,%ecx 109 1.8 christos movups 16(%edx),%xmm1 110 1.8 christos xorps %xmm0,%xmm2 111 1.8 christos pxor %xmm0,%xmm3 112 1.8 christos movups 32(%edx),%xmm0 113 1.8 christos leal 32(%edx,%ecx,1),%edx 114 1.8 christos negl %ecx 115 1.8 christos addl $16,%ecx 116 1.8 christos .L003dec2_loop: 117 1.8 christos .byte 102,15,56,222,209 118 1.8 christos .byte 102,15,56,222,217 119 1.8 christos movups (%edx,%ecx,1),%xmm1 120 1.8 christos addl $32,%ecx 121 1.8 christos .byte 102,15,56,222,208 122 1.8 christos .byte 102,15,56,222,216 123 1.8 christos movups -16(%edx,%ecx,1),%xmm0 124 1.8 christos jnz .L003dec2_loop 125 1.8 christos .byte 102,15,56,222,209 126 1.8 christos .byte 102,15,56,222,217 127 1.8 christos .byte 102,15,56,223,208 128 1.8 christos .byte 102,15,56,223,216 129 1.8 christos ret 130 1.8 christos .size _aesni_decrypt2,.-_aesni_decrypt2 131 1.8 christos .type _aesni_encrypt3,@function 132 1.8 christos .align 16 133 1.8 christos _aesni_encrypt3: 134 1.11 christos #ifdef __CET__ 135 1.11 christos 136 1.11 christos .byte 243,15,30,251 137 1.11 christos #endif 138 1.11 christos 139 1.8 christos movups (%edx),%xmm0 140 1.8 christos shll $4,%ecx 141 1.8 christos movups 16(%edx),%xmm1 142 1.8 christos xorps %xmm0,%xmm2 143 1.8 christos pxor %xmm0,%xmm3 144 1.8 christos pxor %xmm0,%xmm4 145 1.8 christos movups 32(%edx),%xmm0 146 1.8 christos leal 32(%edx,%ecx,1),%edx 147 1.8 christos negl %ecx 148 1.8 christos addl $16,%ecx 149 1.8 christos .L004enc3_loop: 150 1.8 christos .byte 102,15,56,220,209 151 1.8 christos .byte 102,15,56,220,217 152 1.8 christos .byte 102,15,56,220,225 153 1.8 christos movups (%edx,%ecx,1),%xmm1 154 1.8 christos addl $32,%ecx 155 1.8 christos .byte 102,15,56,220,208 156 1.8 christos .byte 102,15,56,220,216 157 1.8 christos .byte 102,15,56,220,224 158 1.8 christos movups -16(%edx,%ecx,1),%xmm0 159 1.8 christos jnz .L004enc3_loop 160 1.8 christos .byte 102,15,56,220,209 161 1.8 christos .byte 102,15,56,220,217 162 1.8 christos .byte 102,15,56,220,225 163 1.8 christos .byte 102,15,56,221,208 164 1.8 christos .byte 102,15,56,221,216 165 1.8 christos .byte 102,15,56,221,224 166 1.8 christos ret 167 1.8 christos .size _aesni_encrypt3,.-_aesni_encrypt3 168 1.8 christos .type _aesni_decrypt3,@function 169 1.8 christos .align 16 170 1.8 christos _aesni_decrypt3: 171 1.11 christos #ifdef __CET__ 172 1.11 christos 173 1.11 christos .byte 243,15,30,251 174 1.11 christos #endif 175 1.11 christos 176 1.8 christos movups (%edx),%xmm0 177 1.8 christos shll $4,%ecx 178 1.8 christos movups 16(%edx),%xmm1 179 1.8 christos xorps %xmm0,%xmm2 180 1.8 christos pxor %xmm0,%xmm3 181 1.8 christos pxor %xmm0,%xmm4 182 1.8 christos movups 32(%edx),%xmm0 183 1.8 christos leal 32(%edx,%ecx,1),%edx 184 1.8 christos negl %ecx 185 1.8 christos addl $16,%ecx 186 1.8 christos .L005dec3_loop: 187 1.8 christos .byte 102,15,56,222,209 188 1.8 christos .byte 102,15,56,222,217 189 1.8 christos .byte 102,15,56,222,225 190 1.8 christos movups (%edx,%ecx,1),%xmm1 191 1.8 christos addl $32,%ecx 192 1.8 christos .byte 102,15,56,222,208 193 1.8 christos .byte 102,15,56,222,216 194 1.8 christos .byte 102,15,56,222,224 195 1.8 christos movups -16(%edx,%ecx,1),%xmm0 196 1.8 christos jnz .L005dec3_loop 197 1.8 christos .byte 102,15,56,222,209 198 1.8 christos .byte 102,15,56,222,217 199 1.8 christos .byte 102,15,56,222,225 200 1.8 christos .byte 102,15,56,223,208 201 1.8 christos .byte 102,15,56,223,216 202 1.8 christos .byte 102,15,56,223,224 203 1.8 christos ret 204 1.8 christos .size _aesni_decrypt3,.-_aesni_decrypt3 205 1.8 christos .type _aesni_encrypt4,@function 206 1.8 christos .align 16 207 1.8 christos _aesni_encrypt4: 208 1.11 christos #ifdef __CET__ 209 1.11 christos 210 1.11 christos .byte 243,15,30,251 211 1.11 christos #endif 212 1.11 christos 213 1.8 christos movups (%edx),%xmm0 214 1.8 christos movups 16(%edx),%xmm1 215 1.8 christos shll $4,%ecx 216 1.8 christos xorps %xmm0,%xmm2 217 1.8 christos pxor %xmm0,%xmm3 218 1.8 christos pxor %xmm0,%xmm4 219 1.8 christos pxor %xmm0,%xmm5 220 1.8 christos movups 32(%edx),%xmm0 221 1.8 christos leal 32(%edx,%ecx,1),%edx 222 1.8 christos negl %ecx 223 1.8 christos .byte 15,31,64,0 224 1.8 christos addl $16,%ecx 225 1.8 christos .L006enc4_loop: 226 1.8 christos .byte 102,15,56,220,209 227 1.8 christos .byte 102,15,56,220,217 228 1.8 christos .byte 102,15,56,220,225 229 1.8 christos .byte 102,15,56,220,233 230 1.8 christos movups (%edx,%ecx,1),%xmm1 231 1.8 christos addl $32,%ecx 232 1.8 christos .byte 102,15,56,220,208 233 1.8 christos .byte 102,15,56,220,216 234 1.8 christos .byte 102,15,56,220,224 235 1.8 christos .byte 102,15,56,220,232 236 1.8 christos movups -16(%edx,%ecx,1),%xmm0 237 1.8 christos jnz .L006enc4_loop 238 1.8 christos .byte 102,15,56,220,209 239 1.8 christos .byte 102,15,56,220,217 240 1.8 christos .byte 102,15,56,220,225 241 1.8 christos .byte 102,15,56,220,233 242 1.8 christos .byte 102,15,56,221,208 243 1.8 christos .byte 102,15,56,221,216 244 1.8 christos .byte 102,15,56,221,224 245 1.8 christos .byte 102,15,56,221,232 246 1.8 christos ret 247 1.8 christos .size _aesni_encrypt4,.-_aesni_encrypt4 248 1.8 christos .type _aesni_decrypt4,@function 249 1.8 christos .align 16 250 1.8 christos _aesni_decrypt4: 251 1.11 christos #ifdef __CET__ 252 1.11 christos 253 1.11 christos .byte 243,15,30,251 254 1.11 christos #endif 255 1.11 christos 256 1.8 christos movups (%edx),%xmm0 257 1.8 christos movups 16(%edx),%xmm1 258 1.8 christos shll $4,%ecx 259 1.8 christos xorps %xmm0,%xmm2 260 1.8 christos pxor %xmm0,%xmm3 261 1.8 christos pxor %xmm0,%xmm4 262 1.8 christos pxor %xmm0,%xmm5 263 1.8 christos movups 32(%edx),%xmm0 264 1.8 christos leal 32(%edx,%ecx,1),%edx 265 1.8 christos negl %ecx 266 1.8 christos .byte 15,31,64,0 267 1.8 christos addl $16,%ecx 268 1.8 christos .L007dec4_loop: 269 1.8 christos .byte 102,15,56,222,209 270 1.8 christos .byte 102,15,56,222,217 271 1.8 christos .byte 102,15,56,222,225 272 1.8 christos .byte 102,15,56,222,233 273 1.8 christos movups (%edx,%ecx,1),%xmm1 274 1.8 christos addl $32,%ecx 275 1.8 christos .byte 102,15,56,222,208 276 1.8 christos .byte 102,15,56,222,216 277 1.8 christos .byte 102,15,56,222,224 278 1.8 christos .byte 102,15,56,222,232 279 1.8 christos movups -16(%edx,%ecx,1),%xmm0 280 1.8 christos jnz .L007dec4_loop 281 1.8 christos .byte 102,15,56,222,209 282 1.8 christos .byte 102,15,56,222,217 283 1.8 christos .byte 102,15,56,222,225 284 1.8 christos .byte 102,15,56,222,233 285 1.8 christos .byte 102,15,56,223,208 286 1.8 christos .byte 102,15,56,223,216 287 1.8 christos .byte 102,15,56,223,224 288 1.8 christos .byte 102,15,56,223,232 289 1.8 christos ret 290 1.8 christos .size _aesni_decrypt4,.-_aesni_decrypt4 291 1.8 christos .type _aesni_encrypt6,@function 292 1.8 christos .align 16 293 1.8 christos _aesni_encrypt6: 294 1.11 christos #ifdef __CET__ 295 1.11 christos 296 1.11 christos .byte 243,15,30,251 297 1.11 christos #endif 298 1.11 christos 299 1.8 christos movups (%edx),%xmm0 300 1.8 christos shll $4,%ecx 301 1.8 christos movups 16(%edx),%xmm1 302 1.8 christos xorps %xmm0,%xmm2 303 1.8 christos pxor %xmm0,%xmm3 304 1.8 christos pxor %xmm0,%xmm4 305 1.8 christos .byte 102,15,56,220,209 306 1.8 christos pxor %xmm0,%xmm5 307 1.8 christos pxor %xmm0,%xmm6 308 1.8 christos .byte 102,15,56,220,217 309 1.8 christos leal 32(%edx,%ecx,1),%edx 310 1.8 christos negl %ecx 311 1.8 christos .byte 102,15,56,220,225 312 1.8 christos pxor %xmm0,%xmm7 313 1.8 christos movups (%edx,%ecx,1),%xmm0 314 1.8 christos addl $16,%ecx 315 1.8 christos jmp .L008_aesni_encrypt6_inner 316 1.8 christos .align 16 317 1.8 christos .L009enc6_loop: 318 1.8 christos .byte 102,15,56,220,209 319 1.8 christos .byte 102,15,56,220,217 320 1.8 christos .byte 102,15,56,220,225 321 1.8 christos .L008_aesni_encrypt6_inner: 322 1.8 christos .byte 102,15,56,220,233 323 1.8 christos .byte 102,15,56,220,241 324 1.8 christos .byte 102,15,56,220,249 325 1.8 christos .L_aesni_encrypt6_enter: 326 1.8 christos movups (%edx,%ecx,1),%xmm1 327 1.8 christos addl $32,%ecx 328 1.8 christos .byte 102,15,56,220,208 329 1.8 christos .byte 102,15,56,220,216 330 1.8 christos .byte 102,15,56,220,224 331 1.8 christos .byte 102,15,56,220,232 332 1.8 christos .byte 102,15,56,220,240 333 1.8 christos .byte 102,15,56,220,248 334 1.8 christos movups -16(%edx,%ecx,1),%xmm0 335 1.8 christos jnz .L009enc6_loop 336 1.8 christos .byte 102,15,56,220,209 337 1.8 christos .byte 102,15,56,220,217 338 1.8 christos .byte 102,15,56,220,225 339 1.8 christos .byte 102,15,56,220,233 340 1.8 christos .byte 102,15,56,220,241 341 1.8 christos .byte 102,15,56,220,249 342 1.8 christos .byte 102,15,56,221,208 343 1.8 christos .byte 102,15,56,221,216 344 1.8 christos .byte 102,15,56,221,224 345 1.8 christos .byte 102,15,56,221,232 346 1.8 christos .byte 102,15,56,221,240 347 1.8 christos .byte 102,15,56,221,248 348 1.8 christos ret 349 1.8 christos .size _aesni_encrypt6,.-_aesni_encrypt6 350 1.8 christos .type _aesni_decrypt6,@function 351 1.8 christos .align 16 352 1.8 christos _aesni_decrypt6: 353 1.11 christos #ifdef __CET__ 354 1.11 christos 355 1.11 christos .byte 243,15,30,251 356 1.11 christos #endif 357 1.11 christos 358 1.8 christos movups (%edx),%xmm0 359 1.8 christos shll $4,%ecx 360 1.8 christos movups 16(%edx),%xmm1 361 1.8 christos xorps %xmm0,%xmm2 362 1.8 christos pxor %xmm0,%xmm3 363 1.8 christos pxor %xmm0,%xmm4 364 1.8 christos .byte 102,15,56,222,209 365 1.8 christos pxor %xmm0,%xmm5 366 1.8 christos pxor %xmm0,%xmm6 367 1.8 christos .byte 102,15,56,222,217 368 1.8 christos leal 32(%edx,%ecx,1),%edx 369 1.8 christos negl %ecx 370 1.8 christos .byte 102,15,56,222,225 371 1.8 christos pxor %xmm0,%xmm7 372 1.8 christos movups (%edx,%ecx,1),%xmm0 373 1.8 christos addl $16,%ecx 374 1.8 christos jmp .L010_aesni_decrypt6_inner 375 1.8 christos .align 16 376 1.8 christos .L011dec6_loop: 377 1.8 christos .byte 102,15,56,222,209 378 1.8 christos .byte 102,15,56,222,217 379 1.8 christos .byte 102,15,56,222,225 380 1.8 christos .L010_aesni_decrypt6_inner: 381 1.8 christos .byte 102,15,56,222,233 382 1.8 christos .byte 102,15,56,222,241 383 1.8 christos .byte 102,15,56,222,249 384 1.8 christos .L_aesni_decrypt6_enter: 385 1.8 christos movups (%edx,%ecx,1),%xmm1 386 1.8 christos addl $32,%ecx 387 1.8 christos .byte 102,15,56,222,208 388 1.8 christos .byte 102,15,56,222,216 389 1.8 christos .byte 102,15,56,222,224 390 1.8 christos .byte 102,15,56,222,232 391 1.8 christos .byte 102,15,56,222,240 392 1.8 christos .byte 102,15,56,222,248 393 1.8 christos movups -16(%edx,%ecx,1),%xmm0 394 1.8 christos jnz .L011dec6_loop 395 1.8 christos .byte 102,15,56,222,209 396 1.8 christos .byte 102,15,56,222,217 397 1.8 christos .byte 102,15,56,222,225 398 1.8 christos .byte 102,15,56,222,233 399 1.8 christos .byte 102,15,56,222,241 400 1.8 christos .byte 102,15,56,222,249 401 1.8 christos .byte 102,15,56,223,208 402 1.8 christos .byte 102,15,56,223,216 403 1.8 christos .byte 102,15,56,223,224 404 1.8 christos .byte 102,15,56,223,232 405 1.8 christos .byte 102,15,56,223,240 406 1.8 christos .byte 102,15,56,223,248 407 1.8 christos ret 408 1.8 christos .size _aesni_decrypt6,.-_aesni_decrypt6 409 1.8 christos .globl aesni_ecb_encrypt 410 1.8 christos .type aesni_ecb_encrypt,@function 411 1.8 christos .align 16 412 1.8 christos aesni_ecb_encrypt: 413 1.8 christos .L_aesni_ecb_encrypt_begin: 414 1.11 christos #ifdef __CET__ 415 1.11 christos 416 1.11 christos .byte 243,15,30,251 417 1.11 christos #endif 418 1.11 christos 419 1.8 christos pushl %ebp 420 1.8 christos pushl %ebx 421 1.8 christos pushl %esi 422 1.8 christos pushl %edi 423 1.8 christos movl 20(%esp),%esi 424 1.8 christos movl 24(%esp),%edi 425 1.8 christos movl 28(%esp),%eax 426 1.8 christos movl 32(%esp),%edx 427 1.8 christos movl 36(%esp),%ebx 428 1.8 christos andl $-16,%eax 429 1.8 christos jz .L012ecb_ret 430 1.8 christos movl 240(%edx),%ecx 431 1.8 christos testl %ebx,%ebx 432 1.8 christos jz .L013ecb_decrypt 433 1.8 christos movl %edx,%ebp 434 1.8 christos movl %ecx,%ebx 435 1.8 christos cmpl $96,%eax 436 1.8 christos jb .L014ecb_enc_tail 437 1.8 christos movdqu (%esi),%xmm2 438 1.8 christos movdqu 16(%esi),%xmm3 439 1.8 christos movdqu 32(%esi),%xmm4 440 1.8 christos movdqu 48(%esi),%xmm5 441 1.8 christos movdqu 64(%esi),%xmm6 442 1.8 christos movdqu 80(%esi),%xmm7 443 1.8 christos leal 96(%esi),%esi 444 1.8 christos subl $96,%eax 445 1.8 christos jmp .L015ecb_enc_loop6_enter 446 1.8 christos .align 16 447 1.8 christos .L016ecb_enc_loop6: 448 1.8 christos movups %xmm2,(%edi) 449 1.8 christos movdqu (%esi),%xmm2 450 1.8 christos movups %xmm3,16(%edi) 451 1.8 christos movdqu 16(%esi),%xmm3 452 1.8 christos movups %xmm4,32(%edi) 453 1.8 christos movdqu 32(%esi),%xmm4 454 1.8 christos movups %xmm5,48(%edi) 455 1.8 christos movdqu 48(%esi),%xmm5 456 1.8 christos movups %xmm6,64(%edi) 457 1.8 christos movdqu 64(%esi),%xmm6 458 1.8 christos movups %xmm7,80(%edi) 459 1.8 christos leal 96(%edi),%edi 460 1.8 christos movdqu 80(%esi),%xmm7 461 1.8 christos leal 96(%esi),%esi 462 1.8 christos .L015ecb_enc_loop6_enter: 463 1.8 christos call _aesni_encrypt6 464 1.8 christos movl %ebp,%edx 465 1.8 christos movl %ebx,%ecx 466 1.8 christos subl $96,%eax 467 1.8 christos jnc .L016ecb_enc_loop6 468 1.8 christos movups %xmm2,(%edi) 469 1.8 christos movups %xmm3,16(%edi) 470 1.8 christos movups %xmm4,32(%edi) 471 1.8 christos movups %xmm5,48(%edi) 472 1.8 christos movups %xmm6,64(%edi) 473 1.8 christos movups %xmm7,80(%edi) 474 1.8 christos leal 96(%edi),%edi 475 1.8 christos addl $96,%eax 476 1.8 christos jz .L012ecb_ret 477 1.8 christos .L014ecb_enc_tail: 478 1.8 christos movups (%esi),%xmm2 479 1.8 christos cmpl $32,%eax 480 1.8 christos jb .L017ecb_enc_one 481 1.8 christos movups 16(%esi),%xmm3 482 1.8 christos je .L018ecb_enc_two 483 1.8 christos movups 32(%esi),%xmm4 484 1.8 christos cmpl $64,%eax 485 1.8 christos jb .L019ecb_enc_three 486 1.8 christos movups 48(%esi),%xmm5 487 1.8 christos je .L020ecb_enc_four 488 1.8 christos movups 64(%esi),%xmm6 489 1.8 christos xorps %xmm7,%xmm7 490 1.8 christos call _aesni_encrypt6 491 1.8 christos movups %xmm2,(%edi) 492 1.8 christos movups %xmm3,16(%edi) 493 1.8 christos movups %xmm4,32(%edi) 494 1.8 christos movups %xmm5,48(%edi) 495 1.8 christos movups %xmm6,64(%edi) 496 1.8 christos jmp .L012ecb_ret 497 1.8 christos .align 16 498 1.8 christos .L017ecb_enc_one: 499 1.8 christos movups (%edx),%xmm0 500 1.8 christos movups 16(%edx),%xmm1 501 1.8 christos leal 32(%edx),%edx 502 1.8 christos xorps %xmm0,%xmm2 503 1.8 christos .L021enc1_loop_3: 504 1.8 christos .byte 102,15,56,220,209 505 1.8 christos decl %ecx 506 1.8 christos movups (%edx),%xmm1 507 1.8 christos leal 16(%edx),%edx 508 1.8 christos jnz .L021enc1_loop_3 509 1.8 christos .byte 102,15,56,221,209 510 1.8 christos movups %xmm2,(%edi) 511 1.8 christos jmp .L012ecb_ret 512 1.8 christos .align 16 513 1.8 christos .L018ecb_enc_two: 514 1.8 christos call _aesni_encrypt2 515 1.8 christos movups %xmm2,(%edi) 516 1.8 christos movups %xmm3,16(%edi) 517 1.8 christos jmp .L012ecb_ret 518 1.8 christos .align 16 519 1.8 christos .L019ecb_enc_three: 520 1.8 christos call _aesni_encrypt3 521 1.8 christos movups %xmm2,(%edi) 522 1.8 christos movups %xmm3,16(%edi) 523 1.8 christos movups %xmm4,32(%edi) 524 1.8 christos jmp .L012ecb_ret 525 1.8 christos .align 16 526 1.8 christos .L020ecb_enc_four: 527 1.8 christos call _aesni_encrypt4 528 1.8 christos movups %xmm2,(%edi) 529 1.8 christos movups %xmm3,16(%edi) 530 1.8 christos movups %xmm4,32(%edi) 531 1.8 christos movups %xmm5,48(%edi) 532 1.8 christos jmp .L012ecb_ret 533 1.8 christos .align 16 534 1.8 christos .L013ecb_decrypt: 535 1.8 christos movl %edx,%ebp 536 1.8 christos movl %ecx,%ebx 537 1.8 christos cmpl $96,%eax 538 1.8 christos jb .L022ecb_dec_tail 539 1.8 christos movdqu (%esi),%xmm2 540 1.8 christos movdqu 16(%esi),%xmm3 541 1.8 christos movdqu 32(%esi),%xmm4 542 1.8 christos movdqu 48(%esi),%xmm5 543 1.8 christos movdqu 64(%esi),%xmm6 544 1.8 christos movdqu 80(%esi),%xmm7 545 1.8 christos leal 96(%esi),%esi 546 1.8 christos subl $96,%eax 547 1.8 christos jmp .L023ecb_dec_loop6_enter 548 1.8 christos .align 16 549 1.8 christos .L024ecb_dec_loop6: 550 1.8 christos movups %xmm2,(%edi) 551 1.8 christos movdqu (%esi),%xmm2 552 1.8 christos movups %xmm3,16(%edi) 553 1.8 christos movdqu 16(%esi),%xmm3 554 1.8 christos movups %xmm4,32(%edi) 555 1.8 christos movdqu 32(%esi),%xmm4 556 1.8 christos movups %xmm5,48(%edi) 557 1.8 christos movdqu 48(%esi),%xmm5 558 1.8 christos movups %xmm6,64(%edi) 559 1.8 christos movdqu 64(%esi),%xmm6 560 1.8 christos movups %xmm7,80(%edi) 561 1.8 christos leal 96(%edi),%edi 562 1.8 christos movdqu 80(%esi),%xmm7 563 1.8 christos leal 96(%esi),%esi 564 1.8 christos .L023ecb_dec_loop6_enter: 565 1.8 christos call _aesni_decrypt6 566 1.8 christos movl %ebp,%edx 567 1.8 christos movl %ebx,%ecx 568 1.8 christos subl $96,%eax 569 1.8 christos jnc .L024ecb_dec_loop6 570 1.8 christos movups %xmm2,(%edi) 571 1.8 christos movups %xmm3,16(%edi) 572 1.8 christos movups %xmm4,32(%edi) 573 1.8 christos movups %xmm5,48(%edi) 574 1.8 christos movups %xmm6,64(%edi) 575 1.8 christos movups %xmm7,80(%edi) 576 1.8 christos leal 96(%edi),%edi 577 1.8 christos addl $96,%eax 578 1.8 christos jz .L012ecb_ret 579 1.8 christos .L022ecb_dec_tail: 580 1.8 christos movups (%esi),%xmm2 581 1.8 christos cmpl $32,%eax 582 1.8 christos jb .L025ecb_dec_one 583 1.8 christos movups 16(%esi),%xmm3 584 1.8 christos je .L026ecb_dec_two 585 1.8 christos movups 32(%esi),%xmm4 586 1.8 christos cmpl $64,%eax 587 1.8 christos jb .L027ecb_dec_three 588 1.8 christos movups 48(%esi),%xmm5 589 1.8 christos je .L028ecb_dec_four 590 1.8 christos movups 64(%esi),%xmm6 591 1.8 christos xorps %xmm7,%xmm7 592 1.8 christos call _aesni_decrypt6 593 1.8 christos movups %xmm2,(%edi) 594 1.8 christos movups %xmm3,16(%edi) 595 1.8 christos movups %xmm4,32(%edi) 596 1.8 christos movups %xmm5,48(%edi) 597 1.8 christos movups %xmm6,64(%edi) 598 1.8 christos jmp .L012ecb_ret 599 1.8 christos .align 16 600 1.8 christos .L025ecb_dec_one: 601 1.8 christos movups (%edx),%xmm0 602 1.8 christos movups 16(%edx),%xmm1 603 1.8 christos leal 32(%edx),%edx 604 1.8 christos xorps %xmm0,%xmm2 605 1.8 christos .L029dec1_loop_4: 606 1.8 christos .byte 102,15,56,222,209 607 1.8 christos decl %ecx 608 1.8 christos movups (%edx),%xmm1 609 1.8 christos leal 16(%edx),%edx 610 1.8 christos jnz .L029dec1_loop_4 611 1.8 christos .byte 102,15,56,223,209 612 1.8 christos movups %xmm2,(%edi) 613 1.8 christos jmp .L012ecb_ret 614 1.8 christos .align 16 615 1.8 christos .L026ecb_dec_two: 616 1.8 christos call _aesni_decrypt2 617 1.8 christos movups %xmm2,(%edi) 618 1.8 christos movups %xmm3,16(%edi) 619 1.8 christos jmp .L012ecb_ret 620 1.8 christos .align 16 621 1.8 christos .L027ecb_dec_three: 622 1.8 christos call _aesni_decrypt3 623 1.8 christos movups %xmm2,(%edi) 624 1.8 christos movups %xmm3,16(%edi) 625 1.8 christos movups %xmm4,32(%edi) 626 1.8 christos jmp .L012ecb_ret 627 1.8 christos .align 16 628 1.8 christos .L028ecb_dec_four: 629 1.8 christos call _aesni_decrypt4 630 1.8 christos movups %xmm2,(%edi) 631 1.8 christos movups %xmm3,16(%edi) 632 1.8 christos movups %xmm4,32(%edi) 633 1.8 christos movups %xmm5,48(%edi) 634 1.8 christos .L012ecb_ret: 635 1.8 christos pxor %xmm0,%xmm0 636 1.8 christos pxor %xmm1,%xmm1 637 1.8 christos pxor %xmm2,%xmm2 638 1.8 christos pxor %xmm3,%xmm3 639 1.8 christos pxor %xmm4,%xmm4 640 1.8 christos pxor %xmm5,%xmm5 641 1.8 christos pxor %xmm6,%xmm6 642 1.8 christos pxor %xmm7,%xmm7 643 1.8 christos popl %edi 644 1.8 christos popl %esi 645 1.8 christos popl %ebx 646 1.8 christos popl %ebp 647 1.8 christos ret 648 1.8 christos .size aesni_ecb_encrypt,.-.L_aesni_ecb_encrypt_begin 649 1.8 christos .globl aesni_ccm64_encrypt_blocks 650 1.8 christos .type aesni_ccm64_encrypt_blocks,@function 651 1.8 christos .align 16 652 1.8 christos aesni_ccm64_encrypt_blocks: 653 1.8 christos .L_aesni_ccm64_encrypt_blocks_begin: 654 1.11 christos #ifdef __CET__ 655 1.11 christos 656 1.11 christos .byte 243,15,30,251 657 1.11 christos #endif 658 1.11 christos 659 1.8 christos pushl %ebp 660 1.8 christos pushl %ebx 661 1.8 christos pushl %esi 662 1.8 christos pushl %edi 663 1.8 christos movl 20(%esp),%esi 664 1.8 christos movl 24(%esp),%edi 665 1.8 christos movl 28(%esp),%eax 666 1.8 christos movl 32(%esp),%edx 667 1.8 christos movl 36(%esp),%ebx 668 1.8 christos movl 40(%esp),%ecx 669 1.8 christos movl %esp,%ebp 670 1.8 christos subl $60,%esp 671 1.8 christos andl $-16,%esp 672 1.8 christos movl %ebp,48(%esp) 673 1.8 christos movdqu (%ebx),%xmm7 674 1.8 christos movdqu (%ecx),%xmm3 675 1.8 christos movl 240(%edx),%ecx 676 1.8 christos movl $202182159,(%esp) 677 1.8 christos movl $134810123,4(%esp) 678 1.8 christos movl $67438087,8(%esp) 679 1.8 christos movl $66051,12(%esp) 680 1.8 christos movl $1,%ebx 681 1.8 christos xorl %ebp,%ebp 682 1.8 christos movl %ebx,16(%esp) 683 1.8 christos movl %ebp,20(%esp) 684 1.8 christos movl %ebp,24(%esp) 685 1.8 christos movl %ebp,28(%esp) 686 1.8 christos shll $4,%ecx 687 1.8 christos movl $16,%ebx 688 1.8 christos leal (%edx),%ebp 689 1.8 christos movdqa (%esp),%xmm5 690 1.8 christos movdqa %xmm7,%xmm2 691 1.8 christos leal 32(%edx,%ecx,1),%edx 692 1.8 christos subl %ecx,%ebx 693 1.8 christos .byte 102,15,56,0,253 694 1.8 christos .L030ccm64_enc_outer: 695 1.8 christos movups (%ebp),%xmm0 696 1.8 christos movl %ebx,%ecx 697 1.8 christos movups (%esi),%xmm6 698 1.8 christos xorps %xmm0,%xmm2 699 1.8 christos movups 16(%ebp),%xmm1 700 1.8 christos xorps %xmm6,%xmm0 701 1.8 christos xorps %xmm0,%xmm3 702 1.8 christos movups 32(%ebp),%xmm0 703 1.8 christos .L031ccm64_enc2_loop: 704 1.8 christos .byte 102,15,56,220,209 705 1.8 christos .byte 102,15,56,220,217 706 1.8 christos movups (%edx,%ecx,1),%xmm1 707 1.8 christos addl $32,%ecx 708 1.8 christos .byte 102,15,56,220,208 709 1.8 christos .byte 102,15,56,220,216 710 1.8 christos movups -16(%edx,%ecx,1),%xmm0 711 1.8 christos jnz .L031ccm64_enc2_loop 712 1.8 christos .byte 102,15,56,220,209 713 1.8 christos .byte 102,15,56,220,217 714 1.8 christos paddq 16(%esp),%xmm7 715 1.8 christos decl %eax 716 1.8 christos .byte 102,15,56,221,208 717 1.8 christos .byte 102,15,56,221,216 718 1.8 christos leal 16(%esi),%esi 719 1.8 christos xorps %xmm2,%xmm6 720 1.8 christos movdqa %xmm7,%xmm2 721 1.8 christos movups %xmm6,(%edi) 722 1.8 christos .byte 102,15,56,0,213 723 1.8 christos leal 16(%edi),%edi 724 1.8 christos jnz .L030ccm64_enc_outer 725 1.8 christos movl 48(%esp),%esp 726 1.8 christos movl 40(%esp),%edi 727 1.8 christos movups %xmm3,(%edi) 728 1.8 christos pxor %xmm0,%xmm0 729 1.8 christos pxor %xmm1,%xmm1 730 1.8 christos pxor %xmm2,%xmm2 731 1.8 christos pxor %xmm3,%xmm3 732 1.8 christos pxor %xmm4,%xmm4 733 1.8 christos pxor %xmm5,%xmm5 734 1.8 christos pxor %xmm6,%xmm6 735 1.8 christos pxor %xmm7,%xmm7 736 1.8 christos popl %edi 737 1.8 christos popl %esi 738 1.8 christos popl %ebx 739 1.8 christos popl %ebp 740 1.8 christos ret 741 1.8 christos .size aesni_ccm64_encrypt_blocks,.-.L_aesni_ccm64_encrypt_blocks_begin 742 1.8 christos .globl aesni_ccm64_decrypt_blocks 743 1.8 christos .type aesni_ccm64_decrypt_blocks,@function 744 1.8 christos .align 16 745 1.8 christos aesni_ccm64_decrypt_blocks: 746 1.8 christos .L_aesni_ccm64_decrypt_blocks_begin: 747 1.11 christos #ifdef __CET__ 748 1.11 christos 749 1.11 christos .byte 243,15,30,251 750 1.11 christos #endif 751 1.11 christos 752 1.8 christos pushl %ebp 753 1.8 christos pushl %ebx 754 1.8 christos pushl %esi 755 1.8 christos pushl %edi 756 1.8 christos movl 20(%esp),%esi 757 1.8 christos movl 24(%esp),%edi 758 1.8 christos movl 28(%esp),%eax 759 1.8 christos movl 32(%esp),%edx 760 1.8 christos movl 36(%esp),%ebx 761 1.8 christos movl 40(%esp),%ecx 762 1.8 christos movl %esp,%ebp 763 1.8 christos subl $60,%esp 764 1.8 christos andl $-16,%esp 765 1.8 christos movl %ebp,48(%esp) 766 1.8 christos movdqu (%ebx),%xmm7 767 1.8 christos movdqu (%ecx),%xmm3 768 1.8 christos movl 240(%edx),%ecx 769 1.8 christos movl $202182159,(%esp) 770 1.8 christos movl $134810123,4(%esp) 771 1.8 christos movl $67438087,8(%esp) 772 1.8 christos movl $66051,12(%esp) 773 1.8 christos movl $1,%ebx 774 1.8 christos xorl %ebp,%ebp 775 1.8 christos movl %ebx,16(%esp) 776 1.8 christos movl %ebp,20(%esp) 777 1.8 christos movl %ebp,24(%esp) 778 1.8 christos movl %ebp,28(%esp) 779 1.8 christos movdqa (%esp),%xmm5 780 1.8 christos movdqa %xmm7,%xmm2 781 1.8 christos movl %edx,%ebp 782 1.8 christos movl %ecx,%ebx 783 1.8 christos .byte 102,15,56,0,253 784 1.8 christos movups (%edx),%xmm0 785 1.8 christos movups 16(%edx),%xmm1 786 1.8 christos leal 32(%edx),%edx 787 1.8 christos xorps %xmm0,%xmm2 788 1.8 christos .L032enc1_loop_5: 789 1.8 christos .byte 102,15,56,220,209 790 1.8 christos decl %ecx 791 1.8 christos movups (%edx),%xmm1 792 1.8 christos leal 16(%edx),%edx 793 1.8 christos jnz .L032enc1_loop_5 794 1.8 christos .byte 102,15,56,221,209 795 1.8 christos shll $4,%ebx 796 1.8 christos movl $16,%ecx 797 1.8 christos movups (%esi),%xmm6 798 1.8 christos paddq 16(%esp),%xmm7 799 1.8 christos leal 16(%esi),%esi 800 1.8 christos subl %ebx,%ecx 801 1.8 christos leal 32(%ebp,%ebx,1),%edx 802 1.8 christos movl %ecx,%ebx 803 1.8 christos jmp .L033ccm64_dec_outer 804 1.8 christos .align 16 805 1.8 christos .L033ccm64_dec_outer: 806 1.8 christos xorps %xmm2,%xmm6 807 1.8 christos movdqa %xmm7,%xmm2 808 1.8 christos movups %xmm6,(%edi) 809 1.8 christos leal 16(%edi),%edi 810 1.8 christos .byte 102,15,56,0,213 811 1.8 christos subl $1,%eax 812 1.8 christos jz .L034ccm64_dec_break 813 1.8 christos movups (%ebp),%xmm0 814 1.8 christos movl %ebx,%ecx 815 1.8 christos movups 16(%ebp),%xmm1 816 1.8 christos xorps %xmm0,%xmm6 817 1.8 christos xorps %xmm0,%xmm2 818 1.8 christos xorps %xmm6,%xmm3 819 1.8 christos movups 32(%ebp),%xmm0 820 1.8 christos .L035ccm64_dec2_loop: 821 1.8 christos .byte 102,15,56,220,209 822 1.8 christos .byte 102,15,56,220,217 823 1.8 christos movups (%edx,%ecx,1),%xmm1 824 1.8 christos addl $32,%ecx 825 1.8 christos .byte 102,15,56,220,208 826 1.8 christos .byte 102,15,56,220,216 827 1.8 christos movups -16(%edx,%ecx,1),%xmm0 828 1.8 christos jnz .L035ccm64_dec2_loop 829 1.8 christos movups (%esi),%xmm6 830 1.8 christos paddq 16(%esp),%xmm7 831 1.8 christos .byte 102,15,56,220,209 832 1.8 christos .byte 102,15,56,220,217 833 1.8 christos .byte 102,15,56,221,208 834 1.8 christos .byte 102,15,56,221,216 835 1.8 christos leal 16(%esi),%esi 836 1.8 christos jmp .L033ccm64_dec_outer 837 1.8 christos .align 16 838 1.8 christos .L034ccm64_dec_break: 839 1.8 christos movl 240(%ebp),%ecx 840 1.8 christos movl %ebp,%edx 841 1.8 christos movups (%edx),%xmm0 842 1.8 christos movups 16(%edx),%xmm1 843 1.8 christos xorps %xmm0,%xmm6 844 1.8 christos leal 32(%edx),%edx 845 1.8 christos xorps %xmm6,%xmm3 846 1.8 christos .L036enc1_loop_6: 847 1.8 christos .byte 102,15,56,220,217 848 1.8 christos decl %ecx 849 1.8 christos movups (%edx),%xmm1 850 1.8 christos leal 16(%edx),%edx 851 1.8 christos jnz .L036enc1_loop_6 852 1.8 christos .byte 102,15,56,221,217 853 1.8 christos movl 48(%esp),%esp 854 1.8 christos movl 40(%esp),%edi 855 1.8 christos movups %xmm3,(%edi) 856 1.8 christos pxor %xmm0,%xmm0 857 1.8 christos pxor %xmm1,%xmm1 858 1.8 christos pxor %xmm2,%xmm2 859 1.8 christos pxor %xmm3,%xmm3 860 1.8 christos pxor %xmm4,%xmm4 861 1.8 christos pxor %xmm5,%xmm5 862 1.8 christos pxor %xmm6,%xmm6 863 1.8 christos pxor %xmm7,%xmm7 864 1.8 christos popl %edi 865 1.8 christos popl %esi 866 1.8 christos popl %ebx 867 1.8 christos popl %ebp 868 1.8 christos ret 869 1.8 christos .size aesni_ccm64_decrypt_blocks,.-.L_aesni_ccm64_decrypt_blocks_begin 870 1.8 christos .globl aesni_ctr32_encrypt_blocks 871 1.8 christos .type aesni_ctr32_encrypt_blocks,@function 872 1.8 christos .align 16 873 1.8 christos aesni_ctr32_encrypt_blocks: 874 1.8 christos .L_aesni_ctr32_encrypt_blocks_begin: 875 1.11 christos #ifdef __CET__ 876 1.11 christos 877 1.11 christos .byte 243,15,30,251 878 1.11 christos #endif 879 1.11 christos 880 1.8 christos pushl %ebp 881 1.8 christos pushl %ebx 882 1.8 christos pushl %esi 883 1.8 christos pushl %edi 884 1.8 christos movl 20(%esp),%esi 885 1.8 christos movl 24(%esp),%edi 886 1.8 christos movl 28(%esp),%eax 887 1.8 christos movl 32(%esp),%edx 888 1.8 christos movl 36(%esp),%ebx 889 1.8 christos movl %esp,%ebp 890 1.8 christos subl $88,%esp 891 1.8 christos andl $-16,%esp 892 1.8 christos movl %ebp,80(%esp) 893 1.8 christos cmpl $1,%eax 894 1.8 christos je .L037ctr32_one_shortcut 895 1.8 christos movdqu (%ebx),%xmm7 896 1.8 christos movl $202182159,(%esp) 897 1.8 christos movl $134810123,4(%esp) 898 1.8 christos movl $67438087,8(%esp) 899 1.8 christos movl $66051,12(%esp) 900 1.8 christos movl $6,%ecx 901 1.8 christos xorl %ebp,%ebp 902 1.8 christos movl %ecx,16(%esp) 903 1.8 christos movl %ecx,20(%esp) 904 1.8 christos movl %ecx,24(%esp) 905 1.8 christos movl %ebp,28(%esp) 906 1.8 christos .byte 102,15,58,22,251,3 907 1.8 christos .byte 102,15,58,34,253,3 908 1.8 christos movl 240(%edx),%ecx 909 1.8 christos bswap %ebx 910 1.8 christos pxor %xmm0,%xmm0 911 1.8 christos pxor %xmm1,%xmm1 912 1.8 christos movdqa (%esp),%xmm2 913 1.8 christos .byte 102,15,58,34,195,0 914 1.8 christos leal 3(%ebx),%ebp 915 1.8 christos .byte 102,15,58,34,205,0 916 1.8 christos incl %ebx 917 1.8 christos .byte 102,15,58,34,195,1 918 1.8 christos incl %ebp 919 1.8 christos .byte 102,15,58,34,205,1 920 1.8 christos incl %ebx 921 1.8 christos .byte 102,15,58,34,195,2 922 1.8 christos incl %ebp 923 1.8 christos .byte 102,15,58,34,205,2 924 1.8 christos movdqa %xmm0,48(%esp) 925 1.8 christos .byte 102,15,56,0,194 926 1.8 christos movdqu (%edx),%xmm6 927 1.8 christos movdqa %xmm1,64(%esp) 928 1.8 christos .byte 102,15,56,0,202 929 1.8 christos pshufd $192,%xmm0,%xmm2 930 1.8 christos pshufd $128,%xmm0,%xmm3 931 1.8 christos cmpl $6,%eax 932 1.8 christos jb .L038ctr32_tail 933 1.8 christos pxor %xmm6,%xmm7 934 1.8 christos shll $4,%ecx 935 1.8 christos movl $16,%ebx 936 1.8 christos movdqa %xmm7,32(%esp) 937 1.8 christos movl %edx,%ebp 938 1.8 christos subl %ecx,%ebx 939 1.8 christos leal 32(%edx,%ecx,1),%edx 940 1.8 christos subl $6,%eax 941 1.8 christos jmp .L039ctr32_loop6 942 1.8 christos .align 16 943 1.8 christos .L039ctr32_loop6: 944 1.8 christos pshufd $64,%xmm0,%xmm4 945 1.8 christos movdqa 32(%esp),%xmm0 946 1.8 christos pshufd $192,%xmm1,%xmm5 947 1.8 christos pxor %xmm0,%xmm2 948 1.8 christos pshufd $128,%xmm1,%xmm6 949 1.8 christos pxor %xmm0,%xmm3 950 1.8 christos pshufd $64,%xmm1,%xmm7 951 1.8 christos movups 16(%ebp),%xmm1 952 1.8 christos pxor %xmm0,%xmm4 953 1.8 christos pxor %xmm0,%xmm5 954 1.8 christos .byte 102,15,56,220,209 955 1.8 christos pxor %xmm0,%xmm6 956 1.8 christos pxor %xmm0,%xmm7 957 1.8 christos .byte 102,15,56,220,217 958 1.8 christos movups 32(%ebp),%xmm0 959 1.8 christos movl %ebx,%ecx 960 1.8 christos .byte 102,15,56,220,225 961 1.8 christos .byte 102,15,56,220,233 962 1.8 christos .byte 102,15,56,220,241 963 1.8 christos .byte 102,15,56,220,249 964 1.8 christos call .L_aesni_encrypt6_enter 965 1.8 christos movups (%esi),%xmm1 966 1.8 christos movups 16(%esi),%xmm0 967 1.8 christos xorps %xmm1,%xmm2 968 1.8 christos movups 32(%esi),%xmm1 969 1.8 christos xorps %xmm0,%xmm3 970 1.8 christos movups %xmm2,(%edi) 971 1.8 christos movdqa 16(%esp),%xmm0 972 1.8 christos xorps %xmm1,%xmm4 973 1.8 christos movdqa 64(%esp),%xmm1 974 1.8 christos movups %xmm3,16(%edi) 975 1.8 christos movups %xmm4,32(%edi) 976 1.8 christos paddd %xmm0,%xmm1 977 1.8 christos paddd 48(%esp),%xmm0 978 1.8 christos movdqa (%esp),%xmm2 979 1.8 christos movups 48(%esi),%xmm3 980 1.8 christos movups 64(%esi),%xmm4 981 1.8 christos xorps %xmm3,%xmm5 982 1.8 christos movups 80(%esi),%xmm3 983 1.8 christos leal 96(%esi),%esi 984 1.8 christos movdqa %xmm0,48(%esp) 985 1.8 christos .byte 102,15,56,0,194 986 1.8 christos xorps %xmm4,%xmm6 987 1.8 christos movups %xmm5,48(%edi) 988 1.8 christos xorps %xmm3,%xmm7 989 1.8 christos movdqa %xmm1,64(%esp) 990 1.8 christos .byte 102,15,56,0,202 991 1.8 christos movups %xmm6,64(%edi) 992 1.8 christos pshufd $192,%xmm0,%xmm2 993 1.8 christos movups %xmm7,80(%edi) 994 1.8 christos leal 96(%edi),%edi 995 1.8 christos pshufd $128,%xmm0,%xmm3 996 1.8 christos subl $6,%eax 997 1.8 christos jnc .L039ctr32_loop6 998 1.8 christos addl $6,%eax 999 1.8 christos jz .L040ctr32_ret 1000 1.8 christos movdqu (%ebp),%xmm7 1001 1.8 christos movl %ebp,%edx 1002 1.8 christos pxor 32(%esp),%xmm7 1003 1.8 christos movl 240(%ebp),%ecx 1004 1.8 christos .L038ctr32_tail: 1005 1.8 christos por %xmm7,%xmm2 1006 1.8 christos cmpl $2,%eax 1007 1.8 christos jb .L041ctr32_one 1008 1.8 christos pshufd $64,%xmm0,%xmm4 1009 1.8 christos por %xmm7,%xmm3 1010 1.8 christos je .L042ctr32_two 1011 1.8 christos pshufd $192,%xmm1,%xmm5 1012 1.8 christos por %xmm7,%xmm4 1013 1.8 christos cmpl $4,%eax 1014 1.8 christos jb .L043ctr32_three 1015 1.8 christos pshufd $128,%xmm1,%xmm6 1016 1.8 christos por %xmm7,%xmm5 1017 1.8 christos je .L044ctr32_four 1018 1.8 christos por %xmm7,%xmm6 1019 1.8 christos call _aesni_encrypt6 1020 1.8 christos movups (%esi),%xmm1 1021 1.8 christos movups 16(%esi),%xmm0 1022 1.8 christos xorps %xmm1,%xmm2 1023 1.8 christos movups 32(%esi),%xmm1 1024 1.8 christos xorps %xmm0,%xmm3 1025 1.8 christos movups 48(%esi),%xmm0 1026 1.8 christos xorps %xmm1,%xmm4 1027 1.8 christos movups 64(%esi),%xmm1 1028 1.8 christos xorps %xmm0,%xmm5 1029 1.8 christos movups %xmm2,(%edi) 1030 1.8 christos xorps %xmm1,%xmm6 1031 1.8 christos movups %xmm3,16(%edi) 1032 1.8 christos movups %xmm4,32(%edi) 1033 1.8 christos movups %xmm5,48(%edi) 1034 1.8 christos movups %xmm6,64(%edi) 1035 1.8 christos jmp .L040ctr32_ret 1036 1.8 christos .align 16 1037 1.8 christos .L037ctr32_one_shortcut: 1038 1.8 christos movups (%ebx),%xmm2 1039 1.8 christos movl 240(%edx),%ecx 1040 1.8 christos .L041ctr32_one: 1041 1.8 christos movups (%edx),%xmm0 1042 1.8 christos movups 16(%edx),%xmm1 1043 1.8 christos leal 32(%edx),%edx 1044 1.8 christos xorps %xmm0,%xmm2 1045 1.8 christos .L045enc1_loop_7: 1046 1.8 christos .byte 102,15,56,220,209 1047 1.8 christos decl %ecx 1048 1.8 christos movups (%edx),%xmm1 1049 1.8 christos leal 16(%edx),%edx 1050 1.8 christos jnz .L045enc1_loop_7 1051 1.8 christos .byte 102,15,56,221,209 1052 1.8 christos movups (%esi),%xmm6 1053 1.8 christos xorps %xmm2,%xmm6 1054 1.8 christos movups %xmm6,(%edi) 1055 1.8 christos jmp .L040ctr32_ret 1056 1.8 christos .align 16 1057 1.8 christos .L042ctr32_two: 1058 1.8 christos call _aesni_encrypt2 1059 1.8 christos movups (%esi),%xmm5 1060 1.8 christos movups 16(%esi),%xmm6 1061 1.8 christos xorps %xmm5,%xmm2 1062 1.8 christos xorps %xmm6,%xmm3 1063 1.8 christos movups %xmm2,(%edi) 1064 1.8 christos movups %xmm3,16(%edi) 1065 1.8 christos jmp .L040ctr32_ret 1066 1.8 christos .align 16 1067 1.8 christos .L043ctr32_three: 1068 1.8 christos call _aesni_encrypt3 1069 1.8 christos movups (%esi),%xmm5 1070 1.8 christos movups 16(%esi),%xmm6 1071 1.8 christos xorps %xmm5,%xmm2 1072 1.8 christos movups 32(%esi),%xmm7 1073 1.8 christos xorps %xmm6,%xmm3 1074 1.8 christos movups %xmm2,(%edi) 1075 1.8 christos xorps %xmm7,%xmm4 1076 1.8 christos movups %xmm3,16(%edi) 1077 1.8 christos movups %xmm4,32(%edi) 1078 1.8 christos jmp .L040ctr32_ret 1079 1.8 christos .align 16 1080 1.8 christos .L044ctr32_four: 1081 1.8 christos call _aesni_encrypt4 1082 1.8 christos movups (%esi),%xmm6 1083 1.8 christos movups 16(%esi),%xmm7 1084 1.8 christos movups 32(%esi),%xmm1 1085 1.8 christos xorps %xmm6,%xmm2 1086 1.8 christos movups 48(%esi),%xmm0 1087 1.8 christos xorps %xmm7,%xmm3 1088 1.8 christos movups %xmm2,(%edi) 1089 1.8 christos xorps %xmm1,%xmm4 1090 1.8 christos movups %xmm3,16(%edi) 1091 1.8 christos xorps %xmm0,%xmm5 1092 1.8 christos movups %xmm4,32(%edi) 1093 1.8 christos movups %xmm5,48(%edi) 1094 1.8 christos .L040ctr32_ret: 1095 1.8 christos pxor %xmm0,%xmm0 1096 1.8 christos pxor %xmm1,%xmm1 1097 1.8 christos pxor %xmm2,%xmm2 1098 1.8 christos pxor %xmm3,%xmm3 1099 1.8 christos pxor %xmm4,%xmm4 1100 1.8 christos movdqa %xmm0,32(%esp) 1101 1.8 christos pxor %xmm5,%xmm5 1102 1.8 christos movdqa %xmm0,48(%esp) 1103 1.8 christos pxor %xmm6,%xmm6 1104 1.8 christos movdqa %xmm0,64(%esp) 1105 1.8 christos pxor %xmm7,%xmm7 1106 1.8 christos movl 80(%esp),%esp 1107 1.8 christos popl %edi 1108 1.8 christos popl %esi 1109 1.8 christos popl %ebx 1110 1.8 christos popl %ebp 1111 1.8 christos ret 1112 1.8 christos .size aesni_ctr32_encrypt_blocks,.-.L_aesni_ctr32_encrypt_blocks_begin 1113 1.8 christos .globl aesni_xts_encrypt 1114 1.8 christos .type aesni_xts_encrypt,@function 1115 1.8 christos .align 16 1116 1.8 christos aesni_xts_encrypt: 1117 1.8 christos .L_aesni_xts_encrypt_begin: 1118 1.11 christos #ifdef __CET__ 1119 1.11 christos 1120 1.11 christos .byte 243,15,30,251 1121 1.11 christos #endif 1122 1.11 christos 1123 1.8 christos pushl %ebp 1124 1.8 christos pushl %ebx 1125 1.8 christos pushl %esi 1126 1.8 christos pushl %edi 1127 1.8 christos movl 36(%esp),%edx 1128 1.8 christos movl 40(%esp),%esi 1129 1.8 christos movl 240(%edx),%ecx 1130 1.8 christos movups (%esi),%xmm2 1131 1.8 christos movups (%edx),%xmm0 1132 1.8 christos movups 16(%edx),%xmm1 1133 1.8 christos leal 32(%edx),%edx 1134 1.8 christos xorps %xmm0,%xmm2 1135 1.8 christos .L046enc1_loop_8: 1136 1.8 christos .byte 102,15,56,220,209 1137 1.8 christos decl %ecx 1138 1.8 christos movups (%edx),%xmm1 1139 1.8 christos leal 16(%edx),%edx 1140 1.8 christos jnz .L046enc1_loop_8 1141 1.8 christos .byte 102,15,56,221,209 1142 1.8 christos movl 20(%esp),%esi 1143 1.8 christos movl 24(%esp),%edi 1144 1.8 christos movl 28(%esp),%eax 1145 1.8 christos movl 32(%esp),%edx 1146 1.8 christos movl %esp,%ebp 1147 1.8 christos subl $120,%esp 1148 1.8 christos movl 240(%edx),%ecx 1149 1.8 christos andl $-16,%esp 1150 1.8 christos movl $135,96(%esp) 1151 1.8 christos movl $0,100(%esp) 1152 1.8 christos movl $1,104(%esp) 1153 1.8 christos movl $0,108(%esp) 1154 1.8 christos movl %eax,112(%esp) 1155 1.8 christos movl %ebp,116(%esp) 1156 1.8 christos movdqa %xmm2,%xmm1 1157 1.8 christos pxor %xmm0,%xmm0 1158 1.8 christos movdqa 96(%esp),%xmm3 1159 1.8 christos pcmpgtd %xmm1,%xmm0 1160 1.8 christos andl $-16,%eax 1161 1.8 christos movl %edx,%ebp 1162 1.8 christos movl %ecx,%ebx 1163 1.8 christos subl $96,%eax 1164 1.8 christos jc .L047xts_enc_short 1165 1.8 christos shll $4,%ecx 1166 1.8 christos movl $16,%ebx 1167 1.8 christos subl %ecx,%ebx 1168 1.8 christos leal 32(%edx,%ecx,1),%edx 1169 1.8 christos jmp .L048xts_enc_loop6 1170 1.8 christos .align 16 1171 1.8 christos .L048xts_enc_loop6: 1172 1.8 christos pshufd $19,%xmm0,%xmm2 1173 1.8 christos pxor %xmm0,%xmm0 1174 1.8 christos movdqa %xmm1,(%esp) 1175 1.8 christos paddq %xmm1,%xmm1 1176 1.8 christos pand %xmm3,%xmm2 1177 1.8 christos pcmpgtd %xmm1,%xmm0 1178 1.8 christos pxor %xmm2,%xmm1 1179 1.8 christos pshufd $19,%xmm0,%xmm2 1180 1.8 christos pxor %xmm0,%xmm0 1181 1.8 christos movdqa %xmm1,16(%esp) 1182 1.8 christos paddq %xmm1,%xmm1 1183 1.8 christos pand %xmm3,%xmm2 1184 1.8 christos pcmpgtd %xmm1,%xmm0 1185 1.8 christos pxor %xmm2,%xmm1 1186 1.8 christos pshufd $19,%xmm0,%xmm2 1187 1.8 christos pxor %xmm0,%xmm0 1188 1.8 christos movdqa %xmm1,32(%esp) 1189 1.8 christos paddq %xmm1,%xmm1 1190 1.8 christos pand %xmm3,%xmm2 1191 1.8 christos pcmpgtd %xmm1,%xmm0 1192 1.8 christos pxor %xmm2,%xmm1 1193 1.8 christos pshufd $19,%xmm0,%xmm2 1194 1.8 christos pxor %xmm0,%xmm0 1195 1.8 christos movdqa %xmm1,48(%esp) 1196 1.8 christos paddq %xmm1,%xmm1 1197 1.8 christos pand %xmm3,%xmm2 1198 1.8 christos pcmpgtd %xmm1,%xmm0 1199 1.8 christos pxor %xmm2,%xmm1 1200 1.8 christos pshufd $19,%xmm0,%xmm7 1201 1.8 christos movdqa %xmm1,64(%esp) 1202 1.8 christos paddq %xmm1,%xmm1 1203 1.8 christos movups (%ebp),%xmm0 1204 1.8 christos pand %xmm3,%xmm7 1205 1.8 christos movups (%esi),%xmm2 1206 1.8 christos pxor %xmm1,%xmm7 1207 1.8 christos movl %ebx,%ecx 1208 1.8 christos movdqu 16(%esi),%xmm3 1209 1.8 christos xorps %xmm0,%xmm2 1210 1.8 christos movdqu 32(%esi),%xmm4 1211 1.8 christos pxor %xmm0,%xmm3 1212 1.8 christos movdqu 48(%esi),%xmm5 1213 1.8 christos pxor %xmm0,%xmm4 1214 1.8 christos movdqu 64(%esi),%xmm6 1215 1.8 christos pxor %xmm0,%xmm5 1216 1.8 christos movdqu 80(%esi),%xmm1 1217 1.8 christos pxor %xmm0,%xmm6 1218 1.8 christos leal 96(%esi),%esi 1219 1.8 christos pxor (%esp),%xmm2 1220 1.8 christos movdqa %xmm7,80(%esp) 1221 1.8 christos pxor %xmm1,%xmm7 1222 1.8 christos movups 16(%ebp),%xmm1 1223 1.8 christos pxor 16(%esp),%xmm3 1224 1.8 christos pxor 32(%esp),%xmm4 1225 1.8 christos .byte 102,15,56,220,209 1226 1.8 christos pxor 48(%esp),%xmm5 1227 1.8 christos pxor 64(%esp),%xmm6 1228 1.8 christos .byte 102,15,56,220,217 1229 1.8 christos pxor %xmm0,%xmm7 1230 1.8 christos movups 32(%ebp),%xmm0 1231 1.8 christos .byte 102,15,56,220,225 1232 1.8 christos .byte 102,15,56,220,233 1233 1.8 christos .byte 102,15,56,220,241 1234 1.8 christos .byte 102,15,56,220,249 1235 1.8 christos call .L_aesni_encrypt6_enter 1236 1.8 christos movdqa 80(%esp),%xmm1 1237 1.8 christos pxor %xmm0,%xmm0 1238 1.8 christos xorps (%esp),%xmm2 1239 1.8 christos pcmpgtd %xmm1,%xmm0 1240 1.8 christos xorps 16(%esp),%xmm3 1241 1.8 christos movups %xmm2,(%edi) 1242 1.8 christos xorps 32(%esp),%xmm4 1243 1.8 christos movups %xmm3,16(%edi) 1244 1.8 christos xorps 48(%esp),%xmm5 1245 1.8 christos movups %xmm4,32(%edi) 1246 1.8 christos xorps 64(%esp),%xmm6 1247 1.8 christos movups %xmm5,48(%edi) 1248 1.8 christos xorps %xmm1,%xmm7 1249 1.8 christos movups %xmm6,64(%edi) 1250 1.8 christos pshufd $19,%xmm0,%xmm2 1251 1.8 christos movups %xmm7,80(%edi) 1252 1.8 christos leal 96(%edi),%edi 1253 1.8 christos movdqa 96(%esp),%xmm3 1254 1.8 christos pxor %xmm0,%xmm0 1255 1.8 christos paddq %xmm1,%xmm1 1256 1.8 christos pand %xmm3,%xmm2 1257 1.8 christos pcmpgtd %xmm1,%xmm0 1258 1.8 christos pxor %xmm2,%xmm1 1259 1.8 christos subl $96,%eax 1260 1.8 christos jnc .L048xts_enc_loop6 1261 1.8 christos movl 240(%ebp),%ecx 1262 1.8 christos movl %ebp,%edx 1263 1.8 christos movl %ecx,%ebx 1264 1.8 christos .L047xts_enc_short: 1265 1.8 christos addl $96,%eax 1266 1.8 christos jz .L049xts_enc_done6x 1267 1.8 christos movdqa %xmm1,%xmm5 1268 1.8 christos cmpl $32,%eax 1269 1.8 christos jb .L050xts_enc_one 1270 1.8 christos pshufd $19,%xmm0,%xmm2 1271 1.8 christos pxor %xmm0,%xmm0 1272 1.8 christos paddq %xmm1,%xmm1 1273 1.8 christos pand %xmm3,%xmm2 1274 1.8 christos pcmpgtd %xmm1,%xmm0 1275 1.8 christos pxor %xmm2,%xmm1 1276 1.8 christos je .L051xts_enc_two 1277 1.8 christos pshufd $19,%xmm0,%xmm2 1278 1.8 christos pxor %xmm0,%xmm0 1279 1.8 christos movdqa %xmm1,%xmm6 1280 1.8 christos paddq %xmm1,%xmm1 1281 1.8 christos pand %xmm3,%xmm2 1282 1.8 christos pcmpgtd %xmm1,%xmm0 1283 1.8 christos pxor %xmm2,%xmm1 1284 1.8 christos cmpl $64,%eax 1285 1.8 christos jb .L052xts_enc_three 1286 1.8 christos pshufd $19,%xmm0,%xmm2 1287 1.8 christos pxor %xmm0,%xmm0 1288 1.8 christos movdqa %xmm1,%xmm7 1289 1.8 christos paddq %xmm1,%xmm1 1290 1.8 christos pand %xmm3,%xmm2 1291 1.8 christos pcmpgtd %xmm1,%xmm0 1292 1.8 christos pxor %xmm2,%xmm1 1293 1.8 christos movdqa %xmm5,(%esp) 1294 1.8 christos movdqa %xmm6,16(%esp) 1295 1.8 christos je .L053xts_enc_four 1296 1.8 christos movdqa %xmm7,32(%esp) 1297 1.8 christos pshufd $19,%xmm0,%xmm7 1298 1.8 christos movdqa %xmm1,48(%esp) 1299 1.8 christos paddq %xmm1,%xmm1 1300 1.8 christos pand %xmm3,%xmm7 1301 1.8 christos pxor %xmm1,%xmm7 1302 1.8 christos movdqu (%esi),%xmm2 1303 1.8 christos movdqu 16(%esi),%xmm3 1304 1.8 christos movdqu 32(%esi),%xmm4 1305 1.8 christos pxor (%esp),%xmm2 1306 1.8 christos movdqu 48(%esi),%xmm5 1307 1.8 christos pxor 16(%esp),%xmm3 1308 1.8 christos movdqu 64(%esi),%xmm6 1309 1.8 christos pxor 32(%esp),%xmm4 1310 1.8 christos leal 80(%esi),%esi 1311 1.8 christos pxor 48(%esp),%xmm5 1312 1.8 christos movdqa %xmm7,64(%esp) 1313 1.8 christos pxor %xmm7,%xmm6 1314 1.8 christos call _aesni_encrypt6 1315 1.8 christos movaps 64(%esp),%xmm1 1316 1.8 christos xorps (%esp),%xmm2 1317 1.8 christos xorps 16(%esp),%xmm3 1318 1.8 christos xorps 32(%esp),%xmm4 1319 1.8 christos movups %xmm2,(%edi) 1320 1.8 christos xorps 48(%esp),%xmm5 1321 1.8 christos movups %xmm3,16(%edi) 1322 1.8 christos xorps %xmm1,%xmm6 1323 1.8 christos movups %xmm4,32(%edi) 1324 1.8 christos movups %xmm5,48(%edi) 1325 1.8 christos movups %xmm6,64(%edi) 1326 1.8 christos leal 80(%edi),%edi 1327 1.8 christos jmp .L054xts_enc_done 1328 1.8 christos .align 16 1329 1.8 christos .L050xts_enc_one: 1330 1.8 christos movups (%esi),%xmm2 1331 1.8 christos leal 16(%esi),%esi 1332 1.8 christos xorps %xmm5,%xmm2 1333 1.8 christos movups (%edx),%xmm0 1334 1.8 christos movups 16(%edx),%xmm1 1335 1.8 christos leal 32(%edx),%edx 1336 1.8 christos xorps %xmm0,%xmm2 1337 1.8 christos .L055enc1_loop_9: 1338 1.8 christos .byte 102,15,56,220,209 1339 1.8 christos decl %ecx 1340 1.8 christos movups (%edx),%xmm1 1341 1.8 christos leal 16(%edx),%edx 1342 1.8 christos jnz .L055enc1_loop_9 1343 1.8 christos .byte 102,15,56,221,209 1344 1.8 christos xorps %xmm5,%xmm2 1345 1.8 christos movups %xmm2,(%edi) 1346 1.8 christos leal 16(%edi),%edi 1347 1.8 christos movdqa %xmm5,%xmm1 1348 1.8 christos jmp .L054xts_enc_done 1349 1.8 christos .align 16 1350 1.8 christos .L051xts_enc_two: 1351 1.8 christos movaps %xmm1,%xmm6 1352 1.8 christos movups (%esi),%xmm2 1353 1.8 christos movups 16(%esi),%xmm3 1354 1.8 christos leal 32(%esi),%esi 1355 1.8 christos xorps %xmm5,%xmm2 1356 1.8 christos xorps %xmm6,%xmm3 1357 1.8 christos call _aesni_encrypt2 1358 1.8 christos xorps %xmm5,%xmm2 1359 1.8 christos xorps %xmm6,%xmm3 1360 1.8 christos movups %xmm2,(%edi) 1361 1.8 christos movups %xmm3,16(%edi) 1362 1.8 christos leal 32(%edi),%edi 1363 1.8 christos movdqa %xmm6,%xmm1 1364 1.8 christos jmp .L054xts_enc_done 1365 1.8 christos .align 16 1366 1.8 christos .L052xts_enc_three: 1367 1.8 christos movaps %xmm1,%xmm7 1368 1.8 christos movups (%esi),%xmm2 1369 1.8 christos movups 16(%esi),%xmm3 1370 1.8 christos movups 32(%esi),%xmm4 1371 1.8 christos leal 48(%esi),%esi 1372 1.8 christos xorps %xmm5,%xmm2 1373 1.8 christos xorps %xmm6,%xmm3 1374 1.8 christos xorps %xmm7,%xmm4 1375 1.8 christos call _aesni_encrypt3 1376 1.8 christos xorps %xmm5,%xmm2 1377 1.8 christos xorps %xmm6,%xmm3 1378 1.8 christos xorps %xmm7,%xmm4 1379 1.8 christos movups %xmm2,(%edi) 1380 1.8 christos movups %xmm3,16(%edi) 1381 1.8 christos movups %xmm4,32(%edi) 1382 1.8 christos leal 48(%edi),%edi 1383 1.8 christos movdqa %xmm7,%xmm1 1384 1.8 christos jmp .L054xts_enc_done 1385 1.8 christos .align 16 1386 1.8 christos .L053xts_enc_four: 1387 1.8 christos movaps %xmm1,%xmm6 1388 1.8 christos movups (%esi),%xmm2 1389 1.8 christos movups 16(%esi),%xmm3 1390 1.8 christos movups 32(%esi),%xmm4 1391 1.8 christos xorps (%esp),%xmm2 1392 1.8 christos movups 48(%esi),%xmm5 1393 1.8 christos leal 64(%esi),%esi 1394 1.8 christos xorps 16(%esp),%xmm3 1395 1.8 christos xorps %xmm7,%xmm4 1396 1.8 christos xorps %xmm6,%xmm5 1397 1.8 christos call _aesni_encrypt4 1398 1.8 christos xorps (%esp),%xmm2 1399 1.8 christos xorps 16(%esp),%xmm3 1400 1.8 christos xorps %xmm7,%xmm4 1401 1.8 christos movups %xmm2,(%edi) 1402 1.8 christos xorps %xmm6,%xmm5 1403 1.8 christos movups %xmm3,16(%edi) 1404 1.8 christos movups %xmm4,32(%edi) 1405 1.8 christos movups %xmm5,48(%edi) 1406 1.8 christos leal 64(%edi),%edi 1407 1.8 christos movdqa %xmm6,%xmm1 1408 1.8 christos jmp .L054xts_enc_done 1409 1.8 christos .align 16 1410 1.8 christos .L049xts_enc_done6x: 1411 1.8 christos movl 112(%esp),%eax 1412 1.8 christos andl $15,%eax 1413 1.8 christos jz .L056xts_enc_ret 1414 1.8 christos movdqa %xmm1,%xmm5 1415 1.8 christos movl %eax,112(%esp) 1416 1.8 christos jmp .L057xts_enc_steal 1417 1.8 christos .align 16 1418 1.8 christos .L054xts_enc_done: 1419 1.8 christos movl 112(%esp),%eax 1420 1.8 christos pxor %xmm0,%xmm0 1421 1.8 christos andl $15,%eax 1422 1.8 christos jz .L056xts_enc_ret 1423 1.8 christos pcmpgtd %xmm1,%xmm0 1424 1.8 christos movl %eax,112(%esp) 1425 1.8 christos pshufd $19,%xmm0,%xmm5 1426 1.8 christos paddq %xmm1,%xmm1 1427 1.8 christos pand 96(%esp),%xmm5 1428 1.8 christos pxor %xmm1,%xmm5 1429 1.8 christos .L057xts_enc_steal: 1430 1.8 christos movzbl (%esi),%ecx 1431 1.8 christos movzbl -16(%edi),%edx 1432 1.8 christos leal 1(%esi),%esi 1433 1.8 christos movb %cl,-16(%edi) 1434 1.8 christos movb %dl,(%edi) 1435 1.8 christos leal 1(%edi),%edi 1436 1.8 christos subl $1,%eax 1437 1.8 christos jnz .L057xts_enc_steal 1438 1.8 christos subl 112(%esp),%edi 1439 1.8 christos movl %ebp,%edx 1440 1.8 christos movl %ebx,%ecx 1441 1.8 christos movups -16(%edi),%xmm2 1442 1.8 christos xorps %xmm5,%xmm2 1443 1.8 christos movups (%edx),%xmm0 1444 1.8 christos movups 16(%edx),%xmm1 1445 1.8 christos leal 32(%edx),%edx 1446 1.8 christos xorps %xmm0,%xmm2 1447 1.8 christos .L058enc1_loop_10: 1448 1.8 christos .byte 102,15,56,220,209 1449 1.8 christos decl %ecx 1450 1.8 christos movups (%edx),%xmm1 1451 1.8 christos leal 16(%edx),%edx 1452 1.8 christos jnz .L058enc1_loop_10 1453 1.8 christos .byte 102,15,56,221,209 1454 1.8 christos xorps %xmm5,%xmm2 1455 1.8 christos movups %xmm2,-16(%edi) 1456 1.8 christos .L056xts_enc_ret: 1457 1.8 christos pxor %xmm0,%xmm0 1458 1.8 christos pxor %xmm1,%xmm1 1459 1.8 christos pxor %xmm2,%xmm2 1460 1.8 christos movdqa %xmm0,(%esp) 1461 1.8 christos pxor %xmm3,%xmm3 1462 1.8 christos movdqa %xmm0,16(%esp) 1463 1.8 christos pxor %xmm4,%xmm4 1464 1.8 christos movdqa %xmm0,32(%esp) 1465 1.8 christos pxor %xmm5,%xmm5 1466 1.8 christos movdqa %xmm0,48(%esp) 1467 1.8 christos pxor %xmm6,%xmm6 1468 1.8 christos movdqa %xmm0,64(%esp) 1469 1.8 christos pxor %xmm7,%xmm7 1470 1.8 christos movdqa %xmm0,80(%esp) 1471 1.8 christos movl 116(%esp),%esp 1472 1.8 christos popl %edi 1473 1.8 christos popl %esi 1474 1.8 christos popl %ebx 1475 1.8 christos popl %ebp 1476 1.8 christos ret 1477 1.8 christos .size aesni_xts_encrypt,.-.L_aesni_xts_encrypt_begin 1478 1.8 christos .globl aesni_xts_decrypt 1479 1.8 christos .type aesni_xts_decrypt,@function 1480 1.8 christos .align 16 1481 1.8 christos aesni_xts_decrypt: 1482 1.8 christos .L_aesni_xts_decrypt_begin: 1483 1.11 christos #ifdef __CET__ 1484 1.11 christos 1485 1.11 christos .byte 243,15,30,251 1486 1.11 christos #endif 1487 1.11 christos 1488 1.8 christos pushl %ebp 1489 1.8 christos pushl %ebx 1490 1.8 christos pushl %esi 1491 1.8 christos pushl %edi 1492 1.8 christos movl 36(%esp),%edx 1493 1.8 christos movl 40(%esp),%esi 1494 1.8 christos movl 240(%edx),%ecx 1495 1.8 christos movups (%esi),%xmm2 1496 1.8 christos movups (%edx),%xmm0 1497 1.8 christos movups 16(%edx),%xmm1 1498 1.8 christos leal 32(%edx),%edx 1499 1.8 christos xorps %xmm0,%xmm2 1500 1.8 christos .L059enc1_loop_11: 1501 1.8 christos .byte 102,15,56,220,209 1502 1.8 christos decl %ecx 1503 1.8 christos movups (%edx),%xmm1 1504 1.8 christos leal 16(%edx),%edx 1505 1.8 christos jnz .L059enc1_loop_11 1506 1.8 christos .byte 102,15,56,221,209 1507 1.8 christos movl 20(%esp),%esi 1508 1.8 christos movl 24(%esp),%edi 1509 1.8 christos movl 28(%esp),%eax 1510 1.8 christos movl 32(%esp),%edx 1511 1.8 christos movl %esp,%ebp 1512 1.8 christos subl $120,%esp 1513 1.8 christos andl $-16,%esp 1514 1.8 christos xorl %ebx,%ebx 1515 1.8 christos testl $15,%eax 1516 1.8 christos setnz %bl 1517 1.8 christos shll $4,%ebx 1518 1.8 christos subl %ebx,%eax 1519 1.8 christos movl $135,96(%esp) 1520 1.8 christos movl $0,100(%esp) 1521 1.8 christos movl $1,104(%esp) 1522 1.8 christos movl $0,108(%esp) 1523 1.8 christos movl %eax,112(%esp) 1524 1.8 christos movl %ebp,116(%esp) 1525 1.8 christos movl 240(%edx),%ecx 1526 1.8 christos movl %edx,%ebp 1527 1.8 christos movl %ecx,%ebx 1528 1.8 christos movdqa %xmm2,%xmm1 1529 1.8 christos pxor %xmm0,%xmm0 1530 1.8 christos movdqa 96(%esp),%xmm3 1531 1.8 christos pcmpgtd %xmm1,%xmm0 1532 1.8 christos andl $-16,%eax 1533 1.8 christos subl $96,%eax 1534 1.8 christos jc .L060xts_dec_short 1535 1.8 christos shll $4,%ecx 1536 1.8 christos movl $16,%ebx 1537 1.8 christos subl %ecx,%ebx 1538 1.8 christos leal 32(%edx,%ecx,1),%edx 1539 1.8 christos jmp .L061xts_dec_loop6 1540 1.8 christos .align 16 1541 1.8 christos .L061xts_dec_loop6: 1542 1.8 christos pshufd $19,%xmm0,%xmm2 1543 1.8 christos pxor %xmm0,%xmm0 1544 1.8 christos movdqa %xmm1,(%esp) 1545 1.8 christos paddq %xmm1,%xmm1 1546 1.8 christos pand %xmm3,%xmm2 1547 1.8 christos pcmpgtd %xmm1,%xmm0 1548 1.8 christos pxor %xmm2,%xmm1 1549 1.8 christos pshufd $19,%xmm0,%xmm2 1550 1.8 christos pxor %xmm0,%xmm0 1551 1.8 christos movdqa %xmm1,16(%esp) 1552 1.8 christos paddq %xmm1,%xmm1 1553 1.8 christos pand %xmm3,%xmm2 1554 1.8 christos pcmpgtd %xmm1,%xmm0 1555 1.8 christos pxor %xmm2,%xmm1 1556 1.8 christos pshufd $19,%xmm0,%xmm2 1557 1.8 christos pxor %xmm0,%xmm0 1558 1.8 christos movdqa %xmm1,32(%esp) 1559 1.8 christos paddq %xmm1,%xmm1 1560 1.8 christos pand %xmm3,%xmm2 1561 1.8 christos pcmpgtd %xmm1,%xmm0 1562 1.8 christos pxor %xmm2,%xmm1 1563 1.8 christos pshufd $19,%xmm0,%xmm2 1564 1.8 christos pxor %xmm0,%xmm0 1565 1.8 christos movdqa %xmm1,48(%esp) 1566 1.8 christos paddq %xmm1,%xmm1 1567 1.8 christos pand %xmm3,%xmm2 1568 1.8 christos pcmpgtd %xmm1,%xmm0 1569 1.8 christos pxor %xmm2,%xmm1 1570 1.8 christos pshufd $19,%xmm0,%xmm7 1571 1.8 christos movdqa %xmm1,64(%esp) 1572 1.8 christos paddq %xmm1,%xmm1 1573 1.8 christos movups (%ebp),%xmm0 1574 1.8 christos pand %xmm3,%xmm7 1575 1.8 christos movups (%esi),%xmm2 1576 1.8 christos pxor %xmm1,%xmm7 1577 1.8 christos movl %ebx,%ecx 1578 1.8 christos movdqu 16(%esi),%xmm3 1579 1.8 christos xorps %xmm0,%xmm2 1580 1.8 christos movdqu 32(%esi),%xmm4 1581 1.8 christos pxor %xmm0,%xmm3 1582 1.8 christos movdqu 48(%esi),%xmm5 1583 1.8 christos pxor %xmm0,%xmm4 1584 1.8 christos movdqu 64(%esi),%xmm6 1585 1.8 christos pxor %xmm0,%xmm5 1586 1.8 christos movdqu 80(%esi),%xmm1 1587 1.8 christos pxor %xmm0,%xmm6 1588 1.8 christos leal 96(%esi),%esi 1589 1.8 christos pxor (%esp),%xmm2 1590 1.8 christos movdqa %xmm7,80(%esp) 1591 1.8 christos pxor %xmm1,%xmm7 1592 1.8 christos movups 16(%ebp),%xmm1 1593 1.8 christos pxor 16(%esp),%xmm3 1594 1.8 christos pxor 32(%esp),%xmm4 1595 1.8 christos .byte 102,15,56,222,209 1596 1.8 christos pxor 48(%esp),%xmm5 1597 1.8 christos pxor 64(%esp),%xmm6 1598 1.8 christos .byte 102,15,56,222,217 1599 1.8 christos pxor %xmm0,%xmm7 1600 1.8 christos movups 32(%ebp),%xmm0 1601 1.8 christos .byte 102,15,56,222,225 1602 1.8 christos .byte 102,15,56,222,233 1603 1.8 christos .byte 102,15,56,222,241 1604 1.8 christos .byte 102,15,56,222,249 1605 1.8 christos call .L_aesni_decrypt6_enter 1606 1.8 christos movdqa 80(%esp),%xmm1 1607 1.8 christos pxor %xmm0,%xmm0 1608 1.8 christos xorps (%esp),%xmm2 1609 1.8 christos pcmpgtd %xmm1,%xmm0 1610 1.8 christos xorps 16(%esp),%xmm3 1611 1.8 christos movups %xmm2,(%edi) 1612 1.8 christos xorps 32(%esp),%xmm4 1613 1.8 christos movups %xmm3,16(%edi) 1614 1.8 christos xorps 48(%esp),%xmm5 1615 1.8 christos movups %xmm4,32(%edi) 1616 1.8 christos xorps 64(%esp),%xmm6 1617 1.8 christos movups %xmm5,48(%edi) 1618 1.8 christos xorps %xmm1,%xmm7 1619 1.8 christos movups %xmm6,64(%edi) 1620 1.8 christos pshufd $19,%xmm0,%xmm2 1621 1.8 christos movups %xmm7,80(%edi) 1622 1.8 christos leal 96(%edi),%edi 1623 1.8 christos movdqa 96(%esp),%xmm3 1624 1.8 christos pxor %xmm0,%xmm0 1625 1.8 christos paddq %xmm1,%xmm1 1626 1.8 christos pand %xmm3,%xmm2 1627 1.8 christos pcmpgtd %xmm1,%xmm0 1628 1.8 christos pxor %xmm2,%xmm1 1629 1.8 christos subl $96,%eax 1630 1.8 christos jnc .L061xts_dec_loop6 1631 1.8 christos movl 240(%ebp),%ecx 1632 1.8 christos movl %ebp,%edx 1633 1.8 christos movl %ecx,%ebx 1634 1.8 christos .L060xts_dec_short: 1635 1.8 christos addl $96,%eax 1636 1.8 christos jz .L062xts_dec_done6x 1637 1.8 christos movdqa %xmm1,%xmm5 1638 1.8 christos cmpl $32,%eax 1639 1.8 christos jb .L063xts_dec_one 1640 1.8 christos pshufd $19,%xmm0,%xmm2 1641 1.8 christos pxor %xmm0,%xmm0 1642 1.8 christos paddq %xmm1,%xmm1 1643 1.8 christos pand %xmm3,%xmm2 1644 1.8 christos pcmpgtd %xmm1,%xmm0 1645 1.8 christos pxor %xmm2,%xmm1 1646 1.8 christos je .L064xts_dec_two 1647 1.8 christos pshufd $19,%xmm0,%xmm2 1648 1.8 christos pxor %xmm0,%xmm0 1649 1.8 christos movdqa %xmm1,%xmm6 1650 1.8 christos paddq %xmm1,%xmm1 1651 1.8 christos pand %xmm3,%xmm2 1652 1.8 christos pcmpgtd %xmm1,%xmm0 1653 1.8 christos pxor %xmm2,%xmm1 1654 1.8 christos cmpl $64,%eax 1655 1.8 christos jb .L065xts_dec_three 1656 1.8 christos pshufd $19,%xmm0,%xmm2 1657 1.8 christos pxor %xmm0,%xmm0 1658 1.8 christos movdqa %xmm1,%xmm7 1659 1.8 christos paddq %xmm1,%xmm1 1660 1.8 christos pand %xmm3,%xmm2 1661 1.8 christos pcmpgtd %xmm1,%xmm0 1662 1.8 christos pxor %xmm2,%xmm1 1663 1.8 christos movdqa %xmm5,(%esp) 1664 1.8 christos movdqa %xmm6,16(%esp) 1665 1.8 christos je .L066xts_dec_four 1666 1.8 christos movdqa %xmm7,32(%esp) 1667 1.8 christos pshufd $19,%xmm0,%xmm7 1668 1.8 christos movdqa %xmm1,48(%esp) 1669 1.8 christos paddq %xmm1,%xmm1 1670 1.8 christos pand %xmm3,%xmm7 1671 1.8 christos pxor %xmm1,%xmm7 1672 1.8 christos movdqu (%esi),%xmm2 1673 1.8 christos movdqu 16(%esi),%xmm3 1674 1.8 christos movdqu 32(%esi),%xmm4 1675 1.8 christos pxor (%esp),%xmm2 1676 1.8 christos movdqu 48(%esi),%xmm5 1677 1.8 christos pxor 16(%esp),%xmm3 1678 1.8 christos movdqu 64(%esi),%xmm6 1679 1.8 christos pxor 32(%esp),%xmm4 1680 1.8 christos leal 80(%esi),%esi 1681 1.8 christos pxor 48(%esp),%xmm5 1682 1.8 christos movdqa %xmm7,64(%esp) 1683 1.8 christos pxor %xmm7,%xmm6 1684 1.8 christos call _aesni_decrypt6 1685 1.8 christos movaps 64(%esp),%xmm1 1686 1.8 christos xorps (%esp),%xmm2 1687 1.8 christos xorps 16(%esp),%xmm3 1688 1.8 christos xorps 32(%esp),%xmm4 1689 1.8 christos movups %xmm2,(%edi) 1690 1.8 christos xorps 48(%esp),%xmm5 1691 1.8 christos movups %xmm3,16(%edi) 1692 1.8 christos xorps %xmm1,%xmm6 1693 1.8 christos movups %xmm4,32(%edi) 1694 1.8 christos movups %xmm5,48(%edi) 1695 1.8 christos movups %xmm6,64(%edi) 1696 1.8 christos leal 80(%edi),%edi 1697 1.8 christos jmp .L067xts_dec_done 1698 1.8 christos .align 16 1699 1.8 christos .L063xts_dec_one: 1700 1.8 christos movups (%esi),%xmm2 1701 1.8 christos leal 16(%esi),%esi 1702 1.8 christos xorps %xmm5,%xmm2 1703 1.8 christos movups (%edx),%xmm0 1704 1.8 christos movups 16(%edx),%xmm1 1705 1.8 christos leal 32(%edx),%edx 1706 1.8 christos xorps %xmm0,%xmm2 1707 1.8 christos .L068dec1_loop_12: 1708 1.8 christos .byte 102,15,56,222,209 1709 1.8 christos decl %ecx 1710 1.8 christos movups (%edx),%xmm1 1711 1.8 christos leal 16(%edx),%edx 1712 1.8 christos jnz .L068dec1_loop_12 1713 1.8 christos .byte 102,15,56,223,209 1714 1.8 christos xorps %xmm5,%xmm2 1715 1.8 christos movups %xmm2,(%edi) 1716 1.8 christos leal 16(%edi),%edi 1717 1.8 christos movdqa %xmm5,%xmm1 1718 1.8 christos jmp .L067xts_dec_done 1719 1.8 christos .align 16 1720 1.8 christos .L064xts_dec_two: 1721 1.8 christos movaps %xmm1,%xmm6 1722 1.8 christos movups (%esi),%xmm2 1723 1.8 christos movups 16(%esi),%xmm3 1724 1.8 christos leal 32(%esi),%esi 1725 1.8 christos xorps %xmm5,%xmm2 1726 1.8 christos xorps %xmm6,%xmm3 1727 1.8 christos call _aesni_decrypt2 1728 1.8 christos xorps %xmm5,%xmm2 1729 1.8 christos xorps %xmm6,%xmm3 1730 1.8 christos movups %xmm2,(%edi) 1731 1.8 christos movups %xmm3,16(%edi) 1732 1.8 christos leal 32(%edi),%edi 1733 1.8 christos movdqa %xmm6,%xmm1 1734 1.8 christos jmp .L067xts_dec_done 1735 1.8 christos .align 16 1736 1.8 christos .L065xts_dec_three: 1737 1.8 christos movaps %xmm1,%xmm7 1738 1.8 christos movups (%esi),%xmm2 1739 1.8 christos movups 16(%esi),%xmm3 1740 1.8 christos movups 32(%esi),%xmm4 1741 1.8 christos leal 48(%esi),%esi 1742 1.8 christos xorps %xmm5,%xmm2 1743 1.8 christos xorps %xmm6,%xmm3 1744 1.8 christos xorps %xmm7,%xmm4 1745 1.8 christos call _aesni_decrypt3 1746 1.8 christos xorps %xmm5,%xmm2 1747 1.8 christos xorps %xmm6,%xmm3 1748 1.8 christos xorps %xmm7,%xmm4 1749 1.8 christos movups %xmm2,(%edi) 1750 1.8 christos movups %xmm3,16(%edi) 1751 1.8 christos movups %xmm4,32(%edi) 1752 1.8 christos leal 48(%edi),%edi 1753 1.8 christos movdqa %xmm7,%xmm1 1754 1.8 christos jmp .L067xts_dec_done 1755 1.8 christos .align 16 1756 1.8 christos .L066xts_dec_four: 1757 1.8 christos movaps %xmm1,%xmm6 1758 1.8 christos movups (%esi),%xmm2 1759 1.8 christos movups 16(%esi),%xmm3 1760 1.8 christos movups 32(%esi),%xmm4 1761 1.8 christos xorps (%esp),%xmm2 1762 1.8 christos movups 48(%esi),%xmm5 1763 1.8 christos leal 64(%esi),%esi 1764 1.8 christos xorps 16(%esp),%xmm3 1765 1.8 christos xorps %xmm7,%xmm4 1766 1.8 christos xorps %xmm6,%xmm5 1767 1.8 christos call _aesni_decrypt4 1768 1.8 christos xorps (%esp),%xmm2 1769 1.8 christos xorps 16(%esp),%xmm3 1770 1.8 christos xorps %xmm7,%xmm4 1771 1.8 christos movups %xmm2,(%edi) 1772 1.8 christos xorps %xmm6,%xmm5 1773 1.8 christos movups %xmm3,16(%edi) 1774 1.8 christos movups %xmm4,32(%edi) 1775 1.8 christos movups %xmm5,48(%edi) 1776 1.8 christos leal 64(%edi),%edi 1777 1.8 christos movdqa %xmm6,%xmm1 1778 1.8 christos jmp .L067xts_dec_done 1779 1.8 christos .align 16 1780 1.8 christos .L062xts_dec_done6x: 1781 1.8 christos movl 112(%esp),%eax 1782 1.8 christos andl $15,%eax 1783 1.8 christos jz .L069xts_dec_ret 1784 1.8 christos movl %eax,112(%esp) 1785 1.8 christos jmp .L070xts_dec_only_one_more 1786 1.8 christos .align 16 1787 1.8 christos .L067xts_dec_done: 1788 1.8 christos movl 112(%esp),%eax 1789 1.8 christos pxor %xmm0,%xmm0 1790 1.8 christos andl $15,%eax 1791 1.8 christos jz .L069xts_dec_ret 1792 1.8 christos pcmpgtd %xmm1,%xmm0 1793 1.8 christos movl %eax,112(%esp) 1794 1.8 christos pshufd $19,%xmm0,%xmm2 1795 1.8 christos pxor %xmm0,%xmm0 1796 1.8 christos movdqa 96(%esp),%xmm3 1797 1.8 christos paddq %xmm1,%xmm1 1798 1.8 christos pand %xmm3,%xmm2 1799 1.8 christos pcmpgtd %xmm1,%xmm0 1800 1.8 christos pxor %xmm2,%xmm1 1801 1.8 christos .L070xts_dec_only_one_more: 1802 1.8 christos pshufd $19,%xmm0,%xmm5 1803 1.8 christos movdqa %xmm1,%xmm6 1804 1.8 christos paddq %xmm1,%xmm1 1805 1.8 christos pand %xmm3,%xmm5 1806 1.8 christos pxor %xmm1,%xmm5 1807 1.8 christos movl %ebp,%edx 1808 1.8 christos movl %ebx,%ecx 1809 1.8 christos movups (%esi),%xmm2 1810 1.8 christos xorps %xmm5,%xmm2 1811 1.8 christos movups (%edx),%xmm0 1812 1.8 christos movups 16(%edx),%xmm1 1813 1.8 christos leal 32(%edx),%edx 1814 1.8 christos xorps %xmm0,%xmm2 1815 1.8 christos .L071dec1_loop_13: 1816 1.8 christos .byte 102,15,56,222,209 1817 1.8 christos decl %ecx 1818 1.8 christos movups (%edx),%xmm1 1819 1.8 christos leal 16(%edx),%edx 1820 1.8 christos jnz .L071dec1_loop_13 1821 1.8 christos .byte 102,15,56,223,209 1822 1.8 christos xorps %xmm5,%xmm2 1823 1.8 christos movups %xmm2,(%edi) 1824 1.8 christos .L072xts_dec_steal: 1825 1.8 christos movzbl 16(%esi),%ecx 1826 1.8 christos movzbl (%edi),%edx 1827 1.8 christos leal 1(%esi),%esi 1828 1.8 christos movb %cl,(%edi) 1829 1.8 christos movb %dl,16(%edi) 1830 1.8 christos leal 1(%edi),%edi 1831 1.8 christos subl $1,%eax 1832 1.8 christos jnz .L072xts_dec_steal 1833 1.8 christos subl 112(%esp),%edi 1834 1.8 christos movl %ebp,%edx 1835 1.8 christos movl %ebx,%ecx 1836 1.8 christos movups (%edi),%xmm2 1837 1.8 christos xorps %xmm6,%xmm2 1838 1.8 christos movups (%edx),%xmm0 1839 1.8 christos movups 16(%edx),%xmm1 1840 1.8 christos leal 32(%edx),%edx 1841 1.8 christos xorps %xmm0,%xmm2 1842 1.8 christos .L073dec1_loop_14: 1843 1.8 christos .byte 102,15,56,222,209 1844 1.8 christos decl %ecx 1845 1.8 christos movups (%edx),%xmm1 1846 1.8 christos leal 16(%edx),%edx 1847 1.8 christos jnz .L073dec1_loop_14 1848 1.8 christos .byte 102,15,56,223,209 1849 1.8 christos xorps %xmm6,%xmm2 1850 1.8 christos movups %xmm2,(%edi) 1851 1.8 christos .L069xts_dec_ret: 1852 1.8 christos pxor %xmm0,%xmm0 1853 1.8 christos pxor %xmm1,%xmm1 1854 1.8 christos pxor %xmm2,%xmm2 1855 1.8 christos movdqa %xmm0,(%esp) 1856 1.8 christos pxor %xmm3,%xmm3 1857 1.8 christos movdqa %xmm0,16(%esp) 1858 1.8 christos pxor %xmm4,%xmm4 1859 1.8 christos movdqa %xmm0,32(%esp) 1860 1.8 christos pxor %xmm5,%xmm5 1861 1.8 christos movdqa %xmm0,48(%esp) 1862 1.8 christos pxor %xmm6,%xmm6 1863 1.8 christos movdqa %xmm0,64(%esp) 1864 1.8 christos pxor %xmm7,%xmm7 1865 1.8 christos movdqa %xmm0,80(%esp) 1866 1.8 christos movl 116(%esp),%esp 1867 1.8 christos popl %edi 1868 1.8 christos popl %esi 1869 1.8 christos popl %ebx 1870 1.8 christos popl %ebp 1871 1.8 christos ret 1872 1.8 christos .size aesni_xts_decrypt,.-.L_aesni_xts_decrypt_begin 1873 1.9 christos .globl aesni_ocb_encrypt 1874 1.9 christos .type aesni_ocb_encrypt,@function 1875 1.9 christos .align 16 1876 1.9 christos aesni_ocb_encrypt: 1877 1.9 christos .L_aesni_ocb_encrypt_begin: 1878 1.11 christos #ifdef __CET__ 1879 1.11 christos 1880 1.11 christos .byte 243,15,30,251 1881 1.11 christos #endif 1882 1.11 christos 1883 1.9 christos pushl %ebp 1884 1.9 christos pushl %ebx 1885 1.9 christos pushl %esi 1886 1.9 christos pushl %edi 1887 1.9 christos movl 40(%esp),%ecx 1888 1.9 christos movl 48(%esp),%ebx 1889 1.9 christos movl 20(%esp),%esi 1890 1.9 christos movl 24(%esp),%edi 1891 1.9 christos movl 28(%esp),%eax 1892 1.9 christos movl 32(%esp),%edx 1893 1.9 christos movdqu (%ecx),%xmm0 1894 1.9 christos movl 36(%esp),%ebp 1895 1.9 christos movdqu (%ebx),%xmm1 1896 1.9 christos movl 44(%esp),%ebx 1897 1.9 christos movl %esp,%ecx 1898 1.9 christos subl $132,%esp 1899 1.9 christos andl $-16,%esp 1900 1.9 christos subl %esi,%edi 1901 1.9 christos shll $4,%eax 1902 1.9 christos leal -96(%esi,%eax,1),%eax 1903 1.9 christos movl %edi,120(%esp) 1904 1.9 christos movl %eax,124(%esp) 1905 1.9 christos movl %ecx,128(%esp) 1906 1.9 christos movl 240(%edx),%ecx 1907 1.9 christos testl $1,%ebp 1908 1.9 christos jnz .L074odd 1909 1.9 christos bsfl %ebp,%eax 1910 1.9 christos addl $1,%ebp 1911 1.9 christos shll $4,%eax 1912 1.9 christos movdqu (%ebx,%eax,1),%xmm7 1913 1.9 christos movl %edx,%eax 1914 1.9 christos movdqu (%esi),%xmm2 1915 1.9 christos leal 16(%esi),%esi 1916 1.9 christos pxor %xmm0,%xmm7 1917 1.9 christos pxor %xmm2,%xmm1 1918 1.9 christos pxor %xmm7,%xmm2 1919 1.9 christos movdqa %xmm1,%xmm6 1920 1.9 christos movups (%edx),%xmm0 1921 1.9 christos movups 16(%edx),%xmm1 1922 1.9 christos leal 32(%edx),%edx 1923 1.9 christos xorps %xmm0,%xmm2 1924 1.9 christos .L075enc1_loop_15: 1925 1.9 christos .byte 102,15,56,220,209 1926 1.9 christos decl %ecx 1927 1.9 christos movups (%edx),%xmm1 1928 1.9 christos leal 16(%edx),%edx 1929 1.9 christos jnz .L075enc1_loop_15 1930 1.9 christos .byte 102,15,56,221,209 1931 1.9 christos xorps %xmm7,%xmm2 1932 1.9 christos movdqa %xmm7,%xmm0 1933 1.9 christos movdqa %xmm6,%xmm1 1934 1.9 christos movups %xmm2,-16(%edi,%esi,1) 1935 1.9 christos movl 240(%eax),%ecx 1936 1.9 christos movl %eax,%edx 1937 1.9 christos movl 124(%esp),%eax 1938 1.9 christos .L074odd: 1939 1.9 christos shll $4,%ecx 1940 1.9 christos movl $16,%edi 1941 1.9 christos subl %ecx,%edi 1942 1.9 christos movl %edx,112(%esp) 1943 1.9 christos leal 32(%edx,%ecx,1),%edx 1944 1.9 christos movl %edi,116(%esp) 1945 1.9 christos cmpl %eax,%esi 1946 1.9 christos ja .L076short 1947 1.9 christos jmp .L077grandloop 1948 1.9 christos .align 32 1949 1.9 christos .L077grandloop: 1950 1.9 christos leal 1(%ebp),%ecx 1951 1.9 christos leal 3(%ebp),%eax 1952 1.9 christos leal 5(%ebp),%edi 1953 1.9 christos addl $6,%ebp 1954 1.9 christos bsfl %ecx,%ecx 1955 1.9 christos bsfl %eax,%eax 1956 1.9 christos bsfl %edi,%edi 1957 1.9 christos shll $4,%ecx 1958 1.9 christos shll $4,%eax 1959 1.9 christos shll $4,%edi 1960 1.9 christos movdqu (%ebx),%xmm2 1961 1.9 christos movdqu (%ebx,%ecx,1),%xmm3 1962 1.9 christos movl 116(%esp),%ecx 1963 1.9 christos movdqa %xmm2,%xmm4 1964 1.9 christos movdqu (%ebx,%eax,1),%xmm5 1965 1.9 christos movdqa %xmm2,%xmm6 1966 1.9 christos movdqu (%ebx,%edi,1),%xmm7 1967 1.9 christos pxor %xmm0,%xmm2 1968 1.9 christos pxor %xmm2,%xmm3 1969 1.9 christos movdqa %xmm2,(%esp) 1970 1.9 christos pxor %xmm3,%xmm4 1971 1.9 christos movdqa %xmm3,16(%esp) 1972 1.9 christos pxor %xmm4,%xmm5 1973 1.9 christos movdqa %xmm4,32(%esp) 1974 1.9 christos pxor %xmm5,%xmm6 1975 1.9 christos movdqa %xmm5,48(%esp) 1976 1.9 christos pxor %xmm6,%xmm7 1977 1.9 christos movdqa %xmm6,64(%esp) 1978 1.9 christos movdqa %xmm7,80(%esp) 1979 1.9 christos movups -48(%edx,%ecx,1),%xmm0 1980 1.9 christos movdqu (%esi),%xmm2 1981 1.9 christos movdqu 16(%esi),%xmm3 1982 1.9 christos movdqu 32(%esi),%xmm4 1983 1.9 christos movdqu 48(%esi),%xmm5 1984 1.9 christos movdqu 64(%esi),%xmm6 1985 1.9 christos movdqu 80(%esi),%xmm7 1986 1.9 christos leal 96(%esi),%esi 1987 1.9 christos pxor %xmm2,%xmm1 1988 1.9 christos pxor %xmm0,%xmm2 1989 1.9 christos pxor %xmm3,%xmm1 1990 1.9 christos pxor %xmm0,%xmm3 1991 1.9 christos pxor %xmm4,%xmm1 1992 1.9 christos pxor %xmm0,%xmm4 1993 1.9 christos pxor %xmm5,%xmm1 1994 1.9 christos pxor %xmm0,%xmm5 1995 1.9 christos pxor %xmm6,%xmm1 1996 1.9 christos pxor %xmm0,%xmm6 1997 1.9 christos pxor %xmm7,%xmm1 1998 1.9 christos pxor %xmm0,%xmm7 1999 1.9 christos movdqa %xmm1,96(%esp) 2000 1.9 christos movups -32(%edx,%ecx,1),%xmm1 2001 1.9 christos pxor (%esp),%xmm2 2002 1.9 christos pxor 16(%esp),%xmm3 2003 1.9 christos pxor 32(%esp),%xmm4 2004 1.9 christos pxor 48(%esp),%xmm5 2005 1.9 christos pxor 64(%esp),%xmm6 2006 1.9 christos pxor 80(%esp),%xmm7 2007 1.9 christos movups -16(%edx,%ecx,1),%xmm0 2008 1.9 christos .byte 102,15,56,220,209 2009 1.9 christos .byte 102,15,56,220,217 2010 1.9 christos .byte 102,15,56,220,225 2011 1.9 christos .byte 102,15,56,220,233 2012 1.9 christos .byte 102,15,56,220,241 2013 1.9 christos .byte 102,15,56,220,249 2014 1.9 christos movl 120(%esp),%edi 2015 1.9 christos movl 124(%esp),%eax 2016 1.9 christos call .L_aesni_encrypt6_enter 2017 1.9 christos movdqa 80(%esp),%xmm0 2018 1.9 christos pxor (%esp),%xmm2 2019 1.9 christos pxor 16(%esp),%xmm3 2020 1.9 christos pxor 32(%esp),%xmm4 2021 1.9 christos pxor 48(%esp),%xmm5 2022 1.9 christos pxor 64(%esp),%xmm6 2023 1.9 christos pxor %xmm0,%xmm7 2024 1.9 christos movdqa 96(%esp),%xmm1 2025 1.9 christos movdqu %xmm2,-96(%edi,%esi,1) 2026 1.9 christos movdqu %xmm3,-80(%edi,%esi,1) 2027 1.9 christos movdqu %xmm4,-64(%edi,%esi,1) 2028 1.9 christos movdqu %xmm5,-48(%edi,%esi,1) 2029 1.9 christos movdqu %xmm6,-32(%edi,%esi,1) 2030 1.9 christos movdqu %xmm7,-16(%edi,%esi,1) 2031 1.9 christos cmpl %eax,%esi 2032 1.11 christos jbe .L077grandloop 2033 1.9 christos .L076short: 2034 1.9 christos addl $96,%eax 2035 1.9 christos subl %esi,%eax 2036 1.9 christos jz .L078done 2037 1.9 christos cmpl $32,%eax 2038 1.9 christos jb .L079one 2039 1.9 christos je .L080two 2040 1.9 christos cmpl $64,%eax 2041 1.9 christos jb .L081three 2042 1.9 christos je .L082four 2043 1.9 christos leal 1(%ebp),%ecx 2044 1.9 christos leal 3(%ebp),%eax 2045 1.9 christos bsfl %ecx,%ecx 2046 1.9 christos bsfl %eax,%eax 2047 1.9 christos shll $4,%ecx 2048 1.9 christos shll $4,%eax 2049 1.9 christos movdqu (%ebx),%xmm2 2050 1.9 christos movdqu (%ebx,%ecx,1),%xmm3 2051 1.9 christos movl 116(%esp),%ecx 2052 1.9 christos movdqa %xmm2,%xmm4 2053 1.9 christos movdqu (%ebx,%eax,1),%xmm5 2054 1.9 christos movdqa %xmm2,%xmm6 2055 1.9 christos pxor %xmm0,%xmm2 2056 1.9 christos pxor %xmm2,%xmm3 2057 1.9 christos movdqa %xmm2,(%esp) 2058 1.9 christos pxor %xmm3,%xmm4 2059 1.9 christos movdqa %xmm3,16(%esp) 2060 1.9 christos pxor %xmm4,%xmm5 2061 1.9 christos movdqa %xmm4,32(%esp) 2062 1.9 christos pxor %xmm5,%xmm6 2063 1.9 christos movdqa %xmm5,48(%esp) 2064 1.9 christos pxor %xmm6,%xmm7 2065 1.9 christos movdqa %xmm6,64(%esp) 2066 1.9 christos movups -48(%edx,%ecx,1),%xmm0 2067 1.9 christos movdqu (%esi),%xmm2 2068 1.9 christos movdqu 16(%esi),%xmm3 2069 1.9 christos movdqu 32(%esi),%xmm4 2070 1.9 christos movdqu 48(%esi),%xmm5 2071 1.9 christos movdqu 64(%esi),%xmm6 2072 1.9 christos pxor %xmm7,%xmm7 2073 1.9 christos pxor %xmm2,%xmm1 2074 1.9 christos pxor %xmm0,%xmm2 2075 1.9 christos pxor %xmm3,%xmm1 2076 1.9 christos pxor %xmm0,%xmm3 2077 1.9 christos pxor %xmm4,%xmm1 2078 1.9 christos pxor %xmm0,%xmm4 2079 1.9 christos pxor %xmm5,%xmm1 2080 1.9 christos pxor %xmm0,%xmm5 2081 1.9 christos pxor %xmm6,%xmm1 2082 1.9 christos pxor %xmm0,%xmm6 2083 1.9 christos movdqa %xmm1,96(%esp) 2084 1.9 christos movups -32(%edx,%ecx,1),%xmm1 2085 1.9 christos pxor (%esp),%xmm2 2086 1.9 christos pxor 16(%esp),%xmm3 2087 1.9 christos pxor 32(%esp),%xmm4 2088 1.9 christos pxor 48(%esp),%xmm5 2089 1.9 christos pxor 64(%esp),%xmm6 2090 1.9 christos movups -16(%edx,%ecx,1),%xmm0 2091 1.9 christos .byte 102,15,56,220,209 2092 1.9 christos .byte 102,15,56,220,217 2093 1.9 christos .byte 102,15,56,220,225 2094 1.9 christos .byte 102,15,56,220,233 2095 1.9 christos .byte 102,15,56,220,241 2096 1.9 christos .byte 102,15,56,220,249 2097 1.9 christos movl 120(%esp),%edi 2098 1.9 christos call .L_aesni_encrypt6_enter 2099 1.9 christos movdqa 64(%esp),%xmm0 2100 1.9 christos pxor (%esp),%xmm2 2101 1.9 christos pxor 16(%esp),%xmm3 2102 1.9 christos pxor 32(%esp),%xmm4 2103 1.9 christos pxor 48(%esp),%xmm5 2104 1.9 christos pxor %xmm0,%xmm6 2105 1.9 christos movdqa 96(%esp),%xmm1 2106 1.9 christos movdqu %xmm2,(%edi,%esi,1) 2107 1.9 christos movdqu %xmm3,16(%edi,%esi,1) 2108 1.9 christos movdqu %xmm4,32(%edi,%esi,1) 2109 1.9 christos movdqu %xmm5,48(%edi,%esi,1) 2110 1.9 christos movdqu %xmm6,64(%edi,%esi,1) 2111 1.9 christos jmp .L078done 2112 1.9 christos .align 16 2113 1.9 christos .L079one: 2114 1.9 christos movdqu (%ebx),%xmm7 2115 1.9 christos movl 112(%esp),%edx 2116 1.9 christos movdqu (%esi),%xmm2 2117 1.9 christos movl 240(%edx),%ecx 2118 1.9 christos pxor %xmm0,%xmm7 2119 1.9 christos pxor %xmm2,%xmm1 2120 1.9 christos pxor %xmm7,%xmm2 2121 1.9 christos movdqa %xmm1,%xmm6 2122 1.9 christos movl 120(%esp),%edi 2123 1.9 christos movups (%edx),%xmm0 2124 1.9 christos movups 16(%edx),%xmm1 2125 1.9 christos leal 32(%edx),%edx 2126 1.9 christos xorps %xmm0,%xmm2 2127 1.9 christos .L083enc1_loop_16: 2128 1.9 christos .byte 102,15,56,220,209 2129 1.9 christos decl %ecx 2130 1.9 christos movups (%edx),%xmm1 2131 1.9 christos leal 16(%edx),%edx 2132 1.9 christos jnz .L083enc1_loop_16 2133 1.9 christos .byte 102,15,56,221,209 2134 1.9 christos xorps %xmm7,%xmm2 2135 1.9 christos movdqa %xmm7,%xmm0 2136 1.9 christos movdqa %xmm6,%xmm1 2137 1.9 christos movups %xmm2,(%edi,%esi,1) 2138 1.9 christos jmp .L078done 2139 1.9 christos .align 16 2140 1.9 christos .L080two: 2141 1.9 christos leal 1(%ebp),%ecx 2142 1.9 christos movl 112(%esp),%edx 2143 1.9 christos bsfl %ecx,%ecx 2144 1.9 christos shll $4,%ecx 2145 1.9 christos movdqu (%ebx),%xmm6 2146 1.9 christos movdqu (%ebx,%ecx,1),%xmm7 2147 1.9 christos movdqu (%esi),%xmm2 2148 1.9 christos movdqu 16(%esi),%xmm3 2149 1.9 christos movl 240(%edx),%ecx 2150 1.9 christos pxor %xmm0,%xmm6 2151 1.9 christos pxor %xmm6,%xmm7 2152 1.9 christos pxor %xmm2,%xmm1 2153 1.9 christos pxor %xmm6,%xmm2 2154 1.9 christos pxor %xmm3,%xmm1 2155 1.9 christos pxor %xmm7,%xmm3 2156 1.9 christos movdqa %xmm1,%xmm5 2157 1.9 christos movl 120(%esp),%edi 2158 1.9 christos call _aesni_encrypt2 2159 1.9 christos xorps %xmm6,%xmm2 2160 1.9 christos xorps %xmm7,%xmm3 2161 1.9 christos movdqa %xmm7,%xmm0 2162 1.9 christos movdqa %xmm5,%xmm1 2163 1.9 christos movups %xmm2,(%edi,%esi,1) 2164 1.9 christos movups %xmm3,16(%edi,%esi,1) 2165 1.9 christos jmp .L078done 2166 1.9 christos .align 16 2167 1.9 christos .L081three: 2168 1.9 christos leal 1(%ebp),%ecx 2169 1.9 christos movl 112(%esp),%edx 2170 1.9 christos bsfl %ecx,%ecx 2171 1.9 christos shll $4,%ecx 2172 1.9 christos movdqu (%ebx),%xmm5 2173 1.9 christos movdqu (%ebx,%ecx,1),%xmm6 2174 1.9 christos movdqa %xmm5,%xmm7 2175 1.9 christos movdqu (%esi),%xmm2 2176 1.9 christos movdqu 16(%esi),%xmm3 2177 1.9 christos movdqu 32(%esi),%xmm4 2178 1.9 christos movl 240(%edx),%ecx 2179 1.9 christos pxor %xmm0,%xmm5 2180 1.9 christos pxor %xmm5,%xmm6 2181 1.9 christos pxor %xmm6,%xmm7 2182 1.9 christos pxor %xmm2,%xmm1 2183 1.9 christos pxor %xmm5,%xmm2 2184 1.9 christos pxor %xmm3,%xmm1 2185 1.9 christos pxor %xmm6,%xmm3 2186 1.9 christos pxor %xmm4,%xmm1 2187 1.9 christos pxor %xmm7,%xmm4 2188 1.9 christos movdqa %xmm1,96(%esp) 2189 1.9 christos movl 120(%esp),%edi 2190 1.9 christos call _aesni_encrypt3 2191 1.9 christos xorps %xmm5,%xmm2 2192 1.9 christos xorps %xmm6,%xmm3 2193 1.9 christos xorps %xmm7,%xmm4 2194 1.9 christos movdqa %xmm7,%xmm0 2195 1.9 christos movdqa 96(%esp),%xmm1 2196 1.9 christos movups %xmm2,(%edi,%esi,1) 2197 1.9 christos movups %xmm3,16(%edi,%esi,1) 2198 1.9 christos movups %xmm4,32(%edi,%esi,1) 2199 1.9 christos jmp .L078done 2200 1.9 christos .align 16 2201 1.9 christos .L082four: 2202 1.9 christos leal 1(%ebp),%ecx 2203 1.9 christos leal 3(%ebp),%eax 2204 1.9 christos bsfl %ecx,%ecx 2205 1.9 christos bsfl %eax,%eax 2206 1.9 christos movl 112(%esp),%edx 2207 1.9 christos shll $4,%ecx 2208 1.9 christos shll $4,%eax 2209 1.9 christos movdqu (%ebx),%xmm4 2210 1.9 christos movdqu (%ebx,%ecx,1),%xmm5 2211 1.9 christos movdqa %xmm4,%xmm6 2212 1.9 christos movdqu (%ebx,%eax,1),%xmm7 2213 1.9 christos pxor %xmm0,%xmm4 2214 1.9 christos movdqu (%esi),%xmm2 2215 1.9 christos pxor %xmm4,%xmm5 2216 1.9 christos movdqu 16(%esi),%xmm3 2217 1.9 christos pxor %xmm5,%xmm6 2218 1.9 christos movdqa %xmm4,(%esp) 2219 1.9 christos pxor %xmm6,%xmm7 2220 1.9 christos movdqa %xmm5,16(%esp) 2221 1.9 christos movdqu 32(%esi),%xmm4 2222 1.9 christos movdqu 48(%esi),%xmm5 2223 1.9 christos movl 240(%edx),%ecx 2224 1.9 christos pxor %xmm2,%xmm1 2225 1.9 christos pxor (%esp),%xmm2 2226 1.9 christos pxor %xmm3,%xmm1 2227 1.9 christos pxor 16(%esp),%xmm3 2228 1.9 christos pxor %xmm4,%xmm1 2229 1.9 christos pxor %xmm6,%xmm4 2230 1.9 christos pxor %xmm5,%xmm1 2231 1.9 christos pxor %xmm7,%xmm5 2232 1.9 christos movdqa %xmm1,96(%esp) 2233 1.9 christos movl 120(%esp),%edi 2234 1.9 christos call _aesni_encrypt4 2235 1.9 christos xorps (%esp),%xmm2 2236 1.9 christos xorps 16(%esp),%xmm3 2237 1.9 christos xorps %xmm6,%xmm4 2238 1.9 christos movups %xmm2,(%edi,%esi,1) 2239 1.9 christos xorps %xmm7,%xmm5 2240 1.9 christos movups %xmm3,16(%edi,%esi,1) 2241 1.9 christos movdqa %xmm7,%xmm0 2242 1.9 christos movups %xmm4,32(%edi,%esi,1) 2243 1.9 christos movdqa 96(%esp),%xmm1 2244 1.9 christos movups %xmm5,48(%edi,%esi,1) 2245 1.9 christos .L078done: 2246 1.9 christos movl 128(%esp),%edx 2247 1.9 christos pxor %xmm2,%xmm2 2248 1.9 christos pxor %xmm3,%xmm3 2249 1.9 christos movdqa %xmm2,(%esp) 2250 1.9 christos pxor %xmm4,%xmm4 2251 1.9 christos movdqa %xmm2,16(%esp) 2252 1.9 christos pxor %xmm5,%xmm5 2253 1.9 christos movdqa %xmm2,32(%esp) 2254 1.9 christos pxor %xmm6,%xmm6 2255 1.9 christos movdqa %xmm2,48(%esp) 2256 1.9 christos pxor %xmm7,%xmm7 2257 1.9 christos movdqa %xmm2,64(%esp) 2258 1.9 christos movdqa %xmm2,80(%esp) 2259 1.9 christos movdqa %xmm2,96(%esp) 2260 1.9 christos leal (%edx),%esp 2261 1.9 christos movl 40(%esp),%ecx 2262 1.9 christos movl 48(%esp),%ebx 2263 1.9 christos movdqu %xmm0,(%ecx) 2264 1.9 christos pxor %xmm0,%xmm0 2265 1.9 christos movdqu %xmm1,(%ebx) 2266 1.9 christos pxor %xmm1,%xmm1 2267 1.9 christos popl %edi 2268 1.9 christos popl %esi 2269 1.9 christos popl %ebx 2270 1.9 christos popl %ebp 2271 1.9 christos ret 2272 1.9 christos .size aesni_ocb_encrypt,.-.L_aesni_ocb_encrypt_begin 2273 1.9 christos .globl aesni_ocb_decrypt 2274 1.9 christos .type aesni_ocb_decrypt,@function 2275 1.9 christos .align 16 2276 1.9 christos aesni_ocb_decrypt: 2277 1.9 christos .L_aesni_ocb_decrypt_begin: 2278 1.11 christos #ifdef __CET__ 2279 1.11 christos 2280 1.11 christos .byte 243,15,30,251 2281 1.11 christos #endif 2282 1.11 christos 2283 1.9 christos pushl %ebp 2284 1.9 christos pushl %ebx 2285 1.9 christos pushl %esi 2286 1.9 christos pushl %edi 2287 1.9 christos movl 40(%esp),%ecx 2288 1.9 christos movl 48(%esp),%ebx 2289 1.9 christos movl 20(%esp),%esi 2290 1.9 christos movl 24(%esp),%edi 2291 1.9 christos movl 28(%esp),%eax 2292 1.9 christos movl 32(%esp),%edx 2293 1.9 christos movdqu (%ecx),%xmm0 2294 1.9 christos movl 36(%esp),%ebp 2295 1.9 christos movdqu (%ebx),%xmm1 2296 1.9 christos movl 44(%esp),%ebx 2297 1.9 christos movl %esp,%ecx 2298 1.9 christos subl $132,%esp 2299 1.9 christos andl $-16,%esp 2300 1.9 christos subl %esi,%edi 2301 1.9 christos shll $4,%eax 2302 1.9 christos leal -96(%esi,%eax,1),%eax 2303 1.9 christos movl %edi,120(%esp) 2304 1.9 christos movl %eax,124(%esp) 2305 1.9 christos movl %ecx,128(%esp) 2306 1.9 christos movl 240(%edx),%ecx 2307 1.9 christos testl $1,%ebp 2308 1.9 christos jnz .L084odd 2309 1.9 christos bsfl %ebp,%eax 2310 1.9 christos addl $1,%ebp 2311 1.9 christos shll $4,%eax 2312 1.9 christos movdqu (%ebx,%eax,1),%xmm7 2313 1.9 christos movl %edx,%eax 2314 1.9 christos movdqu (%esi),%xmm2 2315 1.9 christos leal 16(%esi),%esi 2316 1.9 christos pxor %xmm0,%xmm7 2317 1.9 christos pxor %xmm7,%xmm2 2318 1.9 christos movdqa %xmm1,%xmm6 2319 1.9 christos movups (%edx),%xmm0 2320 1.9 christos movups 16(%edx),%xmm1 2321 1.9 christos leal 32(%edx),%edx 2322 1.9 christos xorps %xmm0,%xmm2 2323 1.9 christos .L085dec1_loop_17: 2324 1.9 christos .byte 102,15,56,222,209 2325 1.9 christos decl %ecx 2326 1.9 christos movups (%edx),%xmm1 2327 1.9 christos leal 16(%edx),%edx 2328 1.9 christos jnz .L085dec1_loop_17 2329 1.9 christos .byte 102,15,56,223,209 2330 1.9 christos xorps %xmm7,%xmm2 2331 1.9 christos movaps %xmm6,%xmm1 2332 1.9 christos movdqa %xmm7,%xmm0 2333 1.9 christos xorps %xmm2,%xmm1 2334 1.9 christos movups %xmm2,-16(%edi,%esi,1) 2335 1.9 christos movl 240(%eax),%ecx 2336 1.9 christos movl %eax,%edx 2337 1.9 christos movl 124(%esp),%eax 2338 1.9 christos .L084odd: 2339 1.9 christos shll $4,%ecx 2340 1.9 christos movl $16,%edi 2341 1.9 christos subl %ecx,%edi 2342 1.9 christos movl %edx,112(%esp) 2343 1.9 christos leal 32(%edx,%ecx,1),%edx 2344 1.9 christos movl %edi,116(%esp) 2345 1.9 christos cmpl %eax,%esi 2346 1.9 christos ja .L086short 2347 1.9 christos jmp .L087grandloop 2348 1.9 christos .align 32 2349 1.9 christos .L087grandloop: 2350 1.9 christos leal 1(%ebp),%ecx 2351 1.9 christos leal 3(%ebp),%eax 2352 1.9 christos leal 5(%ebp),%edi 2353 1.9 christos addl $6,%ebp 2354 1.9 christos bsfl %ecx,%ecx 2355 1.9 christos bsfl %eax,%eax 2356 1.9 christos bsfl %edi,%edi 2357 1.9 christos shll $4,%ecx 2358 1.9 christos shll $4,%eax 2359 1.9 christos shll $4,%edi 2360 1.9 christos movdqu (%ebx),%xmm2 2361 1.9 christos movdqu (%ebx,%ecx,1),%xmm3 2362 1.9 christos movl 116(%esp),%ecx 2363 1.9 christos movdqa %xmm2,%xmm4 2364 1.9 christos movdqu (%ebx,%eax,1),%xmm5 2365 1.9 christos movdqa %xmm2,%xmm6 2366 1.9 christos movdqu (%ebx,%edi,1),%xmm7 2367 1.9 christos pxor %xmm0,%xmm2 2368 1.9 christos pxor %xmm2,%xmm3 2369 1.9 christos movdqa %xmm2,(%esp) 2370 1.9 christos pxor %xmm3,%xmm4 2371 1.9 christos movdqa %xmm3,16(%esp) 2372 1.9 christos pxor %xmm4,%xmm5 2373 1.9 christos movdqa %xmm4,32(%esp) 2374 1.9 christos pxor %xmm5,%xmm6 2375 1.9 christos movdqa %xmm5,48(%esp) 2376 1.9 christos pxor %xmm6,%xmm7 2377 1.9 christos movdqa %xmm6,64(%esp) 2378 1.9 christos movdqa %xmm7,80(%esp) 2379 1.9 christos movups -48(%edx,%ecx,1),%xmm0 2380 1.9 christos movdqu (%esi),%xmm2 2381 1.9 christos movdqu 16(%esi),%xmm3 2382 1.9 christos movdqu 32(%esi),%xmm4 2383 1.9 christos movdqu 48(%esi),%xmm5 2384 1.9 christos movdqu 64(%esi),%xmm6 2385 1.9 christos movdqu 80(%esi),%xmm7 2386 1.9 christos leal 96(%esi),%esi 2387 1.9 christos movdqa %xmm1,96(%esp) 2388 1.9 christos pxor %xmm0,%xmm2 2389 1.9 christos pxor %xmm0,%xmm3 2390 1.9 christos pxor %xmm0,%xmm4 2391 1.9 christos pxor %xmm0,%xmm5 2392 1.9 christos pxor %xmm0,%xmm6 2393 1.9 christos pxor %xmm0,%xmm7 2394 1.9 christos movups -32(%edx,%ecx,1),%xmm1 2395 1.9 christos pxor (%esp),%xmm2 2396 1.9 christos pxor 16(%esp),%xmm3 2397 1.9 christos pxor 32(%esp),%xmm4 2398 1.9 christos pxor 48(%esp),%xmm5 2399 1.9 christos pxor 64(%esp),%xmm6 2400 1.9 christos pxor 80(%esp),%xmm7 2401 1.9 christos movups -16(%edx,%ecx,1),%xmm0 2402 1.9 christos .byte 102,15,56,222,209 2403 1.9 christos .byte 102,15,56,222,217 2404 1.9 christos .byte 102,15,56,222,225 2405 1.9 christos .byte 102,15,56,222,233 2406 1.9 christos .byte 102,15,56,222,241 2407 1.9 christos .byte 102,15,56,222,249 2408 1.9 christos movl 120(%esp),%edi 2409 1.9 christos movl 124(%esp),%eax 2410 1.9 christos call .L_aesni_decrypt6_enter 2411 1.9 christos movdqa 80(%esp),%xmm0 2412 1.9 christos pxor (%esp),%xmm2 2413 1.9 christos movdqa 96(%esp),%xmm1 2414 1.9 christos pxor 16(%esp),%xmm3 2415 1.9 christos pxor 32(%esp),%xmm4 2416 1.9 christos pxor 48(%esp),%xmm5 2417 1.9 christos pxor 64(%esp),%xmm6 2418 1.9 christos pxor %xmm0,%xmm7 2419 1.9 christos pxor %xmm2,%xmm1 2420 1.9 christos movdqu %xmm2,-96(%edi,%esi,1) 2421 1.9 christos pxor %xmm3,%xmm1 2422 1.9 christos movdqu %xmm3,-80(%edi,%esi,1) 2423 1.9 christos pxor %xmm4,%xmm1 2424 1.9 christos movdqu %xmm4,-64(%edi,%esi,1) 2425 1.9 christos pxor %xmm5,%xmm1 2426 1.9 christos movdqu %xmm5,-48(%edi,%esi,1) 2427 1.9 christos pxor %xmm6,%xmm1 2428 1.9 christos movdqu %xmm6,-32(%edi,%esi,1) 2429 1.9 christos pxor %xmm7,%xmm1 2430 1.9 christos movdqu %xmm7,-16(%edi,%esi,1) 2431 1.9 christos cmpl %eax,%esi 2432 1.11 christos jbe .L087grandloop 2433 1.9 christos .L086short: 2434 1.9 christos addl $96,%eax 2435 1.9 christos subl %esi,%eax 2436 1.9 christos jz .L088done 2437 1.9 christos cmpl $32,%eax 2438 1.9 christos jb .L089one 2439 1.9 christos je .L090two 2440 1.9 christos cmpl $64,%eax 2441 1.9 christos jb .L091three 2442 1.9 christos je .L092four 2443 1.9 christos leal 1(%ebp),%ecx 2444 1.9 christos leal 3(%ebp),%eax 2445 1.9 christos bsfl %ecx,%ecx 2446 1.9 christos bsfl %eax,%eax 2447 1.9 christos shll $4,%ecx 2448 1.9 christos shll $4,%eax 2449 1.9 christos movdqu (%ebx),%xmm2 2450 1.9 christos movdqu (%ebx,%ecx,1),%xmm3 2451 1.9 christos movl 116(%esp),%ecx 2452 1.9 christos movdqa %xmm2,%xmm4 2453 1.9 christos movdqu (%ebx,%eax,1),%xmm5 2454 1.9 christos movdqa %xmm2,%xmm6 2455 1.9 christos pxor %xmm0,%xmm2 2456 1.9 christos pxor %xmm2,%xmm3 2457 1.9 christos movdqa %xmm2,(%esp) 2458 1.9 christos pxor %xmm3,%xmm4 2459 1.9 christos movdqa %xmm3,16(%esp) 2460 1.9 christos pxor %xmm4,%xmm5 2461 1.9 christos movdqa %xmm4,32(%esp) 2462 1.9 christos pxor %xmm5,%xmm6 2463 1.9 christos movdqa %xmm5,48(%esp) 2464 1.9 christos pxor %xmm6,%xmm7 2465 1.9 christos movdqa %xmm6,64(%esp) 2466 1.9 christos movups -48(%edx,%ecx,1),%xmm0 2467 1.9 christos movdqu (%esi),%xmm2 2468 1.9 christos movdqu 16(%esi),%xmm3 2469 1.9 christos movdqu 32(%esi),%xmm4 2470 1.9 christos movdqu 48(%esi),%xmm5 2471 1.9 christos movdqu 64(%esi),%xmm6 2472 1.9 christos pxor %xmm7,%xmm7 2473 1.9 christos movdqa %xmm1,96(%esp) 2474 1.9 christos pxor %xmm0,%xmm2 2475 1.9 christos pxor %xmm0,%xmm3 2476 1.9 christos pxor %xmm0,%xmm4 2477 1.9 christos pxor %xmm0,%xmm5 2478 1.9 christos pxor %xmm0,%xmm6 2479 1.9 christos movups -32(%edx,%ecx,1),%xmm1 2480 1.9 christos pxor (%esp),%xmm2 2481 1.9 christos pxor 16(%esp),%xmm3 2482 1.9 christos pxor 32(%esp),%xmm4 2483 1.9 christos pxor 48(%esp),%xmm5 2484 1.9 christos pxor 64(%esp),%xmm6 2485 1.9 christos movups -16(%edx,%ecx,1),%xmm0 2486 1.9 christos .byte 102,15,56,222,209 2487 1.9 christos .byte 102,15,56,222,217 2488 1.9 christos .byte 102,15,56,222,225 2489 1.9 christos .byte 102,15,56,222,233 2490 1.9 christos .byte 102,15,56,222,241 2491 1.9 christos .byte 102,15,56,222,249 2492 1.9 christos movl 120(%esp),%edi 2493 1.9 christos call .L_aesni_decrypt6_enter 2494 1.9 christos movdqa 64(%esp),%xmm0 2495 1.9 christos pxor (%esp),%xmm2 2496 1.9 christos movdqa 96(%esp),%xmm1 2497 1.9 christos pxor 16(%esp),%xmm3 2498 1.9 christos pxor 32(%esp),%xmm4 2499 1.9 christos pxor 48(%esp),%xmm5 2500 1.9 christos pxor %xmm0,%xmm6 2501 1.9 christos pxor %xmm2,%xmm1 2502 1.9 christos movdqu %xmm2,(%edi,%esi,1) 2503 1.9 christos pxor %xmm3,%xmm1 2504 1.9 christos movdqu %xmm3,16(%edi,%esi,1) 2505 1.9 christos pxor %xmm4,%xmm1 2506 1.9 christos movdqu %xmm4,32(%edi,%esi,1) 2507 1.9 christos pxor %xmm5,%xmm1 2508 1.9 christos movdqu %xmm5,48(%edi,%esi,1) 2509 1.9 christos pxor %xmm6,%xmm1 2510 1.9 christos movdqu %xmm6,64(%edi,%esi,1) 2511 1.9 christos jmp .L088done 2512 1.9 christos .align 16 2513 1.9 christos .L089one: 2514 1.9 christos movdqu (%ebx),%xmm7 2515 1.9 christos movl 112(%esp),%edx 2516 1.9 christos movdqu (%esi),%xmm2 2517 1.9 christos movl 240(%edx),%ecx 2518 1.9 christos pxor %xmm0,%xmm7 2519 1.9 christos pxor %xmm7,%xmm2 2520 1.9 christos movdqa %xmm1,%xmm6 2521 1.9 christos movl 120(%esp),%edi 2522 1.9 christos movups (%edx),%xmm0 2523 1.9 christos movups 16(%edx),%xmm1 2524 1.9 christos leal 32(%edx),%edx 2525 1.9 christos xorps %xmm0,%xmm2 2526 1.9 christos .L093dec1_loop_18: 2527 1.9 christos .byte 102,15,56,222,209 2528 1.9 christos decl %ecx 2529 1.9 christos movups (%edx),%xmm1 2530 1.9 christos leal 16(%edx),%edx 2531 1.9 christos jnz .L093dec1_loop_18 2532 1.9 christos .byte 102,15,56,223,209 2533 1.9 christos xorps %xmm7,%xmm2 2534 1.9 christos movaps %xmm6,%xmm1 2535 1.9 christos movdqa %xmm7,%xmm0 2536 1.9 christos xorps %xmm2,%xmm1 2537 1.9 christos movups %xmm2,(%edi,%esi,1) 2538 1.9 christos jmp .L088done 2539 1.9 christos .align 16 2540 1.9 christos .L090two: 2541 1.9 christos leal 1(%ebp),%ecx 2542 1.9 christos movl 112(%esp),%edx 2543 1.9 christos bsfl %ecx,%ecx 2544 1.9 christos shll $4,%ecx 2545 1.9 christos movdqu (%ebx),%xmm6 2546 1.9 christos movdqu (%ebx,%ecx,1),%xmm7 2547 1.9 christos movdqu (%esi),%xmm2 2548 1.9 christos movdqu 16(%esi),%xmm3 2549 1.9 christos movl 240(%edx),%ecx 2550 1.9 christos movdqa %xmm1,%xmm5 2551 1.9 christos pxor %xmm0,%xmm6 2552 1.9 christos pxor %xmm6,%xmm7 2553 1.9 christos pxor %xmm6,%xmm2 2554 1.9 christos pxor %xmm7,%xmm3 2555 1.9 christos movl 120(%esp),%edi 2556 1.9 christos call _aesni_decrypt2 2557 1.9 christos xorps %xmm6,%xmm2 2558 1.9 christos xorps %xmm7,%xmm3 2559 1.9 christos movdqa %xmm7,%xmm0 2560 1.9 christos xorps %xmm2,%xmm5 2561 1.9 christos movups %xmm2,(%edi,%esi,1) 2562 1.9 christos xorps %xmm3,%xmm5 2563 1.9 christos movups %xmm3,16(%edi,%esi,1) 2564 1.9 christos movaps %xmm5,%xmm1 2565 1.9 christos jmp .L088done 2566 1.9 christos .align 16 2567 1.9 christos .L091three: 2568 1.9 christos leal 1(%ebp),%ecx 2569 1.9 christos movl 112(%esp),%edx 2570 1.9 christos bsfl %ecx,%ecx 2571 1.9 christos shll $4,%ecx 2572 1.9 christos movdqu (%ebx),%xmm5 2573 1.9 christos movdqu (%ebx,%ecx,1),%xmm6 2574 1.9 christos movdqa %xmm5,%xmm7 2575 1.9 christos movdqu (%esi),%xmm2 2576 1.9 christos movdqu 16(%esi),%xmm3 2577 1.9 christos movdqu 32(%esi),%xmm4 2578 1.9 christos movl 240(%edx),%ecx 2579 1.9 christos movdqa %xmm1,96(%esp) 2580 1.9 christos pxor %xmm0,%xmm5 2581 1.9 christos pxor %xmm5,%xmm6 2582 1.9 christos pxor %xmm6,%xmm7 2583 1.9 christos pxor %xmm5,%xmm2 2584 1.9 christos pxor %xmm6,%xmm3 2585 1.9 christos pxor %xmm7,%xmm4 2586 1.9 christos movl 120(%esp),%edi 2587 1.9 christos call _aesni_decrypt3 2588 1.9 christos movdqa 96(%esp),%xmm1 2589 1.9 christos xorps %xmm5,%xmm2 2590 1.9 christos xorps %xmm6,%xmm3 2591 1.9 christos xorps %xmm7,%xmm4 2592 1.9 christos movups %xmm2,(%edi,%esi,1) 2593 1.9 christos pxor %xmm2,%xmm1 2594 1.9 christos movdqa %xmm7,%xmm0 2595 1.9 christos movups %xmm3,16(%edi,%esi,1) 2596 1.9 christos pxor %xmm3,%xmm1 2597 1.9 christos movups %xmm4,32(%edi,%esi,1) 2598 1.9 christos pxor %xmm4,%xmm1 2599 1.9 christos jmp .L088done 2600 1.9 christos .align 16 2601 1.9 christos .L092four: 2602 1.9 christos leal 1(%ebp),%ecx 2603 1.9 christos leal 3(%ebp),%eax 2604 1.9 christos bsfl %ecx,%ecx 2605 1.9 christos bsfl %eax,%eax 2606 1.9 christos movl 112(%esp),%edx 2607 1.9 christos shll $4,%ecx 2608 1.9 christos shll $4,%eax 2609 1.9 christos movdqu (%ebx),%xmm4 2610 1.9 christos movdqu (%ebx,%ecx,1),%xmm5 2611 1.9 christos movdqa %xmm4,%xmm6 2612 1.9 christos movdqu (%ebx,%eax,1),%xmm7 2613 1.9 christos pxor %xmm0,%xmm4 2614 1.9 christos movdqu (%esi),%xmm2 2615 1.9 christos pxor %xmm4,%xmm5 2616 1.9 christos movdqu 16(%esi),%xmm3 2617 1.9 christos pxor %xmm5,%xmm6 2618 1.9 christos movdqa %xmm4,(%esp) 2619 1.9 christos pxor %xmm6,%xmm7 2620 1.9 christos movdqa %xmm5,16(%esp) 2621 1.9 christos movdqu 32(%esi),%xmm4 2622 1.9 christos movdqu 48(%esi),%xmm5 2623 1.9 christos movl 240(%edx),%ecx 2624 1.9 christos movdqa %xmm1,96(%esp) 2625 1.9 christos pxor (%esp),%xmm2 2626 1.9 christos pxor 16(%esp),%xmm3 2627 1.9 christos pxor %xmm6,%xmm4 2628 1.9 christos pxor %xmm7,%xmm5 2629 1.9 christos movl 120(%esp),%edi 2630 1.9 christos call _aesni_decrypt4 2631 1.9 christos movdqa 96(%esp),%xmm1 2632 1.9 christos xorps (%esp),%xmm2 2633 1.9 christos xorps 16(%esp),%xmm3 2634 1.9 christos xorps %xmm6,%xmm4 2635 1.9 christos movups %xmm2,(%edi,%esi,1) 2636 1.9 christos pxor %xmm2,%xmm1 2637 1.9 christos xorps %xmm7,%xmm5 2638 1.9 christos movups %xmm3,16(%edi,%esi,1) 2639 1.9 christos pxor %xmm3,%xmm1 2640 1.9 christos movdqa %xmm7,%xmm0 2641 1.9 christos movups %xmm4,32(%edi,%esi,1) 2642 1.9 christos pxor %xmm4,%xmm1 2643 1.9 christos movups %xmm5,48(%edi,%esi,1) 2644 1.9 christos pxor %xmm5,%xmm1 2645 1.9 christos .L088done: 2646 1.9 christos movl 128(%esp),%edx 2647 1.9 christos pxor %xmm2,%xmm2 2648 1.9 christos pxor %xmm3,%xmm3 2649 1.9 christos movdqa %xmm2,(%esp) 2650 1.9 christos pxor %xmm4,%xmm4 2651 1.9 christos movdqa %xmm2,16(%esp) 2652 1.9 christos pxor %xmm5,%xmm5 2653 1.9 christos movdqa %xmm2,32(%esp) 2654 1.9 christos pxor %xmm6,%xmm6 2655 1.9 christos movdqa %xmm2,48(%esp) 2656 1.9 christos pxor %xmm7,%xmm7 2657 1.9 christos movdqa %xmm2,64(%esp) 2658 1.9 christos movdqa %xmm2,80(%esp) 2659 1.9 christos movdqa %xmm2,96(%esp) 2660 1.9 christos leal (%edx),%esp 2661 1.9 christos movl 40(%esp),%ecx 2662 1.9 christos movl 48(%esp),%ebx 2663 1.9 christos movdqu %xmm0,(%ecx) 2664 1.9 christos pxor %xmm0,%xmm0 2665 1.9 christos movdqu %xmm1,(%ebx) 2666 1.9 christos pxor %xmm1,%xmm1 2667 1.9 christos popl %edi 2668 1.9 christos popl %esi 2669 1.9 christos popl %ebx 2670 1.9 christos popl %ebp 2671 1.9 christos ret 2672 1.9 christos .size aesni_ocb_decrypt,.-.L_aesni_ocb_decrypt_begin 2673 1.8 christos .globl aesni_cbc_encrypt 2674 1.8 christos .type aesni_cbc_encrypt,@function 2675 1.8 christos .align 16 2676 1.8 christos aesni_cbc_encrypt: 2677 1.8 christos .L_aesni_cbc_encrypt_begin: 2678 1.11 christos #ifdef __CET__ 2679 1.11 christos 2680 1.11 christos .byte 243,15,30,251 2681 1.11 christos #endif 2682 1.11 christos 2683 1.8 christos pushl %ebp 2684 1.8 christos pushl %ebx 2685 1.8 christos pushl %esi 2686 1.8 christos pushl %edi 2687 1.8 christos movl 20(%esp),%esi 2688 1.8 christos movl %esp,%ebx 2689 1.8 christos movl 24(%esp),%edi 2690 1.8 christos subl $24,%ebx 2691 1.8 christos movl 28(%esp),%eax 2692 1.8 christos andl $-16,%ebx 2693 1.8 christos movl 32(%esp),%edx 2694 1.8 christos movl 36(%esp),%ebp 2695 1.8 christos testl %eax,%eax 2696 1.9 christos jz .L094cbc_abort 2697 1.8 christos cmpl $0,40(%esp) 2698 1.8 christos xchgl %esp,%ebx 2699 1.8 christos movups (%ebp),%xmm7 2700 1.8 christos movl 240(%edx),%ecx 2701 1.8 christos movl %edx,%ebp 2702 1.8 christos movl %ebx,16(%esp) 2703 1.8 christos movl %ecx,%ebx 2704 1.9 christos je .L095cbc_decrypt 2705 1.8 christos movaps %xmm7,%xmm2 2706 1.8 christos cmpl $16,%eax 2707 1.9 christos jb .L096cbc_enc_tail 2708 1.8 christos subl $16,%eax 2709 1.9 christos jmp .L097cbc_enc_loop 2710 1.8 christos .align 16 2711 1.9 christos .L097cbc_enc_loop: 2712 1.8 christos movups (%esi),%xmm7 2713 1.8 christos leal 16(%esi),%esi 2714 1.8 christos movups (%edx),%xmm0 2715 1.8 christos movups 16(%edx),%xmm1 2716 1.8 christos xorps %xmm0,%xmm7 2717 1.8 christos leal 32(%edx),%edx 2718 1.8 christos xorps %xmm7,%xmm2 2719 1.9 christos .L098enc1_loop_19: 2720 1.8 christos .byte 102,15,56,220,209 2721 1.8 christos decl %ecx 2722 1.8 christos movups (%edx),%xmm1 2723 1.8 christos leal 16(%edx),%edx 2724 1.9 christos jnz .L098enc1_loop_19 2725 1.8 christos .byte 102,15,56,221,209 2726 1.8 christos movl %ebx,%ecx 2727 1.8 christos movl %ebp,%edx 2728 1.8 christos movups %xmm2,(%edi) 2729 1.8 christos leal 16(%edi),%edi 2730 1.8 christos subl $16,%eax 2731 1.9 christos jnc .L097cbc_enc_loop 2732 1.8 christos addl $16,%eax 2733 1.9 christos jnz .L096cbc_enc_tail 2734 1.8 christos movaps %xmm2,%xmm7 2735 1.8 christos pxor %xmm2,%xmm2 2736 1.9 christos jmp .L099cbc_ret 2737 1.9 christos .L096cbc_enc_tail: 2738 1.8 christos movl %eax,%ecx 2739 1.8 christos .long 2767451785 2740 1.8 christos movl $16,%ecx 2741 1.8 christos subl %eax,%ecx 2742 1.8 christos xorl %eax,%eax 2743 1.8 christos .long 2868115081 2744 1.8 christos leal -16(%edi),%edi 2745 1.8 christos movl %ebx,%ecx 2746 1.8 christos movl %edi,%esi 2747 1.8 christos movl %ebp,%edx 2748 1.9 christos jmp .L097cbc_enc_loop 2749 1.8 christos .align 16 2750 1.9 christos .L095cbc_decrypt: 2751 1.8 christos cmpl $80,%eax 2752 1.9 christos jbe .L100cbc_dec_tail 2753 1.8 christos movaps %xmm7,(%esp) 2754 1.8 christos subl $80,%eax 2755 1.9 christos jmp .L101cbc_dec_loop6_enter 2756 1.8 christos .align 16 2757 1.9 christos .L102cbc_dec_loop6: 2758 1.8 christos movaps %xmm0,(%esp) 2759 1.8 christos movups %xmm7,(%edi) 2760 1.8 christos leal 16(%edi),%edi 2761 1.9 christos .L101cbc_dec_loop6_enter: 2762 1.8 christos movdqu (%esi),%xmm2 2763 1.8 christos movdqu 16(%esi),%xmm3 2764 1.8 christos movdqu 32(%esi),%xmm4 2765 1.8 christos movdqu 48(%esi),%xmm5 2766 1.8 christos movdqu 64(%esi),%xmm6 2767 1.8 christos movdqu 80(%esi),%xmm7 2768 1.8 christos call _aesni_decrypt6 2769 1.8 christos movups (%esi),%xmm1 2770 1.8 christos movups 16(%esi),%xmm0 2771 1.8 christos xorps (%esp),%xmm2 2772 1.8 christos xorps %xmm1,%xmm3 2773 1.8 christos movups 32(%esi),%xmm1 2774 1.8 christos xorps %xmm0,%xmm4 2775 1.8 christos movups 48(%esi),%xmm0 2776 1.8 christos xorps %xmm1,%xmm5 2777 1.8 christos movups 64(%esi),%xmm1 2778 1.8 christos xorps %xmm0,%xmm6 2779 1.8 christos movups 80(%esi),%xmm0 2780 1.8 christos xorps %xmm1,%xmm7 2781 1.8 christos movups %xmm2,(%edi) 2782 1.8 christos movups %xmm3,16(%edi) 2783 1.8 christos leal 96(%esi),%esi 2784 1.8 christos movups %xmm4,32(%edi) 2785 1.8 christos movl %ebx,%ecx 2786 1.8 christos movups %xmm5,48(%edi) 2787 1.8 christos movl %ebp,%edx 2788 1.8 christos movups %xmm6,64(%edi) 2789 1.8 christos leal 80(%edi),%edi 2790 1.8 christos subl $96,%eax 2791 1.9 christos ja .L102cbc_dec_loop6 2792 1.8 christos movaps %xmm7,%xmm2 2793 1.8 christos movaps %xmm0,%xmm7 2794 1.8 christos addl $80,%eax 2795 1.9 christos jle .L103cbc_dec_clear_tail_collected 2796 1.8 christos movups %xmm2,(%edi) 2797 1.8 christos leal 16(%edi),%edi 2798 1.9 christos .L100cbc_dec_tail: 2799 1.8 christos movups (%esi),%xmm2 2800 1.8 christos movaps %xmm2,%xmm6 2801 1.8 christos cmpl $16,%eax 2802 1.9 christos jbe .L104cbc_dec_one 2803 1.8 christos movups 16(%esi),%xmm3 2804 1.8 christos movaps %xmm3,%xmm5 2805 1.8 christos cmpl $32,%eax 2806 1.9 christos jbe .L105cbc_dec_two 2807 1.8 christos movups 32(%esi),%xmm4 2808 1.8 christos cmpl $48,%eax 2809 1.9 christos jbe .L106cbc_dec_three 2810 1.8 christos movups 48(%esi),%xmm5 2811 1.8 christos cmpl $64,%eax 2812 1.9 christos jbe .L107cbc_dec_four 2813 1.8 christos movups 64(%esi),%xmm6 2814 1.8 christos movaps %xmm7,(%esp) 2815 1.8 christos movups (%esi),%xmm2 2816 1.8 christos xorps %xmm7,%xmm7 2817 1.8 christos call _aesni_decrypt6 2818 1.8 christos movups (%esi),%xmm1 2819 1.8 christos movups 16(%esi),%xmm0 2820 1.8 christos xorps (%esp),%xmm2 2821 1.8 christos xorps %xmm1,%xmm3 2822 1.8 christos movups 32(%esi),%xmm1 2823 1.8 christos xorps %xmm0,%xmm4 2824 1.8 christos movups 48(%esi),%xmm0 2825 1.8 christos xorps %xmm1,%xmm5 2826 1.8 christos movups 64(%esi),%xmm7 2827 1.8 christos xorps %xmm0,%xmm6 2828 1.8 christos movups %xmm2,(%edi) 2829 1.8 christos movups %xmm3,16(%edi) 2830 1.8 christos pxor %xmm3,%xmm3 2831 1.8 christos movups %xmm4,32(%edi) 2832 1.8 christos pxor %xmm4,%xmm4 2833 1.8 christos movups %xmm5,48(%edi) 2834 1.8 christos pxor %xmm5,%xmm5 2835 1.8 christos leal 64(%edi),%edi 2836 1.8 christos movaps %xmm6,%xmm2 2837 1.8 christos pxor %xmm6,%xmm6 2838 1.8 christos subl $80,%eax 2839 1.9 christos jmp .L108cbc_dec_tail_collected 2840 1.8 christos .align 16 2841 1.9 christos .L104cbc_dec_one: 2842 1.8 christos movups (%edx),%xmm0 2843 1.8 christos movups 16(%edx),%xmm1 2844 1.8 christos leal 32(%edx),%edx 2845 1.8 christos xorps %xmm0,%xmm2 2846 1.9 christos .L109dec1_loop_20: 2847 1.8 christos .byte 102,15,56,222,209 2848 1.8 christos decl %ecx 2849 1.8 christos movups (%edx),%xmm1 2850 1.8 christos leal 16(%edx),%edx 2851 1.9 christos jnz .L109dec1_loop_20 2852 1.8 christos .byte 102,15,56,223,209 2853 1.8 christos xorps %xmm7,%xmm2 2854 1.8 christos movaps %xmm6,%xmm7 2855 1.8 christos subl $16,%eax 2856 1.9 christos jmp .L108cbc_dec_tail_collected 2857 1.8 christos .align 16 2858 1.9 christos .L105cbc_dec_two: 2859 1.8 christos call _aesni_decrypt2 2860 1.8 christos xorps %xmm7,%xmm2 2861 1.8 christos xorps %xmm6,%xmm3 2862 1.8 christos movups %xmm2,(%edi) 2863 1.8 christos movaps %xmm3,%xmm2 2864 1.8 christos pxor %xmm3,%xmm3 2865 1.8 christos leal 16(%edi),%edi 2866 1.8 christos movaps %xmm5,%xmm7 2867 1.8 christos subl $32,%eax 2868 1.9 christos jmp .L108cbc_dec_tail_collected 2869 1.8 christos .align 16 2870 1.9 christos .L106cbc_dec_three: 2871 1.8 christos call _aesni_decrypt3 2872 1.8 christos xorps %xmm7,%xmm2 2873 1.8 christos xorps %xmm6,%xmm3 2874 1.8 christos xorps %xmm5,%xmm4 2875 1.8 christos movups %xmm2,(%edi) 2876 1.8 christos movaps %xmm4,%xmm2 2877 1.8 christos pxor %xmm4,%xmm4 2878 1.8 christos movups %xmm3,16(%edi) 2879 1.8 christos pxor %xmm3,%xmm3 2880 1.8 christos leal 32(%edi),%edi 2881 1.8 christos movups 32(%esi),%xmm7 2882 1.8 christos subl $48,%eax 2883 1.9 christos jmp .L108cbc_dec_tail_collected 2884 1.8 christos .align 16 2885 1.9 christos .L107cbc_dec_four: 2886 1.8 christos call _aesni_decrypt4 2887 1.8 christos movups 16(%esi),%xmm1 2888 1.8 christos movups 32(%esi),%xmm0 2889 1.8 christos xorps %xmm7,%xmm2 2890 1.8 christos movups 48(%esi),%xmm7 2891 1.8 christos xorps %xmm6,%xmm3 2892 1.8 christos movups %xmm2,(%edi) 2893 1.8 christos xorps %xmm1,%xmm4 2894 1.8 christos movups %xmm3,16(%edi) 2895 1.8 christos pxor %xmm3,%xmm3 2896 1.8 christos xorps %xmm0,%xmm5 2897 1.8 christos movups %xmm4,32(%edi) 2898 1.8 christos pxor %xmm4,%xmm4 2899 1.8 christos leal 48(%edi),%edi 2900 1.8 christos movaps %xmm5,%xmm2 2901 1.8 christos pxor %xmm5,%xmm5 2902 1.8 christos subl $64,%eax 2903 1.9 christos jmp .L108cbc_dec_tail_collected 2904 1.8 christos .align 16 2905 1.9 christos .L103cbc_dec_clear_tail_collected: 2906 1.8 christos pxor %xmm3,%xmm3 2907 1.8 christos pxor %xmm4,%xmm4 2908 1.8 christos pxor %xmm5,%xmm5 2909 1.8 christos pxor %xmm6,%xmm6 2910 1.9 christos .L108cbc_dec_tail_collected: 2911 1.8 christos andl $15,%eax 2912 1.9 christos jnz .L110cbc_dec_tail_partial 2913 1.8 christos movups %xmm2,(%edi) 2914 1.8 christos pxor %xmm0,%xmm0 2915 1.9 christos jmp .L099cbc_ret 2916 1.8 christos .align 16 2917 1.9 christos .L110cbc_dec_tail_partial: 2918 1.8 christos movaps %xmm2,(%esp) 2919 1.8 christos pxor %xmm0,%xmm0 2920 1.8 christos movl $16,%ecx 2921 1.8 christos movl %esp,%esi 2922 1.8 christos subl %eax,%ecx 2923 1.8 christos .long 2767451785 2924 1.8 christos movdqa %xmm2,(%esp) 2925 1.9 christos .L099cbc_ret: 2926 1.8 christos movl 16(%esp),%esp 2927 1.8 christos movl 36(%esp),%ebp 2928 1.8 christos pxor %xmm2,%xmm2 2929 1.8 christos pxor %xmm1,%xmm1 2930 1.8 christos movups %xmm7,(%ebp) 2931 1.8 christos pxor %xmm7,%xmm7 2932 1.9 christos .L094cbc_abort: 2933 1.8 christos popl %edi 2934 1.8 christos popl %esi 2935 1.8 christos popl %ebx 2936 1.8 christos popl %ebp 2937 1.8 christos ret 2938 1.8 christos .size aesni_cbc_encrypt,.-.L_aesni_cbc_encrypt_begin 2939 1.8 christos .type _aesni_set_encrypt_key,@function 2940 1.8 christos .align 16 2941 1.8 christos _aesni_set_encrypt_key: 2942 1.11 christos #ifdef __CET__ 2943 1.11 christos 2944 1.11 christos .byte 243,15,30,251 2945 1.11 christos #endif 2946 1.11 christos 2947 1.8 christos pushl %ebp 2948 1.8 christos pushl %ebx 2949 1.8 christos testl %eax,%eax 2950 1.9 christos jz .L111bad_pointer 2951 1.8 christos testl %edx,%edx 2952 1.9 christos jz .L111bad_pointer 2953 1.9 christos call .L112pic 2954 1.9 christos .L112pic: 2955 1.8 christos popl %ebx 2956 1.9 christos leal .Lkey_const-.L112pic(%ebx),%ebx 2957 1.10 nakayama leal OPENSSL_ia32cap_P-.Lkey_const(%ebx),%ebp 2958 1.8 christos movups (%eax),%xmm0 2959 1.8 christos xorps %xmm4,%xmm4 2960 1.8 christos movl 4(%ebp),%ebp 2961 1.8 christos leal 16(%edx),%edx 2962 1.8 christos andl $268437504,%ebp 2963 1.8 christos cmpl $256,%ecx 2964 1.9 christos je .L11314rounds 2965 1.8 christos cmpl $192,%ecx 2966 1.9 christos je .L11412rounds 2967 1.8 christos cmpl $128,%ecx 2968 1.9 christos jne .L115bad_keybits 2969 1.8 christos .align 16 2970 1.9 christos .L11610rounds: 2971 1.8 christos cmpl $268435456,%ebp 2972 1.9 christos je .L11710rounds_alt 2973 1.8 christos movl $9,%ecx 2974 1.8 christos movups %xmm0,-16(%edx) 2975 1.8 christos .byte 102,15,58,223,200,1 2976 1.9 christos call .L118key_128_cold 2977 1.8 christos .byte 102,15,58,223,200,2 2978 1.9 christos call .L119key_128 2979 1.8 christos .byte 102,15,58,223,200,4 2980 1.9 christos call .L119key_128 2981 1.8 christos .byte 102,15,58,223,200,8 2982 1.9 christos call .L119key_128 2983 1.8 christos .byte 102,15,58,223,200,16 2984 1.9 christos call .L119key_128 2985 1.8 christos .byte 102,15,58,223,200,32 2986 1.9 christos call .L119key_128 2987 1.8 christos .byte 102,15,58,223,200,64 2988 1.9 christos call .L119key_128 2989 1.8 christos .byte 102,15,58,223,200,128 2990 1.9 christos call .L119key_128 2991 1.8 christos .byte 102,15,58,223,200,27 2992 1.9 christos call .L119key_128 2993 1.8 christos .byte 102,15,58,223,200,54 2994 1.9 christos call .L119key_128 2995 1.8 christos movups %xmm0,(%edx) 2996 1.8 christos movl %ecx,80(%edx) 2997 1.9 christos jmp .L120good_key 2998 1.8 christos .align 16 2999 1.9 christos .L119key_128: 3000 1.8 christos movups %xmm0,(%edx) 3001 1.8 christos leal 16(%edx),%edx 3002 1.9 christos .L118key_128_cold: 3003 1.8 christos shufps $16,%xmm0,%xmm4 3004 1.8 christos xorps %xmm4,%xmm0 3005 1.8 christos shufps $140,%xmm0,%xmm4 3006 1.8 christos xorps %xmm4,%xmm0 3007 1.8 christos shufps $255,%xmm1,%xmm1 3008 1.8 christos xorps %xmm1,%xmm0 3009 1.8 christos ret 3010 1.8 christos .align 16 3011 1.9 christos .L11710rounds_alt: 3012 1.8 christos movdqa (%ebx),%xmm5 3013 1.8 christos movl $8,%ecx 3014 1.8 christos movdqa 32(%ebx),%xmm4 3015 1.8 christos movdqa %xmm0,%xmm2 3016 1.8 christos movdqu %xmm0,-16(%edx) 3017 1.9 christos .L121loop_key128: 3018 1.8 christos .byte 102,15,56,0,197 3019 1.8 christos .byte 102,15,56,221,196 3020 1.8 christos pslld $1,%xmm4 3021 1.8 christos leal 16(%edx),%edx 3022 1.8 christos movdqa %xmm2,%xmm3 3023 1.8 christos pslldq $4,%xmm2 3024 1.8 christos pxor %xmm2,%xmm3 3025 1.8 christos pslldq $4,%xmm2 3026 1.8 christos pxor %xmm2,%xmm3 3027 1.8 christos pslldq $4,%xmm2 3028 1.8 christos pxor %xmm3,%xmm2 3029 1.8 christos pxor %xmm2,%xmm0 3030 1.8 christos movdqu %xmm0,-16(%edx) 3031 1.8 christos movdqa %xmm0,%xmm2 3032 1.8 christos decl %ecx 3033 1.9 christos jnz .L121loop_key128 3034 1.8 christos movdqa 48(%ebx),%xmm4 3035 1.8 christos .byte 102,15,56,0,197 3036 1.8 christos .byte 102,15,56,221,196 3037 1.8 christos pslld $1,%xmm4 3038 1.8 christos movdqa %xmm2,%xmm3 3039 1.8 christos pslldq $4,%xmm2 3040 1.8 christos pxor %xmm2,%xmm3 3041 1.8 christos pslldq $4,%xmm2 3042 1.8 christos pxor %xmm2,%xmm3 3043 1.8 christos pslldq $4,%xmm2 3044 1.8 christos pxor %xmm3,%xmm2 3045 1.8 christos pxor %xmm2,%xmm0 3046 1.8 christos movdqu %xmm0,(%edx) 3047 1.8 christos movdqa %xmm0,%xmm2 3048 1.8 christos .byte 102,15,56,0,197 3049 1.8 christos .byte 102,15,56,221,196 3050 1.8 christos movdqa %xmm2,%xmm3 3051 1.8 christos pslldq $4,%xmm2 3052 1.8 christos pxor %xmm2,%xmm3 3053 1.8 christos pslldq $4,%xmm2 3054 1.8 christos pxor %xmm2,%xmm3 3055 1.8 christos pslldq $4,%xmm2 3056 1.8 christos pxor %xmm3,%xmm2 3057 1.8 christos pxor %xmm2,%xmm0 3058 1.8 christos movdqu %xmm0,16(%edx) 3059 1.8 christos movl $9,%ecx 3060 1.8 christos movl %ecx,96(%edx) 3061 1.9 christos jmp .L120good_key 3062 1.8 christos .align 16 3063 1.9 christos .L11412rounds: 3064 1.8 christos movq 16(%eax),%xmm2 3065 1.8 christos cmpl $268435456,%ebp 3066 1.9 christos je .L12212rounds_alt 3067 1.8 christos movl $11,%ecx 3068 1.8 christos movups %xmm0,-16(%edx) 3069 1.8 christos .byte 102,15,58,223,202,1 3070 1.9 christos call .L123key_192a_cold 3071 1.8 christos .byte 102,15,58,223,202,2 3072 1.9 christos call .L124key_192b 3073 1.8 christos .byte 102,15,58,223,202,4 3074 1.9 christos call .L125key_192a 3075 1.8 christos .byte 102,15,58,223,202,8 3076 1.9 christos call .L124key_192b 3077 1.8 christos .byte 102,15,58,223,202,16 3078 1.9 christos call .L125key_192a 3079 1.8 christos .byte 102,15,58,223,202,32 3080 1.9 christos call .L124key_192b 3081 1.8 christos .byte 102,15,58,223,202,64 3082 1.9 christos call .L125key_192a 3083 1.8 christos .byte 102,15,58,223,202,128 3084 1.9 christos call .L124key_192b 3085 1.8 christos movups %xmm0,(%edx) 3086 1.8 christos movl %ecx,48(%edx) 3087 1.9 christos jmp .L120good_key 3088 1.8 christos .align 16 3089 1.9 christos .L125key_192a: 3090 1.8 christos movups %xmm0,(%edx) 3091 1.8 christos leal 16(%edx),%edx 3092 1.8 christos .align 16 3093 1.9 christos .L123key_192a_cold: 3094 1.8 christos movaps %xmm2,%xmm5 3095 1.9 christos .L126key_192b_warm: 3096 1.8 christos shufps $16,%xmm0,%xmm4 3097 1.8 christos movdqa %xmm2,%xmm3 3098 1.8 christos xorps %xmm4,%xmm0 3099 1.8 christos shufps $140,%xmm0,%xmm4 3100 1.8 christos pslldq $4,%xmm3 3101 1.8 christos xorps %xmm4,%xmm0 3102 1.8 christos pshufd $85,%xmm1,%xmm1 3103 1.8 christos pxor %xmm3,%xmm2 3104 1.8 christos pxor %xmm1,%xmm0 3105 1.8 christos pshufd $255,%xmm0,%xmm3 3106 1.8 christos pxor %xmm3,%xmm2 3107 1.8 christos ret 3108 1.8 christos .align 16 3109 1.9 christos .L124key_192b: 3110 1.8 christos movaps %xmm0,%xmm3 3111 1.8 christos shufps $68,%xmm0,%xmm5 3112 1.8 christos movups %xmm5,(%edx) 3113 1.8 christos shufps $78,%xmm2,%xmm3 3114 1.8 christos movups %xmm3,16(%edx) 3115 1.8 christos leal 32(%edx),%edx 3116 1.9 christos jmp .L126key_192b_warm 3117 1.8 christos .align 16 3118 1.9 christos .L12212rounds_alt: 3119 1.8 christos movdqa 16(%ebx),%xmm5 3120 1.8 christos movdqa 32(%ebx),%xmm4 3121 1.8 christos movl $8,%ecx 3122 1.8 christos movdqu %xmm0,-16(%edx) 3123 1.9 christos .L127loop_key192: 3124 1.8 christos movq %xmm2,(%edx) 3125 1.8 christos movdqa %xmm2,%xmm1 3126 1.8 christos .byte 102,15,56,0,213 3127 1.8 christos .byte 102,15,56,221,212 3128 1.8 christos pslld $1,%xmm4 3129 1.8 christos leal 24(%edx),%edx 3130 1.8 christos movdqa %xmm0,%xmm3 3131 1.8 christos pslldq $4,%xmm0 3132 1.8 christos pxor %xmm0,%xmm3 3133 1.8 christos pslldq $4,%xmm0 3134 1.8 christos pxor %xmm0,%xmm3 3135 1.8 christos pslldq $4,%xmm0 3136 1.8 christos pxor %xmm3,%xmm0 3137 1.8 christos pshufd $255,%xmm0,%xmm3 3138 1.8 christos pxor %xmm1,%xmm3 3139 1.8 christos pslldq $4,%xmm1 3140 1.8 christos pxor %xmm1,%xmm3 3141 1.8 christos pxor %xmm2,%xmm0 3142 1.8 christos pxor %xmm3,%xmm2 3143 1.8 christos movdqu %xmm0,-16(%edx) 3144 1.8 christos decl %ecx 3145 1.9 christos jnz .L127loop_key192 3146 1.8 christos movl $11,%ecx 3147 1.8 christos movl %ecx,32(%edx) 3148 1.9 christos jmp .L120good_key 3149 1.8 christos .align 16 3150 1.9 christos .L11314rounds: 3151 1.8 christos movups 16(%eax),%xmm2 3152 1.8 christos leal 16(%edx),%edx 3153 1.8 christos cmpl $268435456,%ebp 3154 1.9 christos je .L12814rounds_alt 3155 1.8 christos movl $13,%ecx 3156 1.8 christos movups %xmm0,-32(%edx) 3157 1.8 christos movups %xmm2,-16(%edx) 3158 1.8 christos .byte 102,15,58,223,202,1 3159 1.9 christos call .L129key_256a_cold 3160 1.8 christos .byte 102,15,58,223,200,1 3161 1.9 christos call .L130key_256b 3162 1.8 christos .byte 102,15,58,223,202,2 3163 1.9 christos call .L131key_256a 3164 1.8 christos .byte 102,15,58,223,200,2 3165 1.9 christos call .L130key_256b 3166 1.8 christos .byte 102,15,58,223,202,4 3167 1.9 christos call .L131key_256a 3168 1.8 christos .byte 102,15,58,223,200,4 3169 1.9 christos call .L130key_256b 3170 1.8 christos .byte 102,15,58,223,202,8 3171 1.9 christos call .L131key_256a 3172 1.8 christos .byte 102,15,58,223,200,8 3173 1.9 christos call .L130key_256b 3174 1.8 christos .byte 102,15,58,223,202,16 3175 1.9 christos call .L131key_256a 3176 1.8 christos .byte 102,15,58,223,200,16 3177 1.9 christos call .L130key_256b 3178 1.8 christos .byte 102,15,58,223,202,32 3179 1.9 christos call .L131key_256a 3180 1.8 christos .byte 102,15,58,223,200,32 3181 1.9 christos call .L130key_256b 3182 1.8 christos .byte 102,15,58,223,202,64 3183 1.9 christos call .L131key_256a 3184 1.8 christos movups %xmm0,(%edx) 3185 1.8 christos movl %ecx,16(%edx) 3186 1.8 christos xorl %eax,%eax 3187 1.9 christos jmp .L120good_key 3188 1.8 christos .align 16 3189 1.9 christos .L131key_256a: 3190 1.8 christos movups %xmm2,(%edx) 3191 1.8 christos leal 16(%edx),%edx 3192 1.9 christos .L129key_256a_cold: 3193 1.8 christos shufps $16,%xmm0,%xmm4 3194 1.8 christos xorps %xmm4,%xmm0 3195 1.8 christos shufps $140,%xmm0,%xmm4 3196 1.8 christos xorps %xmm4,%xmm0 3197 1.8 christos shufps $255,%xmm1,%xmm1 3198 1.8 christos xorps %xmm1,%xmm0 3199 1.8 christos ret 3200 1.8 christos .align 16 3201 1.9 christos .L130key_256b: 3202 1.8 christos movups %xmm0,(%edx) 3203 1.8 christos leal 16(%edx),%edx 3204 1.8 christos shufps $16,%xmm2,%xmm4 3205 1.8 christos xorps %xmm4,%xmm2 3206 1.8 christos shufps $140,%xmm2,%xmm4 3207 1.8 christos xorps %xmm4,%xmm2 3208 1.8 christos shufps $170,%xmm1,%xmm1 3209 1.8 christos xorps %xmm1,%xmm2 3210 1.8 christos ret 3211 1.8 christos .align 16 3212 1.9 christos .L12814rounds_alt: 3213 1.8 christos movdqa (%ebx),%xmm5 3214 1.8 christos movdqa 32(%ebx),%xmm4 3215 1.8 christos movl $7,%ecx 3216 1.8 christos movdqu %xmm0,-32(%edx) 3217 1.8 christos movdqa %xmm2,%xmm1 3218 1.8 christos movdqu %xmm2,-16(%edx) 3219 1.9 christos .L132loop_key256: 3220 1.8 christos .byte 102,15,56,0,213 3221 1.8 christos .byte 102,15,56,221,212 3222 1.8 christos movdqa %xmm0,%xmm3 3223 1.8 christos pslldq $4,%xmm0 3224 1.8 christos pxor %xmm0,%xmm3 3225 1.8 christos pslldq $4,%xmm0 3226 1.8 christos pxor %xmm0,%xmm3 3227 1.8 christos pslldq $4,%xmm0 3228 1.8 christos pxor %xmm3,%xmm0 3229 1.8 christos pslld $1,%xmm4 3230 1.8 christos pxor %xmm2,%xmm0 3231 1.8 christos movdqu %xmm0,(%edx) 3232 1.8 christos decl %ecx 3233 1.9 christos jz .L133done_key256 3234 1.8 christos pshufd $255,%xmm0,%xmm2 3235 1.8 christos pxor %xmm3,%xmm3 3236 1.8 christos .byte 102,15,56,221,211 3237 1.8 christos movdqa %xmm1,%xmm3 3238 1.8 christos pslldq $4,%xmm1 3239 1.8 christos pxor %xmm1,%xmm3 3240 1.8 christos pslldq $4,%xmm1 3241 1.8 christos pxor %xmm1,%xmm3 3242 1.8 christos pslldq $4,%xmm1 3243 1.8 christos pxor %xmm3,%xmm1 3244 1.8 christos pxor %xmm1,%xmm2 3245 1.8 christos movdqu %xmm2,16(%edx) 3246 1.8 christos leal 32(%edx),%edx 3247 1.8 christos movdqa %xmm2,%xmm1 3248 1.9 christos jmp .L132loop_key256 3249 1.9 christos .L133done_key256: 3250 1.8 christos movl $13,%ecx 3251 1.8 christos movl %ecx,16(%edx) 3252 1.9 christos .L120good_key: 3253 1.8 christos pxor %xmm0,%xmm0 3254 1.8 christos pxor %xmm1,%xmm1 3255 1.8 christos pxor %xmm2,%xmm2 3256 1.8 christos pxor %xmm3,%xmm3 3257 1.8 christos pxor %xmm4,%xmm4 3258 1.8 christos pxor %xmm5,%xmm5 3259 1.8 christos xorl %eax,%eax 3260 1.8 christos popl %ebx 3261 1.8 christos popl %ebp 3262 1.8 christos ret 3263 1.8 christos .align 4 3264 1.9 christos .L111bad_pointer: 3265 1.8 christos movl $-1,%eax 3266 1.8 christos popl %ebx 3267 1.8 christos popl %ebp 3268 1.8 christos ret 3269 1.8 christos .align 4 3270 1.9 christos .L115bad_keybits: 3271 1.8 christos pxor %xmm0,%xmm0 3272 1.8 christos movl $-2,%eax 3273 1.8 christos popl %ebx 3274 1.8 christos popl %ebp 3275 1.8 christos ret 3276 1.8 christos .size _aesni_set_encrypt_key,.-_aesni_set_encrypt_key 3277 1.8 christos .globl aesni_set_encrypt_key 3278 1.8 christos .type aesni_set_encrypt_key,@function 3279 1.8 christos .align 16 3280 1.8 christos aesni_set_encrypt_key: 3281 1.8 christos .L_aesni_set_encrypt_key_begin: 3282 1.11 christos #ifdef __CET__ 3283 1.11 christos 3284 1.11 christos .byte 243,15,30,251 3285 1.11 christos #endif 3286 1.11 christos 3287 1.8 christos movl 4(%esp),%eax 3288 1.8 christos movl 8(%esp),%ecx 3289 1.8 christos movl 12(%esp),%edx 3290 1.8 christos call _aesni_set_encrypt_key 3291 1.8 christos ret 3292 1.8 christos .size aesni_set_encrypt_key,.-.L_aesni_set_encrypt_key_begin 3293 1.8 christos .globl aesni_set_decrypt_key 3294 1.8 christos .type aesni_set_decrypt_key,@function 3295 1.8 christos .align 16 3296 1.8 christos aesni_set_decrypt_key: 3297 1.8 christos .L_aesni_set_decrypt_key_begin: 3298 1.11 christos #ifdef __CET__ 3299 1.11 christos 3300 1.11 christos .byte 243,15,30,251 3301 1.11 christos #endif 3302 1.11 christos 3303 1.8 christos movl 4(%esp),%eax 3304 1.8 christos movl 8(%esp),%ecx 3305 1.8 christos movl 12(%esp),%edx 3306 1.8 christos call _aesni_set_encrypt_key 3307 1.8 christos movl 12(%esp),%edx 3308 1.8 christos shll $4,%ecx 3309 1.8 christos testl %eax,%eax 3310 1.9 christos jnz .L134dec_key_ret 3311 1.8 christos leal 16(%edx,%ecx,1),%eax 3312 1.8 christos movups (%edx),%xmm0 3313 1.8 christos movups (%eax),%xmm1 3314 1.8 christos movups %xmm0,(%eax) 3315 1.8 christos movups %xmm1,(%edx) 3316 1.8 christos leal 16(%edx),%edx 3317 1.8 christos leal -16(%eax),%eax 3318 1.9 christos .L135dec_key_inverse: 3319 1.8 christos movups (%edx),%xmm0 3320 1.8 christos movups (%eax),%xmm1 3321 1.8 christos .byte 102,15,56,219,192 3322 1.8 christos .byte 102,15,56,219,201 3323 1.8 christos leal 16(%edx),%edx 3324 1.8 christos leal -16(%eax),%eax 3325 1.8 christos movups %xmm0,16(%eax) 3326 1.8 christos movups %xmm1,-16(%edx) 3327 1.8 christos cmpl %edx,%eax 3328 1.9 christos ja .L135dec_key_inverse 3329 1.8 christos movups (%edx),%xmm0 3330 1.8 christos .byte 102,15,56,219,192 3331 1.8 christos movups %xmm0,(%edx) 3332 1.8 christos pxor %xmm0,%xmm0 3333 1.8 christos pxor %xmm1,%xmm1 3334 1.8 christos xorl %eax,%eax 3335 1.9 christos .L134dec_key_ret: 3336 1.8 christos ret 3337 1.8 christos .size aesni_set_decrypt_key,.-.L_aesni_set_decrypt_key_begin 3338 1.8 christos .align 64 3339 1.8 christos .Lkey_const: 3340 1.8 christos .long 202313229,202313229,202313229,202313229 3341 1.8 christos .long 67569157,67569157,67569157,67569157 3342 1.8 christos .long 1,1,1,1 3343 1.8 christos .long 27,27,27,27 3344 1.8 christos .byte 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69 3345 1.8 christos .byte 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83 3346 1.8 christos .byte 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115 3347 1.8 christos .byte 115,108,46,111,114,103,62,0 3348 1.8 christos .comm OPENSSL_ia32cap_P,16,4 3349 1.11 christos 3350 1.11 christos .section ".note.gnu.property", "a" 3351 1.11 christos .p2align 2 3352 1.11 christos .long 1f - 0f 3353 1.11 christos .long 4f - 1f 3354 1.11 christos .long 5 3355 1.11 christos 0: 3356 1.11 christos .asciz "GNU" 3357 1.11 christos 1: 3358 1.11 christos .p2align 2 3359 1.11 christos .long 0xc0000002 3360 1.11 christos .long 3f - 2f 3361 1.11 christos 2: 3362 1.11 christos .long 3 3363 1.11 christos 3: 3364 1.11 christos .p2align 2 3365 1.11 christos 4: 3366