1bc3d5698SJohn Baldwin/* Do not modify. This file is auto-generated from e_padlock-x86.pl. */ 2bc3d5698SJohn Baldwin#ifdef PIC 3bc3d5698SJohn Baldwin.text 4bc3d5698SJohn Baldwin.globl padlock_capability 5bc3d5698SJohn Baldwin.type padlock_capability,@function 6bc3d5698SJohn Baldwin.align 16 7bc3d5698SJohn Baldwinpadlock_capability: 8bc3d5698SJohn Baldwin.L_padlock_capability_begin: 9*c0855eaaSJohn Baldwin #ifdef __CET__ 10*c0855eaaSJohn Baldwin 11*c0855eaaSJohn Baldwin.byte 243,15,30,251 12*c0855eaaSJohn Baldwin #endif 13*c0855eaaSJohn Baldwin 14bc3d5698SJohn Baldwin pushl %ebx 15bc3d5698SJohn Baldwin pushfl 16bc3d5698SJohn Baldwin popl %eax 17bc3d5698SJohn Baldwin movl %eax,%ecx 18bc3d5698SJohn Baldwin xorl $2097152,%eax 19bc3d5698SJohn Baldwin pushl %eax 20bc3d5698SJohn Baldwin popfl 21bc3d5698SJohn Baldwin pushfl 22bc3d5698SJohn Baldwin popl %eax 23bc3d5698SJohn Baldwin xorl %eax,%ecx 24bc3d5698SJohn Baldwin xorl %eax,%eax 25bc3d5698SJohn Baldwin btl $21,%ecx 26bc3d5698SJohn Baldwin jnc .L000noluck 27bc3d5698SJohn Baldwin .byte 0x0f,0xa2 28bc3d5698SJohn Baldwin xorl %eax,%eax 29bc3d5698SJohn Baldwin cmpl $0x746e6543,%ebx 30bc3d5698SJohn Baldwin jne .L001zhaoxin 31bc3d5698SJohn Baldwin cmpl $0x48727561,%edx 32bc3d5698SJohn Baldwin jne .L000noluck 33bc3d5698SJohn Baldwin cmpl $0x736c7561,%ecx 34bc3d5698SJohn Baldwin jne .L000noluck 35bc3d5698SJohn Baldwin jmp .L002zhaoxinEnd 36bc3d5698SJohn Baldwin.L001zhaoxin: 37bc3d5698SJohn Baldwin cmpl $0x68532020,%ebx 38bc3d5698SJohn Baldwin jne .L000noluck 39bc3d5698SJohn Baldwin cmpl $0x68676e61,%edx 40bc3d5698SJohn Baldwin jne .L000noluck 41bc3d5698SJohn Baldwin cmpl $0x20206961,%ecx 42bc3d5698SJohn Baldwin jne .L000noluck 43bc3d5698SJohn Baldwin.L002zhaoxinEnd: 44bc3d5698SJohn Baldwin movl $3221225472,%eax 45bc3d5698SJohn Baldwin .byte 0x0f,0xa2 46bc3d5698SJohn Baldwin movl %eax,%edx 47bc3d5698SJohn Baldwin xorl %eax,%eax 48bc3d5698SJohn Baldwin cmpl $3221225473,%edx 49bc3d5698SJohn Baldwin jb .L000noluck 50bc3d5698SJohn Baldwin movl $1,%eax 51bc3d5698SJohn Baldwin .byte 0x0f,0xa2 52bc3d5698SJohn Baldwin orl $15,%eax 53bc3d5698SJohn Baldwin xorl %ebx,%ebx 54bc3d5698SJohn Baldwin andl $4095,%eax 55bc3d5698SJohn Baldwin cmpl $1791,%eax 56bc3d5698SJohn Baldwin sete %bl 57bc3d5698SJohn Baldwin movl $3221225473,%eax 58bc3d5698SJohn Baldwin pushl %ebx 59bc3d5698SJohn Baldwin .byte 0x0f,0xa2 60bc3d5698SJohn Baldwin popl %ebx 61bc3d5698SJohn Baldwin movl %edx,%eax 62bc3d5698SJohn Baldwin shll $4,%ebx 63bc3d5698SJohn Baldwin andl $4294967279,%eax 64bc3d5698SJohn Baldwin orl %ebx,%eax 65bc3d5698SJohn Baldwin.L000noluck: 66bc3d5698SJohn Baldwin popl %ebx 67bc3d5698SJohn Baldwin ret 68bc3d5698SJohn Baldwin.size padlock_capability,.-.L_padlock_capability_begin 69bc3d5698SJohn Baldwin.globl padlock_key_bswap 70bc3d5698SJohn Baldwin.type padlock_key_bswap,@function 71bc3d5698SJohn Baldwin.align 16 72bc3d5698SJohn Baldwinpadlock_key_bswap: 73bc3d5698SJohn Baldwin.L_padlock_key_bswap_begin: 74*c0855eaaSJohn Baldwin #ifdef __CET__ 75*c0855eaaSJohn Baldwin 76*c0855eaaSJohn Baldwin.byte 243,15,30,251 77*c0855eaaSJohn Baldwin #endif 78*c0855eaaSJohn Baldwin 79bc3d5698SJohn Baldwin movl 4(%esp),%edx 80bc3d5698SJohn Baldwin movl 240(%edx),%ecx 81f1cf4900SJung-uk Kim incl %ecx 82f1cf4900SJung-uk Kim shll $2,%ecx 83bc3d5698SJohn Baldwin.L003bswap_loop: 84bc3d5698SJohn Baldwin movl (%edx),%eax 85bc3d5698SJohn Baldwin bswap %eax 86bc3d5698SJohn Baldwin movl %eax,(%edx) 87bc3d5698SJohn Baldwin leal 4(%edx),%edx 88bc3d5698SJohn Baldwin subl $1,%ecx 89bc3d5698SJohn Baldwin jnz .L003bswap_loop 90bc3d5698SJohn Baldwin ret 91bc3d5698SJohn Baldwin.size padlock_key_bswap,.-.L_padlock_key_bswap_begin 92bc3d5698SJohn Baldwin.globl padlock_verify_context 93bc3d5698SJohn Baldwin.type padlock_verify_context,@function 94bc3d5698SJohn Baldwin.align 16 95bc3d5698SJohn Baldwinpadlock_verify_context: 96bc3d5698SJohn Baldwin.L_padlock_verify_context_begin: 97*c0855eaaSJohn Baldwin #ifdef __CET__ 98*c0855eaaSJohn Baldwin 99*c0855eaaSJohn Baldwin.byte 243,15,30,251 100*c0855eaaSJohn Baldwin #endif 101*c0855eaaSJohn Baldwin 102bc3d5698SJohn Baldwin movl 4(%esp),%edx 103bc3d5698SJohn Baldwin leal .Lpadlock_saved_context-.L004verify_pic_point,%eax 104bc3d5698SJohn Baldwin pushfl 105bc3d5698SJohn Baldwin call _padlock_verify_ctx 106bc3d5698SJohn Baldwin.L004verify_pic_point: 107bc3d5698SJohn Baldwin leal 4(%esp),%esp 108bc3d5698SJohn Baldwin ret 109bc3d5698SJohn Baldwin.size padlock_verify_context,.-.L_padlock_verify_context_begin 110bc3d5698SJohn Baldwin.type _padlock_verify_ctx,@function 111bc3d5698SJohn Baldwin.align 16 112bc3d5698SJohn Baldwin_padlock_verify_ctx: 113*c0855eaaSJohn Baldwin #ifdef __CET__ 114*c0855eaaSJohn Baldwin 115*c0855eaaSJohn Baldwin.byte 243,15,30,251 116*c0855eaaSJohn Baldwin #endif 117*c0855eaaSJohn Baldwin 118bc3d5698SJohn Baldwin addl (%esp),%eax 119bc3d5698SJohn Baldwin btl $30,4(%esp) 120bc3d5698SJohn Baldwin jnc .L005verified 121bc3d5698SJohn Baldwin cmpl (%eax),%edx 122bc3d5698SJohn Baldwin je .L005verified 123bc3d5698SJohn Baldwin pushfl 124bc3d5698SJohn Baldwin popfl 125bc3d5698SJohn Baldwin.L005verified: 126bc3d5698SJohn Baldwin movl %edx,(%eax) 127bc3d5698SJohn Baldwin ret 128bc3d5698SJohn Baldwin.size _padlock_verify_ctx,.-_padlock_verify_ctx 129bc3d5698SJohn Baldwin.globl padlock_reload_key 130bc3d5698SJohn Baldwin.type padlock_reload_key,@function 131bc3d5698SJohn Baldwin.align 16 132bc3d5698SJohn Baldwinpadlock_reload_key: 133bc3d5698SJohn Baldwin.L_padlock_reload_key_begin: 134*c0855eaaSJohn Baldwin #ifdef __CET__ 135*c0855eaaSJohn Baldwin 136*c0855eaaSJohn Baldwin.byte 243,15,30,251 137*c0855eaaSJohn Baldwin #endif 138*c0855eaaSJohn Baldwin 139bc3d5698SJohn Baldwin pushfl 140bc3d5698SJohn Baldwin popfl 141bc3d5698SJohn Baldwin ret 142bc3d5698SJohn Baldwin.size padlock_reload_key,.-.L_padlock_reload_key_begin 143bc3d5698SJohn Baldwin.globl padlock_aes_block 144bc3d5698SJohn Baldwin.type padlock_aes_block,@function 145bc3d5698SJohn Baldwin.align 16 146bc3d5698SJohn Baldwinpadlock_aes_block: 147bc3d5698SJohn Baldwin.L_padlock_aes_block_begin: 148*c0855eaaSJohn Baldwin #ifdef __CET__ 149*c0855eaaSJohn Baldwin 150*c0855eaaSJohn Baldwin.byte 243,15,30,251 151*c0855eaaSJohn Baldwin #endif 152*c0855eaaSJohn Baldwin 153bc3d5698SJohn Baldwin pushl %edi 154bc3d5698SJohn Baldwin pushl %esi 155bc3d5698SJohn Baldwin pushl %ebx 156bc3d5698SJohn Baldwin movl 16(%esp),%edi 157bc3d5698SJohn Baldwin movl 20(%esp),%esi 158bc3d5698SJohn Baldwin movl 24(%esp),%edx 159bc3d5698SJohn Baldwin movl $1,%ecx 160bc3d5698SJohn Baldwin leal 32(%edx),%ebx 161bc3d5698SJohn Baldwin leal 16(%edx),%edx 162bc3d5698SJohn Baldwin.byte 243,15,167,200 163bc3d5698SJohn Baldwin popl %ebx 164bc3d5698SJohn Baldwin popl %esi 165bc3d5698SJohn Baldwin popl %edi 166bc3d5698SJohn Baldwin ret 167bc3d5698SJohn Baldwin.size padlock_aes_block,.-.L_padlock_aes_block_begin 168bc3d5698SJohn Baldwin.globl padlock_ecb_encrypt 169bc3d5698SJohn Baldwin.type padlock_ecb_encrypt,@function 170bc3d5698SJohn Baldwin.align 16 171bc3d5698SJohn Baldwinpadlock_ecb_encrypt: 172bc3d5698SJohn Baldwin.L_padlock_ecb_encrypt_begin: 173*c0855eaaSJohn Baldwin #ifdef __CET__ 174*c0855eaaSJohn Baldwin 175*c0855eaaSJohn Baldwin.byte 243,15,30,251 176*c0855eaaSJohn Baldwin #endif 177*c0855eaaSJohn Baldwin 178bc3d5698SJohn Baldwin pushl %ebp 179bc3d5698SJohn Baldwin pushl %ebx 180bc3d5698SJohn Baldwin pushl %esi 181bc3d5698SJohn Baldwin pushl %edi 182bc3d5698SJohn Baldwin movl 20(%esp),%edi 183bc3d5698SJohn Baldwin movl 24(%esp),%esi 184bc3d5698SJohn Baldwin movl 28(%esp),%edx 185bc3d5698SJohn Baldwin movl 32(%esp),%ecx 186bc3d5698SJohn Baldwin testl $15,%edx 187bc3d5698SJohn Baldwin jnz .L006ecb_abort 188bc3d5698SJohn Baldwin testl $15,%ecx 189bc3d5698SJohn Baldwin jnz .L006ecb_abort 190bc3d5698SJohn Baldwin leal .Lpadlock_saved_context-.L007ecb_pic_point,%eax 191bc3d5698SJohn Baldwin pushfl 192bc3d5698SJohn Baldwin cld 193bc3d5698SJohn Baldwin call _padlock_verify_ctx 194bc3d5698SJohn Baldwin.L007ecb_pic_point: 195bc3d5698SJohn Baldwin leal 16(%edx),%edx 196bc3d5698SJohn Baldwin xorl %eax,%eax 197bc3d5698SJohn Baldwin xorl %ebx,%ebx 198bc3d5698SJohn Baldwin testl $32,(%edx) 199bc3d5698SJohn Baldwin jnz .L008ecb_aligned 200bc3d5698SJohn Baldwin testl $15,%edi 201bc3d5698SJohn Baldwin setz %al 202bc3d5698SJohn Baldwin testl $15,%esi 203bc3d5698SJohn Baldwin setz %bl 204bc3d5698SJohn Baldwin testl %ebx,%eax 205bc3d5698SJohn Baldwin jnz .L008ecb_aligned 206bc3d5698SJohn Baldwin negl %eax 207bc3d5698SJohn Baldwin movl $512,%ebx 208bc3d5698SJohn Baldwin notl %eax 209bc3d5698SJohn Baldwin leal -24(%esp),%ebp 210bc3d5698SJohn Baldwin cmpl %ebx,%ecx 211bc3d5698SJohn Baldwin cmovcl %ecx,%ebx 212bc3d5698SJohn Baldwin andl %ebx,%eax 213bc3d5698SJohn Baldwin movl %ecx,%ebx 214bc3d5698SJohn Baldwin negl %eax 215bc3d5698SJohn Baldwin andl $511,%ebx 216bc3d5698SJohn Baldwin leal (%eax,%ebp,1),%esp 217bc3d5698SJohn Baldwin movl $512,%eax 218bc3d5698SJohn Baldwin cmovzl %eax,%ebx 219bc3d5698SJohn Baldwin movl %ebp,%eax 220bc3d5698SJohn Baldwin andl $-16,%ebp 221bc3d5698SJohn Baldwin andl $-16,%esp 222bc3d5698SJohn Baldwin movl %eax,16(%ebp) 223bc3d5698SJohn Baldwin cmpl %ebx,%ecx 224bc3d5698SJohn Baldwin ja .L009ecb_loop 225bc3d5698SJohn Baldwin movl %esi,%eax 226bc3d5698SJohn Baldwin cmpl %esp,%ebp 227bc3d5698SJohn Baldwin cmovel %edi,%eax 228bc3d5698SJohn Baldwin addl %ecx,%eax 229bc3d5698SJohn Baldwin negl %eax 230bc3d5698SJohn Baldwin andl $4095,%eax 231bc3d5698SJohn Baldwin cmpl $128,%eax 232bc3d5698SJohn Baldwin movl $-128,%eax 233bc3d5698SJohn Baldwin cmovael %ebx,%eax 234bc3d5698SJohn Baldwin andl %eax,%ebx 235bc3d5698SJohn Baldwin jz .L010ecb_unaligned_tail 236bc3d5698SJohn Baldwin jmp .L009ecb_loop 237bc3d5698SJohn Baldwin.align 16 238bc3d5698SJohn Baldwin.L009ecb_loop: 239bc3d5698SJohn Baldwin movl %edi,(%ebp) 240bc3d5698SJohn Baldwin movl %esi,4(%ebp) 241bc3d5698SJohn Baldwin movl %ecx,8(%ebp) 242bc3d5698SJohn Baldwin movl %ebx,%ecx 243bc3d5698SJohn Baldwin movl %ebx,12(%ebp) 244bc3d5698SJohn Baldwin testl $15,%edi 245bc3d5698SJohn Baldwin cmovnzl %esp,%edi 246bc3d5698SJohn Baldwin testl $15,%esi 247bc3d5698SJohn Baldwin jz .L011ecb_inp_aligned 248bc3d5698SJohn Baldwin shrl $2,%ecx 249bc3d5698SJohn Baldwin.byte 243,165 250bc3d5698SJohn Baldwin subl %ebx,%edi 251bc3d5698SJohn Baldwin movl %ebx,%ecx 252bc3d5698SJohn Baldwin movl %edi,%esi 253bc3d5698SJohn Baldwin.L011ecb_inp_aligned: 254bc3d5698SJohn Baldwin leal -16(%edx),%eax 255bc3d5698SJohn Baldwin leal 16(%edx),%ebx 256bc3d5698SJohn Baldwin shrl $4,%ecx 257bc3d5698SJohn Baldwin.byte 243,15,167,200 258bc3d5698SJohn Baldwin movl (%ebp),%edi 259bc3d5698SJohn Baldwin movl 12(%ebp),%ebx 260bc3d5698SJohn Baldwin testl $15,%edi 261bc3d5698SJohn Baldwin jz .L012ecb_out_aligned 262bc3d5698SJohn Baldwin movl %ebx,%ecx 263bc3d5698SJohn Baldwin leal (%esp),%esi 264bc3d5698SJohn Baldwin shrl $2,%ecx 265bc3d5698SJohn Baldwin.byte 243,165 266bc3d5698SJohn Baldwin subl %ebx,%edi 267bc3d5698SJohn Baldwin.L012ecb_out_aligned: 268bc3d5698SJohn Baldwin movl 4(%ebp),%esi 269bc3d5698SJohn Baldwin movl 8(%ebp),%ecx 270bc3d5698SJohn Baldwin addl %ebx,%edi 271bc3d5698SJohn Baldwin addl %ebx,%esi 272bc3d5698SJohn Baldwin subl %ebx,%ecx 273bc3d5698SJohn Baldwin movl $512,%ebx 274bc3d5698SJohn Baldwin jz .L013ecb_break 275bc3d5698SJohn Baldwin cmpl %ebx,%ecx 276bc3d5698SJohn Baldwin jae .L009ecb_loop 277bc3d5698SJohn Baldwin.L010ecb_unaligned_tail: 278bc3d5698SJohn Baldwin xorl %eax,%eax 279bc3d5698SJohn Baldwin cmpl %ebp,%esp 280bc3d5698SJohn Baldwin cmovel %ecx,%eax 281bc3d5698SJohn Baldwin subl %eax,%esp 282bc3d5698SJohn Baldwin movl %edi,%eax 283bc3d5698SJohn Baldwin movl %ecx,%ebx 284bc3d5698SJohn Baldwin shrl $2,%ecx 285bc3d5698SJohn Baldwin leal (%esp),%edi 286bc3d5698SJohn Baldwin.byte 243,165 287bc3d5698SJohn Baldwin movl %esp,%esi 288bc3d5698SJohn Baldwin movl %eax,%edi 289bc3d5698SJohn Baldwin movl %ebx,%ecx 290bc3d5698SJohn Baldwin jmp .L009ecb_loop 291bc3d5698SJohn Baldwin.align 16 292bc3d5698SJohn Baldwin.L013ecb_break: 293bc3d5698SJohn Baldwin cmpl %ebp,%esp 294bc3d5698SJohn Baldwin je .L014ecb_done 295bc3d5698SJohn Baldwin pxor %xmm0,%xmm0 296bc3d5698SJohn Baldwin leal (%esp),%eax 297bc3d5698SJohn Baldwin.L015ecb_bzero: 298bc3d5698SJohn Baldwin movaps %xmm0,(%eax) 299bc3d5698SJohn Baldwin leal 16(%eax),%eax 300bc3d5698SJohn Baldwin cmpl %eax,%ebp 301bc3d5698SJohn Baldwin ja .L015ecb_bzero 302bc3d5698SJohn Baldwin.L014ecb_done: 303bc3d5698SJohn Baldwin movl 16(%ebp),%ebp 304bc3d5698SJohn Baldwin leal 24(%ebp),%esp 305bc3d5698SJohn Baldwin jmp .L016ecb_exit 306bc3d5698SJohn Baldwin.align 16 307bc3d5698SJohn Baldwin.L008ecb_aligned: 308bc3d5698SJohn Baldwin leal (%esi,%ecx,1),%ebp 309bc3d5698SJohn Baldwin negl %ebp 310bc3d5698SJohn Baldwin andl $4095,%ebp 311bc3d5698SJohn Baldwin xorl %eax,%eax 312bc3d5698SJohn Baldwin cmpl $128,%ebp 313bc3d5698SJohn Baldwin movl $127,%ebp 314bc3d5698SJohn Baldwin cmovael %eax,%ebp 315bc3d5698SJohn Baldwin andl %ecx,%ebp 316bc3d5698SJohn Baldwin subl %ebp,%ecx 317bc3d5698SJohn Baldwin jz .L017ecb_aligned_tail 318bc3d5698SJohn Baldwin leal -16(%edx),%eax 319bc3d5698SJohn Baldwin leal 16(%edx),%ebx 320bc3d5698SJohn Baldwin shrl $4,%ecx 321bc3d5698SJohn Baldwin.byte 243,15,167,200 322bc3d5698SJohn Baldwin testl %ebp,%ebp 323bc3d5698SJohn Baldwin jz .L016ecb_exit 324bc3d5698SJohn Baldwin.L017ecb_aligned_tail: 325bc3d5698SJohn Baldwin movl %ebp,%ecx 326bc3d5698SJohn Baldwin leal -24(%esp),%ebp 327bc3d5698SJohn Baldwin movl %ebp,%esp 328bc3d5698SJohn Baldwin movl %ebp,%eax 329bc3d5698SJohn Baldwin subl %ecx,%esp 330bc3d5698SJohn Baldwin andl $-16,%ebp 331bc3d5698SJohn Baldwin andl $-16,%esp 332bc3d5698SJohn Baldwin movl %eax,16(%ebp) 333bc3d5698SJohn Baldwin movl %edi,%eax 334bc3d5698SJohn Baldwin movl %ecx,%ebx 335bc3d5698SJohn Baldwin shrl $2,%ecx 336bc3d5698SJohn Baldwin leal (%esp),%edi 337bc3d5698SJohn Baldwin.byte 243,165 338bc3d5698SJohn Baldwin movl %esp,%esi 339bc3d5698SJohn Baldwin movl %eax,%edi 340bc3d5698SJohn Baldwin movl %ebx,%ecx 341bc3d5698SJohn Baldwin jmp .L009ecb_loop 342bc3d5698SJohn Baldwin.L016ecb_exit: 343bc3d5698SJohn Baldwin movl $1,%eax 344bc3d5698SJohn Baldwin leal 4(%esp),%esp 345bc3d5698SJohn Baldwin.L006ecb_abort: 346bc3d5698SJohn Baldwin popl %edi 347bc3d5698SJohn Baldwin popl %esi 348bc3d5698SJohn Baldwin popl %ebx 349bc3d5698SJohn Baldwin popl %ebp 350bc3d5698SJohn Baldwin ret 351bc3d5698SJohn Baldwin.size padlock_ecb_encrypt,.-.L_padlock_ecb_encrypt_begin 352bc3d5698SJohn Baldwin.globl padlock_cbc_encrypt 353bc3d5698SJohn Baldwin.type padlock_cbc_encrypt,@function 354bc3d5698SJohn Baldwin.align 16 355bc3d5698SJohn Baldwinpadlock_cbc_encrypt: 356bc3d5698SJohn Baldwin.L_padlock_cbc_encrypt_begin: 357*c0855eaaSJohn Baldwin #ifdef __CET__ 358*c0855eaaSJohn Baldwin 359*c0855eaaSJohn Baldwin.byte 243,15,30,251 360*c0855eaaSJohn Baldwin #endif 361*c0855eaaSJohn Baldwin 362bc3d5698SJohn Baldwin pushl %ebp 363bc3d5698SJohn Baldwin pushl %ebx 364bc3d5698SJohn Baldwin pushl %esi 365bc3d5698SJohn Baldwin pushl %edi 366bc3d5698SJohn Baldwin movl 20(%esp),%edi 367bc3d5698SJohn Baldwin movl 24(%esp),%esi 368bc3d5698SJohn Baldwin movl 28(%esp),%edx 369bc3d5698SJohn Baldwin movl 32(%esp),%ecx 370bc3d5698SJohn Baldwin testl $15,%edx 371bc3d5698SJohn Baldwin jnz .L018cbc_abort 372bc3d5698SJohn Baldwin testl $15,%ecx 373bc3d5698SJohn Baldwin jnz .L018cbc_abort 374bc3d5698SJohn Baldwin leal .Lpadlock_saved_context-.L019cbc_pic_point,%eax 375bc3d5698SJohn Baldwin pushfl 376bc3d5698SJohn Baldwin cld 377bc3d5698SJohn Baldwin call _padlock_verify_ctx 378bc3d5698SJohn Baldwin.L019cbc_pic_point: 379bc3d5698SJohn Baldwin leal 16(%edx),%edx 380bc3d5698SJohn Baldwin xorl %eax,%eax 381bc3d5698SJohn Baldwin xorl %ebx,%ebx 382bc3d5698SJohn Baldwin testl $32,(%edx) 383bc3d5698SJohn Baldwin jnz .L020cbc_aligned 384bc3d5698SJohn Baldwin testl $15,%edi 385bc3d5698SJohn Baldwin setz %al 386bc3d5698SJohn Baldwin testl $15,%esi 387bc3d5698SJohn Baldwin setz %bl 388bc3d5698SJohn Baldwin testl %ebx,%eax 389bc3d5698SJohn Baldwin jnz .L020cbc_aligned 390bc3d5698SJohn Baldwin negl %eax 391bc3d5698SJohn Baldwin movl $512,%ebx 392bc3d5698SJohn Baldwin notl %eax 393bc3d5698SJohn Baldwin leal -24(%esp),%ebp 394bc3d5698SJohn Baldwin cmpl %ebx,%ecx 395bc3d5698SJohn Baldwin cmovcl %ecx,%ebx 396bc3d5698SJohn Baldwin andl %ebx,%eax 397bc3d5698SJohn Baldwin movl %ecx,%ebx 398bc3d5698SJohn Baldwin negl %eax 399bc3d5698SJohn Baldwin andl $511,%ebx 400bc3d5698SJohn Baldwin leal (%eax,%ebp,1),%esp 401bc3d5698SJohn Baldwin movl $512,%eax 402bc3d5698SJohn Baldwin cmovzl %eax,%ebx 403bc3d5698SJohn Baldwin movl %ebp,%eax 404bc3d5698SJohn Baldwin andl $-16,%ebp 405bc3d5698SJohn Baldwin andl $-16,%esp 406bc3d5698SJohn Baldwin movl %eax,16(%ebp) 407bc3d5698SJohn Baldwin cmpl %ebx,%ecx 408bc3d5698SJohn Baldwin ja .L021cbc_loop 409bc3d5698SJohn Baldwin movl %esi,%eax 410bc3d5698SJohn Baldwin cmpl %esp,%ebp 411bc3d5698SJohn Baldwin cmovel %edi,%eax 412bc3d5698SJohn Baldwin addl %ecx,%eax 413bc3d5698SJohn Baldwin negl %eax 414bc3d5698SJohn Baldwin andl $4095,%eax 415bc3d5698SJohn Baldwin cmpl $64,%eax 416bc3d5698SJohn Baldwin movl $-64,%eax 417bc3d5698SJohn Baldwin cmovael %ebx,%eax 418bc3d5698SJohn Baldwin andl %eax,%ebx 419bc3d5698SJohn Baldwin jz .L022cbc_unaligned_tail 420bc3d5698SJohn Baldwin jmp .L021cbc_loop 421bc3d5698SJohn Baldwin.align 16 422bc3d5698SJohn Baldwin.L021cbc_loop: 423bc3d5698SJohn Baldwin movl %edi,(%ebp) 424bc3d5698SJohn Baldwin movl %esi,4(%ebp) 425bc3d5698SJohn Baldwin movl %ecx,8(%ebp) 426bc3d5698SJohn Baldwin movl %ebx,%ecx 427bc3d5698SJohn Baldwin movl %ebx,12(%ebp) 428bc3d5698SJohn Baldwin testl $15,%edi 429bc3d5698SJohn Baldwin cmovnzl %esp,%edi 430bc3d5698SJohn Baldwin testl $15,%esi 431bc3d5698SJohn Baldwin jz .L023cbc_inp_aligned 432bc3d5698SJohn Baldwin shrl $2,%ecx 433bc3d5698SJohn Baldwin.byte 243,165 434bc3d5698SJohn Baldwin subl %ebx,%edi 435bc3d5698SJohn Baldwin movl %ebx,%ecx 436bc3d5698SJohn Baldwin movl %edi,%esi 437bc3d5698SJohn Baldwin.L023cbc_inp_aligned: 438bc3d5698SJohn Baldwin leal -16(%edx),%eax 439bc3d5698SJohn Baldwin leal 16(%edx),%ebx 440bc3d5698SJohn Baldwin shrl $4,%ecx 441bc3d5698SJohn Baldwin.byte 243,15,167,208 442bc3d5698SJohn Baldwin movaps (%eax),%xmm0 443bc3d5698SJohn Baldwin movaps %xmm0,-16(%edx) 444bc3d5698SJohn Baldwin movl (%ebp),%edi 445bc3d5698SJohn Baldwin movl 12(%ebp),%ebx 446bc3d5698SJohn Baldwin testl $15,%edi 447bc3d5698SJohn Baldwin jz .L024cbc_out_aligned 448bc3d5698SJohn Baldwin movl %ebx,%ecx 449bc3d5698SJohn Baldwin leal (%esp),%esi 450bc3d5698SJohn Baldwin shrl $2,%ecx 451bc3d5698SJohn Baldwin.byte 243,165 452bc3d5698SJohn Baldwin subl %ebx,%edi 453bc3d5698SJohn Baldwin.L024cbc_out_aligned: 454bc3d5698SJohn Baldwin movl 4(%ebp),%esi 455bc3d5698SJohn Baldwin movl 8(%ebp),%ecx 456bc3d5698SJohn Baldwin addl %ebx,%edi 457bc3d5698SJohn Baldwin addl %ebx,%esi 458bc3d5698SJohn Baldwin subl %ebx,%ecx 459bc3d5698SJohn Baldwin movl $512,%ebx 460bc3d5698SJohn Baldwin jz .L025cbc_break 461bc3d5698SJohn Baldwin cmpl %ebx,%ecx 462bc3d5698SJohn Baldwin jae .L021cbc_loop 463bc3d5698SJohn Baldwin.L022cbc_unaligned_tail: 464bc3d5698SJohn Baldwin xorl %eax,%eax 465bc3d5698SJohn Baldwin cmpl %ebp,%esp 466bc3d5698SJohn Baldwin cmovel %ecx,%eax 467bc3d5698SJohn Baldwin subl %eax,%esp 468bc3d5698SJohn Baldwin movl %edi,%eax 469bc3d5698SJohn Baldwin movl %ecx,%ebx 470bc3d5698SJohn Baldwin shrl $2,%ecx 471bc3d5698SJohn Baldwin leal (%esp),%edi 472bc3d5698SJohn Baldwin.byte 243,165 473bc3d5698SJohn Baldwin movl %esp,%esi 474bc3d5698SJohn Baldwin movl %eax,%edi 475bc3d5698SJohn Baldwin movl %ebx,%ecx 476bc3d5698SJohn Baldwin jmp .L021cbc_loop 477bc3d5698SJohn Baldwin.align 16 478bc3d5698SJohn Baldwin.L025cbc_break: 479bc3d5698SJohn Baldwin cmpl %ebp,%esp 480bc3d5698SJohn Baldwin je .L026cbc_done 481bc3d5698SJohn Baldwin pxor %xmm0,%xmm0 482bc3d5698SJohn Baldwin leal (%esp),%eax 483bc3d5698SJohn Baldwin.L027cbc_bzero: 484bc3d5698SJohn Baldwin movaps %xmm0,(%eax) 485bc3d5698SJohn Baldwin leal 16(%eax),%eax 486bc3d5698SJohn Baldwin cmpl %eax,%ebp 487bc3d5698SJohn Baldwin ja .L027cbc_bzero 488bc3d5698SJohn Baldwin.L026cbc_done: 489bc3d5698SJohn Baldwin movl 16(%ebp),%ebp 490bc3d5698SJohn Baldwin leal 24(%ebp),%esp 491bc3d5698SJohn Baldwin jmp .L028cbc_exit 492bc3d5698SJohn Baldwin.align 16 493bc3d5698SJohn Baldwin.L020cbc_aligned: 494bc3d5698SJohn Baldwin leal (%esi,%ecx,1),%ebp 495bc3d5698SJohn Baldwin negl %ebp 496bc3d5698SJohn Baldwin andl $4095,%ebp 497bc3d5698SJohn Baldwin xorl %eax,%eax 498bc3d5698SJohn Baldwin cmpl $64,%ebp 499bc3d5698SJohn Baldwin movl $63,%ebp 500bc3d5698SJohn Baldwin cmovael %eax,%ebp 501bc3d5698SJohn Baldwin andl %ecx,%ebp 502bc3d5698SJohn Baldwin subl %ebp,%ecx 503bc3d5698SJohn Baldwin jz .L029cbc_aligned_tail 504bc3d5698SJohn Baldwin leal -16(%edx),%eax 505bc3d5698SJohn Baldwin leal 16(%edx),%ebx 506bc3d5698SJohn Baldwin shrl $4,%ecx 507bc3d5698SJohn Baldwin.byte 243,15,167,208 508bc3d5698SJohn Baldwin movaps (%eax),%xmm0 509bc3d5698SJohn Baldwin movaps %xmm0,-16(%edx) 510bc3d5698SJohn Baldwin testl %ebp,%ebp 511bc3d5698SJohn Baldwin jz .L028cbc_exit 512bc3d5698SJohn Baldwin.L029cbc_aligned_tail: 513bc3d5698SJohn Baldwin movl %ebp,%ecx 514bc3d5698SJohn Baldwin leal -24(%esp),%ebp 515bc3d5698SJohn Baldwin movl %ebp,%esp 516bc3d5698SJohn Baldwin movl %ebp,%eax 517bc3d5698SJohn Baldwin subl %ecx,%esp 518bc3d5698SJohn Baldwin andl $-16,%ebp 519bc3d5698SJohn Baldwin andl $-16,%esp 520bc3d5698SJohn Baldwin movl %eax,16(%ebp) 521bc3d5698SJohn Baldwin movl %edi,%eax 522bc3d5698SJohn Baldwin movl %ecx,%ebx 523bc3d5698SJohn Baldwin shrl $2,%ecx 524bc3d5698SJohn Baldwin leal (%esp),%edi 525bc3d5698SJohn Baldwin.byte 243,165 526bc3d5698SJohn Baldwin movl %esp,%esi 527bc3d5698SJohn Baldwin movl %eax,%edi 528bc3d5698SJohn Baldwin movl %ebx,%ecx 529bc3d5698SJohn Baldwin jmp .L021cbc_loop 530bc3d5698SJohn Baldwin.L028cbc_exit: 531bc3d5698SJohn Baldwin movl $1,%eax 532bc3d5698SJohn Baldwin leal 4(%esp),%esp 533bc3d5698SJohn Baldwin.L018cbc_abort: 534bc3d5698SJohn Baldwin popl %edi 535bc3d5698SJohn Baldwin popl %esi 536bc3d5698SJohn Baldwin popl %ebx 537bc3d5698SJohn Baldwin popl %ebp 538bc3d5698SJohn Baldwin ret 539bc3d5698SJohn Baldwin.size padlock_cbc_encrypt,.-.L_padlock_cbc_encrypt_begin 540bc3d5698SJohn Baldwin.globl padlock_cfb_encrypt 541bc3d5698SJohn Baldwin.type padlock_cfb_encrypt,@function 542bc3d5698SJohn Baldwin.align 16 543bc3d5698SJohn Baldwinpadlock_cfb_encrypt: 544bc3d5698SJohn Baldwin.L_padlock_cfb_encrypt_begin: 545*c0855eaaSJohn Baldwin #ifdef __CET__ 546*c0855eaaSJohn Baldwin 547*c0855eaaSJohn Baldwin.byte 243,15,30,251 548*c0855eaaSJohn Baldwin #endif 549*c0855eaaSJohn Baldwin 550bc3d5698SJohn Baldwin pushl %ebp 551bc3d5698SJohn Baldwin pushl %ebx 552bc3d5698SJohn Baldwin pushl %esi 553bc3d5698SJohn Baldwin pushl %edi 554bc3d5698SJohn Baldwin movl 20(%esp),%edi 555bc3d5698SJohn Baldwin movl 24(%esp),%esi 556bc3d5698SJohn Baldwin movl 28(%esp),%edx 557bc3d5698SJohn Baldwin movl 32(%esp),%ecx 558bc3d5698SJohn Baldwin testl $15,%edx 559bc3d5698SJohn Baldwin jnz .L030cfb_abort 560bc3d5698SJohn Baldwin testl $15,%ecx 561bc3d5698SJohn Baldwin jnz .L030cfb_abort 562bc3d5698SJohn Baldwin leal .Lpadlock_saved_context-.L031cfb_pic_point,%eax 563bc3d5698SJohn Baldwin pushfl 564bc3d5698SJohn Baldwin cld 565bc3d5698SJohn Baldwin call _padlock_verify_ctx 566bc3d5698SJohn Baldwin.L031cfb_pic_point: 567bc3d5698SJohn Baldwin leal 16(%edx),%edx 568bc3d5698SJohn Baldwin xorl %eax,%eax 569bc3d5698SJohn Baldwin xorl %ebx,%ebx 570bc3d5698SJohn Baldwin testl $32,(%edx) 571bc3d5698SJohn Baldwin jnz .L032cfb_aligned 572bc3d5698SJohn Baldwin testl $15,%edi 573bc3d5698SJohn Baldwin setz %al 574bc3d5698SJohn Baldwin testl $15,%esi 575bc3d5698SJohn Baldwin setz %bl 576bc3d5698SJohn Baldwin testl %ebx,%eax 577bc3d5698SJohn Baldwin jnz .L032cfb_aligned 578bc3d5698SJohn Baldwin negl %eax 579bc3d5698SJohn Baldwin movl $512,%ebx 580bc3d5698SJohn Baldwin notl %eax 581bc3d5698SJohn Baldwin leal -24(%esp),%ebp 582bc3d5698SJohn Baldwin cmpl %ebx,%ecx 583bc3d5698SJohn Baldwin cmovcl %ecx,%ebx 584bc3d5698SJohn Baldwin andl %ebx,%eax 585bc3d5698SJohn Baldwin movl %ecx,%ebx 586bc3d5698SJohn Baldwin negl %eax 587bc3d5698SJohn Baldwin andl $511,%ebx 588bc3d5698SJohn Baldwin leal (%eax,%ebp,1),%esp 589bc3d5698SJohn Baldwin movl $512,%eax 590bc3d5698SJohn Baldwin cmovzl %eax,%ebx 591bc3d5698SJohn Baldwin movl %ebp,%eax 592bc3d5698SJohn Baldwin andl $-16,%ebp 593bc3d5698SJohn Baldwin andl $-16,%esp 594bc3d5698SJohn Baldwin movl %eax,16(%ebp) 595bc3d5698SJohn Baldwin jmp .L033cfb_loop 596bc3d5698SJohn Baldwin.align 16 597bc3d5698SJohn Baldwin.L033cfb_loop: 598bc3d5698SJohn Baldwin movl %edi,(%ebp) 599bc3d5698SJohn Baldwin movl %esi,4(%ebp) 600bc3d5698SJohn Baldwin movl %ecx,8(%ebp) 601bc3d5698SJohn Baldwin movl %ebx,%ecx 602bc3d5698SJohn Baldwin movl %ebx,12(%ebp) 603bc3d5698SJohn Baldwin testl $15,%edi 604bc3d5698SJohn Baldwin cmovnzl %esp,%edi 605bc3d5698SJohn Baldwin testl $15,%esi 606bc3d5698SJohn Baldwin jz .L034cfb_inp_aligned 607bc3d5698SJohn Baldwin shrl $2,%ecx 608bc3d5698SJohn Baldwin.byte 243,165 609bc3d5698SJohn Baldwin subl %ebx,%edi 610bc3d5698SJohn Baldwin movl %ebx,%ecx 611bc3d5698SJohn Baldwin movl %edi,%esi 612bc3d5698SJohn Baldwin.L034cfb_inp_aligned: 613bc3d5698SJohn Baldwin leal -16(%edx),%eax 614bc3d5698SJohn Baldwin leal 16(%edx),%ebx 615bc3d5698SJohn Baldwin shrl $4,%ecx 616bc3d5698SJohn Baldwin.byte 243,15,167,224 617bc3d5698SJohn Baldwin movaps (%eax),%xmm0 618bc3d5698SJohn Baldwin movaps %xmm0,-16(%edx) 619bc3d5698SJohn Baldwin movl (%ebp),%edi 620bc3d5698SJohn Baldwin movl 12(%ebp),%ebx 621bc3d5698SJohn Baldwin testl $15,%edi 622bc3d5698SJohn Baldwin jz .L035cfb_out_aligned 623bc3d5698SJohn Baldwin movl %ebx,%ecx 624bc3d5698SJohn Baldwin leal (%esp),%esi 625bc3d5698SJohn Baldwin shrl $2,%ecx 626bc3d5698SJohn Baldwin.byte 243,165 627bc3d5698SJohn Baldwin subl %ebx,%edi 628bc3d5698SJohn Baldwin.L035cfb_out_aligned: 629bc3d5698SJohn Baldwin movl 4(%ebp),%esi 630bc3d5698SJohn Baldwin movl 8(%ebp),%ecx 631bc3d5698SJohn Baldwin addl %ebx,%edi 632bc3d5698SJohn Baldwin addl %ebx,%esi 633bc3d5698SJohn Baldwin subl %ebx,%ecx 634bc3d5698SJohn Baldwin movl $512,%ebx 635bc3d5698SJohn Baldwin jnz .L033cfb_loop 636bc3d5698SJohn Baldwin cmpl %ebp,%esp 637bc3d5698SJohn Baldwin je .L036cfb_done 638bc3d5698SJohn Baldwin pxor %xmm0,%xmm0 639bc3d5698SJohn Baldwin leal (%esp),%eax 640bc3d5698SJohn Baldwin.L037cfb_bzero: 641bc3d5698SJohn Baldwin movaps %xmm0,(%eax) 642bc3d5698SJohn Baldwin leal 16(%eax),%eax 643bc3d5698SJohn Baldwin cmpl %eax,%ebp 644bc3d5698SJohn Baldwin ja .L037cfb_bzero 645bc3d5698SJohn Baldwin.L036cfb_done: 646bc3d5698SJohn Baldwin movl 16(%ebp),%ebp 647bc3d5698SJohn Baldwin leal 24(%ebp),%esp 648bc3d5698SJohn Baldwin jmp .L038cfb_exit 649bc3d5698SJohn Baldwin.align 16 650bc3d5698SJohn Baldwin.L032cfb_aligned: 651bc3d5698SJohn Baldwin leal -16(%edx),%eax 652bc3d5698SJohn Baldwin leal 16(%edx),%ebx 653bc3d5698SJohn Baldwin shrl $4,%ecx 654bc3d5698SJohn Baldwin.byte 243,15,167,224 655bc3d5698SJohn Baldwin movaps (%eax),%xmm0 656bc3d5698SJohn Baldwin movaps %xmm0,-16(%edx) 657bc3d5698SJohn Baldwin.L038cfb_exit: 658bc3d5698SJohn Baldwin movl $1,%eax 659bc3d5698SJohn Baldwin leal 4(%esp),%esp 660bc3d5698SJohn Baldwin.L030cfb_abort: 661bc3d5698SJohn Baldwin popl %edi 662bc3d5698SJohn Baldwin popl %esi 663bc3d5698SJohn Baldwin popl %ebx 664bc3d5698SJohn Baldwin popl %ebp 665bc3d5698SJohn Baldwin ret 666bc3d5698SJohn Baldwin.size padlock_cfb_encrypt,.-.L_padlock_cfb_encrypt_begin 667bc3d5698SJohn Baldwin.globl padlock_ofb_encrypt 668bc3d5698SJohn Baldwin.type padlock_ofb_encrypt,@function 669bc3d5698SJohn Baldwin.align 16 670bc3d5698SJohn Baldwinpadlock_ofb_encrypt: 671bc3d5698SJohn Baldwin.L_padlock_ofb_encrypt_begin: 672*c0855eaaSJohn Baldwin #ifdef __CET__ 673*c0855eaaSJohn Baldwin 674*c0855eaaSJohn Baldwin.byte 243,15,30,251 675*c0855eaaSJohn Baldwin #endif 676*c0855eaaSJohn Baldwin 677bc3d5698SJohn Baldwin pushl %ebp 678bc3d5698SJohn Baldwin pushl %ebx 679bc3d5698SJohn Baldwin pushl %esi 680bc3d5698SJohn Baldwin pushl %edi 681bc3d5698SJohn Baldwin movl 20(%esp),%edi 682bc3d5698SJohn Baldwin movl 24(%esp),%esi 683bc3d5698SJohn Baldwin movl 28(%esp),%edx 684bc3d5698SJohn Baldwin movl 32(%esp),%ecx 685bc3d5698SJohn Baldwin testl $15,%edx 686bc3d5698SJohn Baldwin jnz .L039ofb_abort 687bc3d5698SJohn Baldwin testl $15,%ecx 688bc3d5698SJohn Baldwin jnz .L039ofb_abort 689bc3d5698SJohn Baldwin leal .Lpadlock_saved_context-.L040ofb_pic_point,%eax 690bc3d5698SJohn Baldwin pushfl 691bc3d5698SJohn Baldwin cld 692bc3d5698SJohn Baldwin call _padlock_verify_ctx 693bc3d5698SJohn Baldwin.L040ofb_pic_point: 694bc3d5698SJohn Baldwin leal 16(%edx),%edx 695bc3d5698SJohn Baldwin xorl %eax,%eax 696bc3d5698SJohn Baldwin xorl %ebx,%ebx 697bc3d5698SJohn Baldwin testl $32,(%edx) 698bc3d5698SJohn Baldwin jnz .L041ofb_aligned 699bc3d5698SJohn Baldwin testl $15,%edi 700bc3d5698SJohn Baldwin setz %al 701bc3d5698SJohn Baldwin testl $15,%esi 702bc3d5698SJohn Baldwin setz %bl 703bc3d5698SJohn Baldwin testl %ebx,%eax 704bc3d5698SJohn Baldwin jnz .L041ofb_aligned 705bc3d5698SJohn Baldwin negl %eax 706bc3d5698SJohn Baldwin movl $512,%ebx 707bc3d5698SJohn Baldwin notl %eax 708bc3d5698SJohn Baldwin leal -24(%esp),%ebp 709bc3d5698SJohn Baldwin cmpl %ebx,%ecx 710bc3d5698SJohn Baldwin cmovcl %ecx,%ebx 711bc3d5698SJohn Baldwin andl %ebx,%eax 712bc3d5698SJohn Baldwin movl %ecx,%ebx 713bc3d5698SJohn Baldwin negl %eax 714bc3d5698SJohn Baldwin andl $511,%ebx 715bc3d5698SJohn Baldwin leal (%eax,%ebp,1),%esp 716bc3d5698SJohn Baldwin movl $512,%eax 717bc3d5698SJohn Baldwin cmovzl %eax,%ebx 718bc3d5698SJohn Baldwin movl %ebp,%eax 719bc3d5698SJohn Baldwin andl $-16,%ebp 720bc3d5698SJohn Baldwin andl $-16,%esp 721bc3d5698SJohn Baldwin movl %eax,16(%ebp) 722bc3d5698SJohn Baldwin jmp .L042ofb_loop 723bc3d5698SJohn Baldwin.align 16 724bc3d5698SJohn Baldwin.L042ofb_loop: 725bc3d5698SJohn Baldwin movl %edi,(%ebp) 726bc3d5698SJohn Baldwin movl %esi,4(%ebp) 727bc3d5698SJohn Baldwin movl %ecx,8(%ebp) 728bc3d5698SJohn Baldwin movl %ebx,%ecx 729bc3d5698SJohn Baldwin movl %ebx,12(%ebp) 730bc3d5698SJohn Baldwin testl $15,%edi 731bc3d5698SJohn Baldwin cmovnzl %esp,%edi 732bc3d5698SJohn Baldwin testl $15,%esi 733bc3d5698SJohn Baldwin jz .L043ofb_inp_aligned 734bc3d5698SJohn Baldwin shrl $2,%ecx 735bc3d5698SJohn Baldwin.byte 243,165 736bc3d5698SJohn Baldwin subl %ebx,%edi 737bc3d5698SJohn Baldwin movl %ebx,%ecx 738bc3d5698SJohn Baldwin movl %edi,%esi 739bc3d5698SJohn Baldwin.L043ofb_inp_aligned: 740bc3d5698SJohn Baldwin leal -16(%edx),%eax 741bc3d5698SJohn Baldwin leal 16(%edx),%ebx 742bc3d5698SJohn Baldwin shrl $4,%ecx 743bc3d5698SJohn Baldwin.byte 243,15,167,232 744bc3d5698SJohn Baldwin movaps (%eax),%xmm0 745bc3d5698SJohn Baldwin movaps %xmm0,-16(%edx) 746bc3d5698SJohn Baldwin movl (%ebp),%edi 747bc3d5698SJohn Baldwin movl 12(%ebp),%ebx 748bc3d5698SJohn Baldwin testl $15,%edi 749bc3d5698SJohn Baldwin jz .L044ofb_out_aligned 750bc3d5698SJohn Baldwin movl %ebx,%ecx 751bc3d5698SJohn Baldwin leal (%esp),%esi 752bc3d5698SJohn Baldwin shrl $2,%ecx 753bc3d5698SJohn Baldwin.byte 243,165 754bc3d5698SJohn Baldwin subl %ebx,%edi 755bc3d5698SJohn Baldwin.L044ofb_out_aligned: 756bc3d5698SJohn Baldwin movl 4(%ebp),%esi 757bc3d5698SJohn Baldwin movl 8(%ebp),%ecx 758bc3d5698SJohn Baldwin addl %ebx,%edi 759bc3d5698SJohn Baldwin addl %ebx,%esi 760bc3d5698SJohn Baldwin subl %ebx,%ecx 761bc3d5698SJohn Baldwin movl $512,%ebx 762bc3d5698SJohn Baldwin jnz .L042ofb_loop 763bc3d5698SJohn Baldwin cmpl %ebp,%esp 764bc3d5698SJohn Baldwin je .L045ofb_done 765bc3d5698SJohn Baldwin pxor %xmm0,%xmm0 766bc3d5698SJohn Baldwin leal (%esp),%eax 767bc3d5698SJohn Baldwin.L046ofb_bzero: 768bc3d5698SJohn Baldwin movaps %xmm0,(%eax) 769bc3d5698SJohn Baldwin leal 16(%eax),%eax 770bc3d5698SJohn Baldwin cmpl %eax,%ebp 771bc3d5698SJohn Baldwin ja .L046ofb_bzero 772bc3d5698SJohn Baldwin.L045ofb_done: 773bc3d5698SJohn Baldwin movl 16(%ebp),%ebp 774bc3d5698SJohn Baldwin leal 24(%ebp),%esp 775bc3d5698SJohn Baldwin jmp .L047ofb_exit 776bc3d5698SJohn Baldwin.align 16 777bc3d5698SJohn Baldwin.L041ofb_aligned: 778bc3d5698SJohn Baldwin leal -16(%edx),%eax 779bc3d5698SJohn Baldwin leal 16(%edx),%ebx 780bc3d5698SJohn Baldwin shrl $4,%ecx 781bc3d5698SJohn Baldwin.byte 243,15,167,232 782bc3d5698SJohn Baldwin movaps (%eax),%xmm0 783bc3d5698SJohn Baldwin movaps %xmm0,-16(%edx) 784bc3d5698SJohn Baldwin.L047ofb_exit: 785bc3d5698SJohn Baldwin movl $1,%eax 786bc3d5698SJohn Baldwin leal 4(%esp),%esp 787bc3d5698SJohn Baldwin.L039ofb_abort: 788bc3d5698SJohn Baldwin popl %edi 789bc3d5698SJohn Baldwin popl %esi 790bc3d5698SJohn Baldwin popl %ebx 791bc3d5698SJohn Baldwin popl %ebp 792bc3d5698SJohn Baldwin ret 793bc3d5698SJohn Baldwin.size padlock_ofb_encrypt,.-.L_padlock_ofb_encrypt_begin 794bc3d5698SJohn Baldwin.globl padlock_ctr32_encrypt 795bc3d5698SJohn Baldwin.type padlock_ctr32_encrypt,@function 796bc3d5698SJohn Baldwin.align 16 797bc3d5698SJohn Baldwinpadlock_ctr32_encrypt: 798bc3d5698SJohn Baldwin.L_padlock_ctr32_encrypt_begin: 799*c0855eaaSJohn Baldwin #ifdef __CET__ 800*c0855eaaSJohn Baldwin 801*c0855eaaSJohn Baldwin.byte 243,15,30,251 802*c0855eaaSJohn Baldwin #endif 803*c0855eaaSJohn Baldwin 804bc3d5698SJohn Baldwin pushl %ebp 805bc3d5698SJohn Baldwin pushl %ebx 806bc3d5698SJohn Baldwin pushl %esi 807bc3d5698SJohn Baldwin pushl %edi 808bc3d5698SJohn Baldwin movl 20(%esp),%edi 809bc3d5698SJohn Baldwin movl 24(%esp),%esi 810bc3d5698SJohn Baldwin movl 28(%esp),%edx 811bc3d5698SJohn Baldwin movl 32(%esp),%ecx 812bc3d5698SJohn Baldwin testl $15,%edx 813bc3d5698SJohn Baldwin jnz .L048ctr32_abort 814bc3d5698SJohn Baldwin testl $15,%ecx 815bc3d5698SJohn Baldwin jnz .L048ctr32_abort 816bc3d5698SJohn Baldwin leal .Lpadlock_saved_context-.L049ctr32_pic_point,%eax 817bc3d5698SJohn Baldwin pushfl 818bc3d5698SJohn Baldwin cld 819bc3d5698SJohn Baldwin call _padlock_verify_ctx 820bc3d5698SJohn Baldwin.L049ctr32_pic_point: 821bc3d5698SJohn Baldwin leal 16(%edx),%edx 822bc3d5698SJohn Baldwin xorl %eax,%eax 823bc3d5698SJohn Baldwin movq -16(%edx),%mm0 824bc3d5698SJohn Baldwin movl $512,%ebx 825bc3d5698SJohn Baldwin notl %eax 826bc3d5698SJohn Baldwin leal -24(%esp),%ebp 827bc3d5698SJohn Baldwin cmpl %ebx,%ecx 828bc3d5698SJohn Baldwin cmovcl %ecx,%ebx 829bc3d5698SJohn Baldwin andl %ebx,%eax 830bc3d5698SJohn Baldwin movl %ecx,%ebx 831bc3d5698SJohn Baldwin negl %eax 832bc3d5698SJohn Baldwin andl $511,%ebx 833bc3d5698SJohn Baldwin leal (%eax,%ebp,1),%esp 834bc3d5698SJohn Baldwin movl $512,%eax 835bc3d5698SJohn Baldwin cmovzl %eax,%ebx 836bc3d5698SJohn Baldwin movl %ebp,%eax 837bc3d5698SJohn Baldwin andl $-16,%ebp 838bc3d5698SJohn Baldwin andl $-16,%esp 839bc3d5698SJohn Baldwin movl %eax,16(%ebp) 840bc3d5698SJohn Baldwin jmp .L050ctr32_loop 841bc3d5698SJohn Baldwin.align 16 842bc3d5698SJohn Baldwin.L050ctr32_loop: 843bc3d5698SJohn Baldwin movl %edi,(%ebp) 844bc3d5698SJohn Baldwin movl %esi,4(%ebp) 845bc3d5698SJohn Baldwin movl %ecx,8(%ebp) 846bc3d5698SJohn Baldwin movl %ebx,%ecx 847bc3d5698SJohn Baldwin movl %ebx,12(%ebp) 848bc3d5698SJohn Baldwin movl -4(%edx),%ecx 849bc3d5698SJohn Baldwin xorl %edi,%edi 850bc3d5698SJohn Baldwin movl -8(%edx),%eax 851bc3d5698SJohn Baldwin.L051ctr32_prepare: 852bc3d5698SJohn Baldwin movl %ecx,12(%esp,%edi,1) 853bc3d5698SJohn Baldwin bswap %ecx 854bc3d5698SJohn Baldwin movq %mm0,(%esp,%edi,1) 855bc3d5698SJohn Baldwin incl %ecx 856bc3d5698SJohn Baldwin movl %eax,8(%esp,%edi,1) 857bc3d5698SJohn Baldwin bswap %ecx 858bc3d5698SJohn Baldwin leal 16(%edi),%edi 859bc3d5698SJohn Baldwin cmpl %ebx,%edi 860bc3d5698SJohn Baldwin jb .L051ctr32_prepare 861bc3d5698SJohn Baldwin movl %ecx,-4(%edx) 862bc3d5698SJohn Baldwin leal (%esp),%esi 863bc3d5698SJohn Baldwin leal (%esp),%edi 864bc3d5698SJohn Baldwin movl %ebx,%ecx 865bc3d5698SJohn Baldwin leal -16(%edx),%eax 866bc3d5698SJohn Baldwin leal 16(%edx),%ebx 867bc3d5698SJohn Baldwin shrl $4,%ecx 868bc3d5698SJohn Baldwin.byte 243,15,167,200 869bc3d5698SJohn Baldwin movl (%ebp),%edi 870bc3d5698SJohn Baldwin movl 12(%ebp),%ebx 871bc3d5698SJohn Baldwin movl 4(%ebp),%esi 872bc3d5698SJohn Baldwin xorl %ecx,%ecx 873bc3d5698SJohn Baldwin.L052ctr32_xor: 874bc3d5698SJohn Baldwin movups (%esi,%ecx,1),%xmm1 875bc3d5698SJohn Baldwin leal 16(%ecx),%ecx 876bc3d5698SJohn Baldwin pxor -16(%esp,%ecx,1),%xmm1 877bc3d5698SJohn Baldwin movups %xmm1,-16(%edi,%ecx,1) 878bc3d5698SJohn Baldwin cmpl %ebx,%ecx 879bc3d5698SJohn Baldwin jb .L052ctr32_xor 880bc3d5698SJohn Baldwin movl 8(%ebp),%ecx 881bc3d5698SJohn Baldwin addl %ebx,%edi 882bc3d5698SJohn Baldwin addl %ebx,%esi 883bc3d5698SJohn Baldwin subl %ebx,%ecx 884bc3d5698SJohn Baldwin movl $512,%ebx 885bc3d5698SJohn Baldwin jnz .L050ctr32_loop 886bc3d5698SJohn Baldwin pxor %xmm0,%xmm0 887bc3d5698SJohn Baldwin leal (%esp),%eax 888bc3d5698SJohn Baldwin.L053ctr32_bzero: 889bc3d5698SJohn Baldwin movaps %xmm0,(%eax) 890bc3d5698SJohn Baldwin leal 16(%eax),%eax 891bc3d5698SJohn Baldwin cmpl %eax,%ebp 892bc3d5698SJohn Baldwin ja .L053ctr32_bzero 893bc3d5698SJohn Baldwin.L054ctr32_done: 894bc3d5698SJohn Baldwin movl 16(%ebp),%ebp 895bc3d5698SJohn Baldwin leal 24(%ebp),%esp 896bc3d5698SJohn Baldwin movl $1,%eax 897bc3d5698SJohn Baldwin leal 4(%esp),%esp 898bc3d5698SJohn Baldwin emms 899bc3d5698SJohn Baldwin.L048ctr32_abort: 900bc3d5698SJohn Baldwin popl %edi 901bc3d5698SJohn Baldwin popl %esi 902bc3d5698SJohn Baldwin popl %ebx 903bc3d5698SJohn Baldwin popl %ebp 904bc3d5698SJohn Baldwin ret 905bc3d5698SJohn Baldwin.size padlock_ctr32_encrypt,.-.L_padlock_ctr32_encrypt_begin 906bc3d5698SJohn Baldwin.globl padlock_xstore 907bc3d5698SJohn Baldwin.type padlock_xstore,@function 908bc3d5698SJohn Baldwin.align 16 909bc3d5698SJohn Baldwinpadlock_xstore: 910bc3d5698SJohn Baldwin.L_padlock_xstore_begin: 911*c0855eaaSJohn Baldwin #ifdef __CET__ 912*c0855eaaSJohn Baldwin 913*c0855eaaSJohn Baldwin.byte 243,15,30,251 914*c0855eaaSJohn Baldwin #endif 915*c0855eaaSJohn Baldwin 916bc3d5698SJohn Baldwin pushl %edi 917bc3d5698SJohn Baldwin movl 8(%esp),%edi 918bc3d5698SJohn Baldwin movl 12(%esp),%edx 919bc3d5698SJohn Baldwin.byte 15,167,192 920bc3d5698SJohn Baldwin popl %edi 921bc3d5698SJohn Baldwin ret 922bc3d5698SJohn Baldwin.size padlock_xstore,.-.L_padlock_xstore_begin 923bc3d5698SJohn Baldwin.type _win32_segv_handler,@function 924bc3d5698SJohn Baldwin.align 16 925bc3d5698SJohn Baldwin_win32_segv_handler: 926*c0855eaaSJohn Baldwin #ifdef __CET__ 927*c0855eaaSJohn Baldwin 928*c0855eaaSJohn Baldwin.byte 243,15,30,251 929*c0855eaaSJohn Baldwin #endif 930*c0855eaaSJohn Baldwin 931bc3d5698SJohn Baldwin movl $1,%eax 932bc3d5698SJohn Baldwin movl 4(%esp),%edx 933bc3d5698SJohn Baldwin movl 12(%esp),%ecx 934bc3d5698SJohn Baldwin cmpl $3221225477,(%edx) 935bc3d5698SJohn Baldwin jne .L055ret 936bc3d5698SJohn Baldwin addl $4,184(%ecx) 937bc3d5698SJohn Baldwin movl $0,%eax 938bc3d5698SJohn Baldwin.L055ret: 939bc3d5698SJohn Baldwin ret 940bc3d5698SJohn Baldwin.size _win32_segv_handler,.-_win32_segv_handler 941bc3d5698SJohn Baldwin.globl padlock_sha1_oneshot 942bc3d5698SJohn Baldwin.type padlock_sha1_oneshot,@function 943bc3d5698SJohn Baldwin.align 16 944bc3d5698SJohn Baldwinpadlock_sha1_oneshot: 945bc3d5698SJohn Baldwin.L_padlock_sha1_oneshot_begin: 946*c0855eaaSJohn Baldwin #ifdef __CET__ 947*c0855eaaSJohn Baldwin 948*c0855eaaSJohn Baldwin.byte 243,15,30,251 949*c0855eaaSJohn Baldwin #endif 950*c0855eaaSJohn Baldwin 951bc3d5698SJohn Baldwin pushl %edi 952bc3d5698SJohn Baldwin pushl %esi 953bc3d5698SJohn Baldwin xorl %eax,%eax 954bc3d5698SJohn Baldwin movl 12(%esp),%edi 955bc3d5698SJohn Baldwin movl 16(%esp),%esi 956bc3d5698SJohn Baldwin movl 20(%esp),%ecx 957bc3d5698SJohn Baldwin movl %esp,%edx 958bc3d5698SJohn Baldwin addl $-128,%esp 959bc3d5698SJohn Baldwin movups (%edi),%xmm0 960bc3d5698SJohn Baldwin andl $-16,%esp 961bc3d5698SJohn Baldwin movl 16(%edi),%eax 962bc3d5698SJohn Baldwin movaps %xmm0,(%esp) 963bc3d5698SJohn Baldwin movl %esp,%edi 964bc3d5698SJohn Baldwin movl %eax,16(%esp) 965bc3d5698SJohn Baldwin xorl %eax,%eax 966bc3d5698SJohn Baldwin.byte 243,15,166,200 967bc3d5698SJohn Baldwin movaps (%esp),%xmm0 968bc3d5698SJohn Baldwin movl 16(%esp),%eax 969bc3d5698SJohn Baldwin movl %edx,%esp 970bc3d5698SJohn Baldwin movl 12(%esp),%edi 971bc3d5698SJohn Baldwin movups %xmm0,(%edi) 972bc3d5698SJohn Baldwin movl %eax,16(%edi) 973bc3d5698SJohn Baldwin popl %esi 974bc3d5698SJohn Baldwin popl %edi 975bc3d5698SJohn Baldwin ret 976bc3d5698SJohn Baldwin.size padlock_sha1_oneshot,.-.L_padlock_sha1_oneshot_begin 977bc3d5698SJohn Baldwin.globl padlock_sha1_blocks 978bc3d5698SJohn Baldwin.type padlock_sha1_blocks,@function 979bc3d5698SJohn Baldwin.align 16 980bc3d5698SJohn Baldwinpadlock_sha1_blocks: 981bc3d5698SJohn Baldwin.L_padlock_sha1_blocks_begin: 982*c0855eaaSJohn Baldwin #ifdef __CET__ 983*c0855eaaSJohn Baldwin 984*c0855eaaSJohn Baldwin.byte 243,15,30,251 985*c0855eaaSJohn Baldwin #endif 986*c0855eaaSJohn Baldwin 987bc3d5698SJohn Baldwin pushl %edi 988bc3d5698SJohn Baldwin pushl %esi 989bc3d5698SJohn Baldwin movl 12(%esp),%edi 990bc3d5698SJohn Baldwin movl 16(%esp),%esi 991bc3d5698SJohn Baldwin movl %esp,%edx 992bc3d5698SJohn Baldwin movl 20(%esp),%ecx 993bc3d5698SJohn Baldwin addl $-128,%esp 994bc3d5698SJohn Baldwin movups (%edi),%xmm0 995bc3d5698SJohn Baldwin andl $-16,%esp 996bc3d5698SJohn Baldwin movl 16(%edi),%eax 997bc3d5698SJohn Baldwin movaps %xmm0,(%esp) 998bc3d5698SJohn Baldwin movl %esp,%edi 999bc3d5698SJohn Baldwin movl %eax,16(%esp) 1000bc3d5698SJohn Baldwin movl $-1,%eax 1001bc3d5698SJohn Baldwin.byte 243,15,166,200 1002bc3d5698SJohn Baldwin movaps (%esp),%xmm0 1003bc3d5698SJohn Baldwin movl 16(%esp),%eax 1004bc3d5698SJohn Baldwin movl %edx,%esp 1005bc3d5698SJohn Baldwin movl 12(%esp),%edi 1006bc3d5698SJohn Baldwin movups %xmm0,(%edi) 1007bc3d5698SJohn Baldwin movl %eax,16(%edi) 1008bc3d5698SJohn Baldwin popl %esi 1009bc3d5698SJohn Baldwin popl %edi 1010bc3d5698SJohn Baldwin ret 1011bc3d5698SJohn Baldwin.size padlock_sha1_blocks,.-.L_padlock_sha1_blocks_begin 1012bc3d5698SJohn Baldwin.globl padlock_sha256_oneshot 1013bc3d5698SJohn Baldwin.type padlock_sha256_oneshot,@function 1014bc3d5698SJohn Baldwin.align 16 1015bc3d5698SJohn Baldwinpadlock_sha256_oneshot: 1016bc3d5698SJohn Baldwin.L_padlock_sha256_oneshot_begin: 1017*c0855eaaSJohn Baldwin #ifdef __CET__ 1018*c0855eaaSJohn Baldwin 1019*c0855eaaSJohn Baldwin.byte 243,15,30,251 1020*c0855eaaSJohn Baldwin #endif 1021*c0855eaaSJohn Baldwin 1022bc3d5698SJohn Baldwin pushl %edi 1023bc3d5698SJohn Baldwin pushl %esi 1024bc3d5698SJohn Baldwin xorl %eax,%eax 1025bc3d5698SJohn Baldwin movl 12(%esp),%edi 1026bc3d5698SJohn Baldwin movl 16(%esp),%esi 1027bc3d5698SJohn Baldwin movl 20(%esp),%ecx 1028bc3d5698SJohn Baldwin movl %esp,%edx 1029bc3d5698SJohn Baldwin addl $-128,%esp 1030bc3d5698SJohn Baldwin movups (%edi),%xmm0 1031bc3d5698SJohn Baldwin andl $-16,%esp 1032bc3d5698SJohn Baldwin movups 16(%edi),%xmm1 1033bc3d5698SJohn Baldwin movaps %xmm0,(%esp) 1034bc3d5698SJohn Baldwin movl %esp,%edi 1035bc3d5698SJohn Baldwin movaps %xmm1,16(%esp) 1036bc3d5698SJohn Baldwin xorl %eax,%eax 1037bc3d5698SJohn Baldwin.byte 243,15,166,208 1038bc3d5698SJohn Baldwin movaps (%esp),%xmm0 1039bc3d5698SJohn Baldwin movaps 16(%esp),%xmm1 1040bc3d5698SJohn Baldwin movl %edx,%esp 1041bc3d5698SJohn Baldwin movl 12(%esp),%edi 1042bc3d5698SJohn Baldwin movups %xmm0,(%edi) 1043bc3d5698SJohn Baldwin movups %xmm1,16(%edi) 1044bc3d5698SJohn Baldwin popl %esi 1045bc3d5698SJohn Baldwin popl %edi 1046bc3d5698SJohn Baldwin ret 1047bc3d5698SJohn Baldwin.size padlock_sha256_oneshot,.-.L_padlock_sha256_oneshot_begin 1048bc3d5698SJohn Baldwin.globl padlock_sha256_blocks 1049bc3d5698SJohn Baldwin.type padlock_sha256_blocks,@function 1050bc3d5698SJohn Baldwin.align 16 1051bc3d5698SJohn Baldwinpadlock_sha256_blocks: 1052bc3d5698SJohn Baldwin.L_padlock_sha256_blocks_begin: 1053*c0855eaaSJohn Baldwin #ifdef __CET__ 1054*c0855eaaSJohn Baldwin 1055*c0855eaaSJohn Baldwin.byte 243,15,30,251 1056*c0855eaaSJohn Baldwin #endif 1057*c0855eaaSJohn Baldwin 1058bc3d5698SJohn Baldwin pushl %edi 1059bc3d5698SJohn Baldwin pushl %esi 1060bc3d5698SJohn Baldwin movl 12(%esp),%edi 1061bc3d5698SJohn Baldwin movl 16(%esp),%esi 1062bc3d5698SJohn Baldwin movl 20(%esp),%ecx 1063bc3d5698SJohn Baldwin movl %esp,%edx 1064bc3d5698SJohn Baldwin addl $-128,%esp 1065bc3d5698SJohn Baldwin movups (%edi),%xmm0 1066bc3d5698SJohn Baldwin andl $-16,%esp 1067bc3d5698SJohn Baldwin movups 16(%edi),%xmm1 1068bc3d5698SJohn Baldwin movaps %xmm0,(%esp) 1069bc3d5698SJohn Baldwin movl %esp,%edi 1070bc3d5698SJohn Baldwin movaps %xmm1,16(%esp) 1071bc3d5698SJohn Baldwin movl $-1,%eax 1072bc3d5698SJohn Baldwin.byte 243,15,166,208 1073bc3d5698SJohn Baldwin movaps (%esp),%xmm0 1074bc3d5698SJohn Baldwin movaps 16(%esp),%xmm1 1075bc3d5698SJohn Baldwin movl %edx,%esp 1076bc3d5698SJohn Baldwin movl 12(%esp),%edi 1077bc3d5698SJohn Baldwin movups %xmm0,(%edi) 1078bc3d5698SJohn Baldwin movups %xmm1,16(%edi) 1079bc3d5698SJohn Baldwin popl %esi 1080bc3d5698SJohn Baldwin popl %edi 1081bc3d5698SJohn Baldwin ret 1082bc3d5698SJohn Baldwin.size padlock_sha256_blocks,.-.L_padlock_sha256_blocks_begin 1083bc3d5698SJohn Baldwin.globl padlock_sha512_blocks 1084bc3d5698SJohn Baldwin.type padlock_sha512_blocks,@function 1085bc3d5698SJohn Baldwin.align 16 1086bc3d5698SJohn Baldwinpadlock_sha512_blocks: 1087bc3d5698SJohn Baldwin.L_padlock_sha512_blocks_begin: 1088*c0855eaaSJohn Baldwin #ifdef __CET__ 1089*c0855eaaSJohn Baldwin 1090*c0855eaaSJohn Baldwin.byte 243,15,30,251 1091*c0855eaaSJohn Baldwin #endif 1092*c0855eaaSJohn Baldwin 1093bc3d5698SJohn Baldwin pushl %edi 1094bc3d5698SJohn Baldwin pushl %esi 1095bc3d5698SJohn Baldwin movl 12(%esp),%edi 1096bc3d5698SJohn Baldwin movl 16(%esp),%esi 1097bc3d5698SJohn Baldwin movl 20(%esp),%ecx 1098bc3d5698SJohn Baldwin movl %esp,%edx 1099bc3d5698SJohn Baldwin addl $-128,%esp 1100bc3d5698SJohn Baldwin movups (%edi),%xmm0 1101bc3d5698SJohn Baldwin andl $-16,%esp 1102bc3d5698SJohn Baldwin movups 16(%edi),%xmm1 1103bc3d5698SJohn Baldwin movups 32(%edi),%xmm2 1104bc3d5698SJohn Baldwin movups 48(%edi),%xmm3 1105bc3d5698SJohn Baldwin movaps %xmm0,(%esp) 1106bc3d5698SJohn Baldwin movl %esp,%edi 1107bc3d5698SJohn Baldwin movaps %xmm1,16(%esp) 1108bc3d5698SJohn Baldwin movaps %xmm2,32(%esp) 1109bc3d5698SJohn Baldwin movaps %xmm3,48(%esp) 1110bc3d5698SJohn Baldwin.byte 243,15,166,224 1111bc3d5698SJohn Baldwin movaps (%esp),%xmm0 1112bc3d5698SJohn Baldwin movaps 16(%esp),%xmm1 1113bc3d5698SJohn Baldwin movaps 32(%esp),%xmm2 1114bc3d5698SJohn Baldwin movaps 48(%esp),%xmm3 1115bc3d5698SJohn Baldwin movl %edx,%esp 1116bc3d5698SJohn Baldwin movl 12(%esp),%edi 1117bc3d5698SJohn Baldwin movups %xmm0,(%edi) 1118bc3d5698SJohn Baldwin movups %xmm1,16(%edi) 1119bc3d5698SJohn Baldwin movups %xmm2,32(%edi) 1120bc3d5698SJohn Baldwin movups %xmm3,48(%edi) 1121bc3d5698SJohn Baldwin popl %esi 1122bc3d5698SJohn Baldwin popl %edi 1123bc3d5698SJohn Baldwin ret 1124bc3d5698SJohn Baldwin.size padlock_sha512_blocks,.-.L_padlock_sha512_blocks_begin 1125bc3d5698SJohn Baldwin.byte 86,73,65,32,80,97,100,108,111,99,107,32,120,56,54,32 1126bc3d5698SJohn Baldwin.byte 109,111,100,117,108,101,44,32,67,82,89,80,84,79,71,65 1127bc3d5698SJohn Baldwin.byte 77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101 1128bc3d5698SJohn Baldwin.byte 110,115,115,108,46,111,114,103,62,0 1129bc3d5698SJohn Baldwin.align 16 1130bc3d5698SJohn Baldwin.data 1131bc3d5698SJohn Baldwin.align 4 1132bc3d5698SJohn Baldwin.Lpadlock_saved_context: 1133bc3d5698SJohn Baldwin.long 0 1134*c0855eaaSJohn Baldwin 1135*c0855eaaSJohn Baldwin .section ".note.gnu.property", "a" 1136*c0855eaaSJohn Baldwin .p2align 2 1137*c0855eaaSJohn Baldwin .long 1f - 0f 1138*c0855eaaSJohn Baldwin .long 4f - 1f 1139*c0855eaaSJohn Baldwin .long 5 1140*c0855eaaSJohn Baldwin0: 1141*c0855eaaSJohn Baldwin .asciz "GNU" 1142*c0855eaaSJohn Baldwin1: 1143*c0855eaaSJohn Baldwin .p2align 2 1144*c0855eaaSJohn Baldwin .long 0xc0000002 1145*c0855eaaSJohn Baldwin .long 3f - 2f 1146*c0855eaaSJohn Baldwin2: 1147*c0855eaaSJohn Baldwin .long 3 1148*c0855eaaSJohn Baldwin3: 1149*c0855eaaSJohn Baldwin .p2align 2 1150*c0855eaaSJohn Baldwin4: 1151bc3d5698SJohn Baldwin#else 1152bc3d5698SJohn Baldwin.text 1153bc3d5698SJohn Baldwin.globl padlock_capability 1154bc3d5698SJohn Baldwin.type padlock_capability,@function 1155bc3d5698SJohn Baldwin.align 16 1156bc3d5698SJohn Baldwinpadlock_capability: 1157bc3d5698SJohn Baldwin.L_padlock_capability_begin: 1158*c0855eaaSJohn Baldwin #ifdef __CET__ 1159*c0855eaaSJohn Baldwin 1160*c0855eaaSJohn Baldwin.byte 243,15,30,251 1161*c0855eaaSJohn Baldwin #endif 1162*c0855eaaSJohn Baldwin 1163bc3d5698SJohn Baldwin pushl %ebx 1164bc3d5698SJohn Baldwin pushfl 1165bc3d5698SJohn Baldwin popl %eax 1166bc3d5698SJohn Baldwin movl %eax,%ecx 1167bc3d5698SJohn Baldwin xorl $2097152,%eax 1168bc3d5698SJohn Baldwin pushl %eax 1169bc3d5698SJohn Baldwin popfl 1170bc3d5698SJohn Baldwin pushfl 1171bc3d5698SJohn Baldwin popl %eax 1172bc3d5698SJohn Baldwin xorl %eax,%ecx 1173bc3d5698SJohn Baldwin xorl %eax,%eax 1174bc3d5698SJohn Baldwin btl $21,%ecx 1175bc3d5698SJohn Baldwin jnc .L000noluck 1176bc3d5698SJohn Baldwin .byte 0x0f,0xa2 1177bc3d5698SJohn Baldwin xorl %eax,%eax 1178bc3d5698SJohn Baldwin cmpl $0x746e6543,%ebx 1179bc3d5698SJohn Baldwin jne .L001zhaoxin 1180bc3d5698SJohn Baldwin cmpl $0x48727561,%edx 1181bc3d5698SJohn Baldwin jne .L000noluck 1182bc3d5698SJohn Baldwin cmpl $0x736c7561,%ecx 1183bc3d5698SJohn Baldwin jne .L000noluck 1184bc3d5698SJohn Baldwin jmp .L002zhaoxinEnd 1185bc3d5698SJohn Baldwin.L001zhaoxin: 1186bc3d5698SJohn Baldwin cmpl $0x68532020,%ebx 1187bc3d5698SJohn Baldwin jne .L000noluck 1188bc3d5698SJohn Baldwin cmpl $0x68676e61,%edx 1189bc3d5698SJohn Baldwin jne .L000noluck 1190bc3d5698SJohn Baldwin cmpl $0x20206961,%ecx 1191bc3d5698SJohn Baldwin jne .L000noluck 1192bc3d5698SJohn Baldwin.L002zhaoxinEnd: 1193bc3d5698SJohn Baldwin movl $3221225472,%eax 1194bc3d5698SJohn Baldwin .byte 0x0f,0xa2 1195bc3d5698SJohn Baldwin movl %eax,%edx 1196bc3d5698SJohn Baldwin xorl %eax,%eax 1197bc3d5698SJohn Baldwin cmpl $3221225473,%edx 1198bc3d5698SJohn Baldwin jb .L000noluck 1199bc3d5698SJohn Baldwin movl $1,%eax 1200bc3d5698SJohn Baldwin .byte 0x0f,0xa2 1201bc3d5698SJohn Baldwin orl $15,%eax 1202bc3d5698SJohn Baldwin xorl %ebx,%ebx 1203bc3d5698SJohn Baldwin andl $4095,%eax 1204bc3d5698SJohn Baldwin cmpl $1791,%eax 1205bc3d5698SJohn Baldwin sete %bl 1206bc3d5698SJohn Baldwin movl $3221225473,%eax 1207bc3d5698SJohn Baldwin pushl %ebx 1208bc3d5698SJohn Baldwin .byte 0x0f,0xa2 1209bc3d5698SJohn Baldwin popl %ebx 1210bc3d5698SJohn Baldwin movl %edx,%eax 1211bc3d5698SJohn Baldwin shll $4,%ebx 1212bc3d5698SJohn Baldwin andl $4294967279,%eax 1213bc3d5698SJohn Baldwin orl %ebx,%eax 1214bc3d5698SJohn Baldwin.L000noluck: 1215bc3d5698SJohn Baldwin popl %ebx 1216bc3d5698SJohn Baldwin ret 1217bc3d5698SJohn Baldwin.size padlock_capability,.-.L_padlock_capability_begin 1218bc3d5698SJohn Baldwin.globl padlock_key_bswap 1219bc3d5698SJohn Baldwin.type padlock_key_bswap,@function 1220bc3d5698SJohn Baldwin.align 16 1221bc3d5698SJohn Baldwinpadlock_key_bswap: 1222bc3d5698SJohn Baldwin.L_padlock_key_bswap_begin: 1223*c0855eaaSJohn Baldwin #ifdef __CET__ 1224*c0855eaaSJohn Baldwin 1225*c0855eaaSJohn Baldwin.byte 243,15,30,251 1226*c0855eaaSJohn Baldwin #endif 1227*c0855eaaSJohn Baldwin 1228bc3d5698SJohn Baldwin movl 4(%esp),%edx 1229bc3d5698SJohn Baldwin movl 240(%edx),%ecx 1230f1cf4900SJung-uk Kim incl %ecx 1231f1cf4900SJung-uk Kim shll $2,%ecx 1232bc3d5698SJohn Baldwin.L003bswap_loop: 1233bc3d5698SJohn Baldwin movl (%edx),%eax 1234bc3d5698SJohn Baldwin bswap %eax 1235bc3d5698SJohn Baldwin movl %eax,(%edx) 1236bc3d5698SJohn Baldwin leal 4(%edx),%edx 1237bc3d5698SJohn Baldwin subl $1,%ecx 1238bc3d5698SJohn Baldwin jnz .L003bswap_loop 1239bc3d5698SJohn Baldwin ret 1240bc3d5698SJohn Baldwin.size padlock_key_bswap,.-.L_padlock_key_bswap_begin 1241bc3d5698SJohn Baldwin.globl padlock_verify_context 1242bc3d5698SJohn Baldwin.type padlock_verify_context,@function 1243bc3d5698SJohn Baldwin.align 16 1244bc3d5698SJohn Baldwinpadlock_verify_context: 1245bc3d5698SJohn Baldwin.L_padlock_verify_context_begin: 1246*c0855eaaSJohn Baldwin #ifdef __CET__ 1247*c0855eaaSJohn Baldwin 1248*c0855eaaSJohn Baldwin.byte 243,15,30,251 1249*c0855eaaSJohn Baldwin #endif 1250*c0855eaaSJohn Baldwin 1251bc3d5698SJohn Baldwin movl 4(%esp),%edx 1252bc3d5698SJohn Baldwin leal .Lpadlock_saved_context-.L004verify_pic_point,%eax 1253bc3d5698SJohn Baldwin pushfl 1254bc3d5698SJohn Baldwin call _padlock_verify_ctx 1255bc3d5698SJohn Baldwin.L004verify_pic_point: 1256bc3d5698SJohn Baldwin leal 4(%esp),%esp 1257bc3d5698SJohn Baldwin ret 1258bc3d5698SJohn Baldwin.size padlock_verify_context,.-.L_padlock_verify_context_begin 1259bc3d5698SJohn Baldwin.type _padlock_verify_ctx,@function 1260bc3d5698SJohn Baldwin.align 16 1261bc3d5698SJohn Baldwin_padlock_verify_ctx: 1262*c0855eaaSJohn Baldwin #ifdef __CET__ 1263*c0855eaaSJohn Baldwin 1264*c0855eaaSJohn Baldwin.byte 243,15,30,251 1265*c0855eaaSJohn Baldwin #endif 1266*c0855eaaSJohn Baldwin 1267bc3d5698SJohn Baldwin addl (%esp),%eax 1268bc3d5698SJohn Baldwin btl $30,4(%esp) 1269bc3d5698SJohn Baldwin jnc .L005verified 1270bc3d5698SJohn Baldwin cmpl (%eax),%edx 1271bc3d5698SJohn Baldwin je .L005verified 1272bc3d5698SJohn Baldwin pushfl 1273bc3d5698SJohn Baldwin popfl 1274bc3d5698SJohn Baldwin.L005verified: 1275bc3d5698SJohn Baldwin movl %edx,(%eax) 1276bc3d5698SJohn Baldwin ret 1277bc3d5698SJohn Baldwin.size _padlock_verify_ctx,.-_padlock_verify_ctx 1278bc3d5698SJohn Baldwin.globl padlock_reload_key 1279bc3d5698SJohn Baldwin.type padlock_reload_key,@function 1280bc3d5698SJohn Baldwin.align 16 1281bc3d5698SJohn Baldwinpadlock_reload_key: 1282bc3d5698SJohn Baldwin.L_padlock_reload_key_begin: 1283*c0855eaaSJohn Baldwin #ifdef __CET__ 1284*c0855eaaSJohn Baldwin 1285*c0855eaaSJohn Baldwin.byte 243,15,30,251 1286*c0855eaaSJohn Baldwin #endif 1287*c0855eaaSJohn Baldwin 1288bc3d5698SJohn Baldwin pushfl 1289bc3d5698SJohn Baldwin popfl 1290bc3d5698SJohn Baldwin ret 1291bc3d5698SJohn Baldwin.size padlock_reload_key,.-.L_padlock_reload_key_begin 1292bc3d5698SJohn Baldwin.globl padlock_aes_block 1293bc3d5698SJohn Baldwin.type padlock_aes_block,@function 1294bc3d5698SJohn Baldwin.align 16 1295bc3d5698SJohn Baldwinpadlock_aes_block: 1296bc3d5698SJohn Baldwin.L_padlock_aes_block_begin: 1297*c0855eaaSJohn Baldwin #ifdef __CET__ 1298*c0855eaaSJohn Baldwin 1299*c0855eaaSJohn Baldwin.byte 243,15,30,251 1300*c0855eaaSJohn Baldwin #endif 1301*c0855eaaSJohn Baldwin 1302bc3d5698SJohn Baldwin pushl %edi 1303bc3d5698SJohn Baldwin pushl %esi 1304bc3d5698SJohn Baldwin pushl %ebx 1305bc3d5698SJohn Baldwin movl 16(%esp),%edi 1306bc3d5698SJohn Baldwin movl 20(%esp),%esi 1307bc3d5698SJohn Baldwin movl 24(%esp),%edx 1308bc3d5698SJohn Baldwin movl $1,%ecx 1309bc3d5698SJohn Baldwin leal 32(%edx),%ebx 1310bc3d5698SJohn Baldwin leal 16(%edx),%edx 1311bc3d5698SJohn Baldwin.byte 243,15,167,200 1312bc3d5698SJohn Baldwin popl %ebx 1313bc3d5698SJohn Baldwin popl %esi 1314bc3d5698SJohn Baldwin popl %edi 1315bc3d5698SJohn Baldwin ret 1316bc3d5698SJohn Baldwin.size padlock_aes_block,.-.L_padlock_aes_block_begin 1317bc3d5698SJohn Baldwin.globl padlock_ecb_encrypt 1318bc3d5698SJohn Baldwin.type padlock_ecb_encrypt,@function 1319bc3d5698SJohn Baldwin.align 16 1320bc3d5698SJohn Baldwinpadlock_ecb_encrypt: 1321bc3d5698SJohn Baldwin.L_padlock_ecb_encrypt_begin: 1322*c0855eaaSJohn Baldwin #ifdef __CET__ 1323*c0855eaaSJohn Baldwin 1324*c0855eaaSJohn Baldwin.byte 243,15,30,251 1325*c0855eaaSJohn Baldwin #endif 1326*c0855eaaSJohn Baldwin 1327bc3d5698SJohn Baldwin pushl %ebp 1328bc3d5698SJohn Baldwin pushl %ebx 1329bc3d5698SJohn Baldwin pushl %esi 1330bc3d5698SJohn Baldwin pushl %edi 1331bc3d5698SJohn Baldwin movl 20(%esp),%edi 1332bc3d5698SJohn Baldwin movl 24(%esp),%esi 1333bc3d5698SJohn Baldwin movl 28(%esp),%edx 1334bc3d5698SJohn Baldwin movl 32(%esp),%ecx 1335bc3d5698SJohn Baldwin testl $15,%edx 1336bc3d5698SJohn Baldwin jnz .L006ecb_abort 1337bc3d5698SJohn Baldwin testl $15,%ecx 1338bc3d5698SJohn Baldwin jnz .L006ecb_abort 1339bc3d5698SJohn Baldwin leal .Lpadlock_saved_context-.L007ecb_pic_point,%eax 1340bc3d5698SJohn Baldwin pushfl 1341bc3d5698SJohn Baldwin cld 1342bc3d5698SJohn Baldwin call _padlock_verify_ctx 1343bc3d5698SJohn Baldwin.L007ecb_pic_point: 1344bc3d5698SJohn Baldwin leal 16(%edx),%edx 1345bc3d5698SJohn Baldwin xorl %eax,%eax 1346bc3d5698SJohn Baldwin xorl %ebx,%ebx 1347bc3d5698SJohn Baldwin testl $32,(%edx) 1348bc3d5698SJohn Baldwin jnz .L008ecb_aligned 1349bc3d5698SJohn Baldwin testl $15,%edi 1350bc3d5698SJohn Baldwin setz %al 1351bc3d5698SJohn Baldwin testl $15,%esi 1352bc3d5698SJohn Baldwin setz %bl 1353bc3d5698SJohn Baldwin testl %ebx,%eax 1354bc3d5698SJohn Baldwin jnz .L008ecb_aligned 1355bc3d5698SJohn Baldwin negl %eax 1356bc3d5698SJohn Baldwin movl $512,%ebx 1357bc3d5698SJohn Baldwin notl %eax 1358bc3d5698SJohn Baldwin leal -24(%esp),%ebp 1359bc3d5698SJohn Baldwin cmpl %ebx,%ecx 1360bc3d5698SJohn Baldwin cmovcl %ecx,%ebx 1361bc3d5698SJohn Baldwin andl %ebx,%eax 1362bc3d5698SJohn Baldwin movl %ecx,%ebx 1363bc3d5698SJohn Baldwin negl %eax 1364bc3d5698SJohn Baldwin andl $511,%ebx 1365bc3d5698SJohn Baldwin leal (%eax,%ebp,1),%esp 1366bc3d5698SJohn Baldwin movl $512,%eax 1367bc3d5698SJohn Baldwin cmovzl %eax,%ebx 1368bc3d5698SJohn Baldwin movl %ebp,%eax 1369bc3d5698SJohn Baldwin andl $-16,%ebp 1370bc3d5698SJohn Baldwin andl $-16,%esp 1371bc3d5698SJohn Baldwin movl %eax,16(%ebp) 1372bc3d5698SJohn Baldwin cmpl %ebx,%ecx 1373bc3d5698SJohn Baldwin ja .L009ecb_loop 1374bc3d5698SJohn Baldwin movl %esi,%eax 1375bc3d5698SJohn Baldwin cmpl %esp,%ebp 1376bc3d5698SJohn Baldwin cmovel %edi,%eax 1377bc3d5698SJohn Baldwin addl %ecx,%eax 1378bc3d5698SJohn Baldwin negl %eax 1379bc3d5698SJohn Baldwin andl $4095,%eax 1380bc3d5698SJohn Baldwin cmpl $128,%eax 1381bc3d5698SJohn Baldwin movl $-128,%eax 1382bc3d5698SJohn Baldwin cmovael %ebx,%eax 1383bc3d5698SJohn Baldwin andl %eax,%ebx 1384bc3d5698SJohn Baldwin jz .L010ecb_unaligned_tail 1385bc3d5698SJohn Baldwin jmp .L009ecb_loop 1386bc3d5698SJohn Baldwin.align 16 1387bc3d5698SJohn Baldwin.L009ecb_loop: 1388bc3d5698SJohn Baldwin movl %edi,(%ebp) 1389bc3d5698SJohn Baldwin movl %esi,4(%ebp) 1390bc3d5698SJohn Baldwin movl %ecx,8(%ebp) 1391bc3d5698SJohn Baldwin movl %ebx,%ecx 1392bc3d5698SJohn Baldwin movl %ebx,12(%ebp) 1393bc3d5698SJohn Baldwin testl $15,%edi 1394bc3d5698SJohn Baldwin cmovnzl %esp,%edi 1395bc3d5698SJohn Baldwin testl $15,%esi 1396bc3d5698SJohn Baldwin jz .L011ecb_inp_aligned 1397bc3d5698SJohn Baldwin shrl $2,%ecx 1398bc3d5698SJohn Baldwin.byte 243,165 1399bc3d5698SJohn Baldwin subl %ebx,%edi 1400bc3d5698SJohn Baldwin movl %ebx,%ecx 1401bc3d5698SJohn Baldwin movl %edi,%esi 1402bc3d5698SJohn Baldwin.L011ecb_inp_aligned: 1403bc3d5698SJohn Baldwin leal -16(%edx),%eax 1404bc3d5698SJohn Baldwin leal 16(%edx),%ebx 1405bc3d5698SJohn Baldwin shrl $4,%ecx 1406bc3d5698SJohn Baldwin.byte 243,15,167,200 1407bc3d5698SJohn Baldwin movl (%ebp),%edi 1408bc3d5698SJohn Baldwin movl 12(%ebp),%ebx 1409bc3d5698SJohn Baldwin testl $15,%edi 1410bc3d5698SJohn Baldwin jz .L012ecb_out_aligned 1411bc3d5698SJohn Baldwin movl %ebx,%ecx 1412bc3d5698SJohn Baldwin leal (%esp),%esi 1413bc3d5698SJohn Baldwin shrl $2,%ecx 1414bc3d5698SJohn Baldwin.byte 243,165 1415bc3d5698SJohn Baldwin subl %ebx,%edi 1416bc3d5698SJohn Baldwin.L012ecb_out_aligned: 1417bc3d5698SJohn Baldwin movl 4(%ebp),%esi 1418bc3d5698SJohn Baldwin movl 8(%ebp),%ecx 1419bc3d5698SJohn Baldwin addl %ebx,%edi 1420bc3d5698SJohn Baldwin addl %ebx,%esi 1421bc3d5698SJohn Baldwin subl %ebx,%ecx 1422bc3d5698SJohn Baldwin movl $512,%ebx 1423bc3d5698SJohn Baldwin jz .L013ecb_break 1424bc3d5698SJohn Baldwin cmpl %ebx,%ecx 1425bc3d5698SJohn Baldwin jae .L009ecb_loop 1426bc3d5698SJohn Baldwin.L010ecb_unaligned_tail: 1427bc3d5698SJohn Baldwin xorl %eax,%eax 1428bc3d5698SJohn Baldwin cmpl %ebp,%esp 1429bc3d5698SJohn Baldwin cmovel %ecx,%eax 1430bc3d5698SJohn Baldwin subl %eax,%esp 1431bc3d5698SJohn Baldwin movl %edi,%eax 1432bc3d5698SJohn Baldwin movl %ecx,%ebx 1433bc3d5698SJohn Baldwin shrl $2,%ecx 1434bc3d5698SJohn Baldwin leal (%esp),%edi 1435bc3d5698SJohn Baldwin.byte 243,165 1436bc3d5698SJohn Baldwin movl %esp,%esi 1437bc3d5698SJohn Baldwin movl %eax,%edi 1438bc3d5698SJohn Baldwin movl %ebx,%ecx 1439bc3d5698SJohn Baldwin jmp .L009ecb_loop 1440bc3d5698SJohn Baldwin.align 16 1441bc3d5698SJohn Baldwin.L013ecb_break: 1442bc3d5698SJohn Baldwin cmpl %ebp,%esp 1443bc3d5698SJohn Baldwin je .L014ecb_done 1444bc3d5698SJohn Baldwin pxor %xmm0,%xmm0 1445bc3d5698SJohn Baldwin leal (%esp),%eax 1446bc3d5698SJohn Baldwin.L015ecb_bzero: 1447bc3d5698SJohn Baldwin movaps %xmm0,(%eax) 1448bc3d5698SJohn Baldwin leal 16(%eax),%eax 1449bc3d5698SJohn Baldwin cmpl %eax,%ebp 1450bc3d5698SJohn Baldwin ja .L015ecb_bzero 1451bc3d5698SJohn Baldwin.L014ecb_done: 1452bc3d5698SJohn Baldwin movl 16(%ebp),%ebp 1453bc3d5698SJohn Baldwin leal 24(%ebp),%esp 1454bc3d5698SJohn Baldwin jmp .L016ecb_exit 1455bc3d5698SJohn Baldwin.align 16 1456bc3d5698SJohn Baldwin.L008ecb_aligned: 1457bc3d5698SJohn Baldwin leal (%esi,%ecx,1),%ebp 1458bc3d5698SJohn Baldwin negl %ebp 1459bc3d5698SJohn Baldwin andl $4095,%ebp 1460bc3d5698SJohn Baldwin xorl %eax,%eax 1461bc3d5698SJohn Baldwin cmpl $128,%ebp 1462bc3d5698SJohn Baldwin movl $127,%ebp 1463bc3d5698SJohn Baldwin cmovael %eax,%ebp 1464bc3d5698SJohn Baldwin andl %ecx,%ebp 1465bc3d5698SJohn Baldwin subl %ebp,%ecx 1466bc3d5698SJohn Baldwin jz .L017ecb_aligned_tail 1467bc3d5698SJohn Baldwin leal -16(%edx),%eax 1468bc3d5698SJohn Baldwin leal 16(%edx),%ebx 1469bc3d5698SJohn Baldwin shrl $4,%ecx 1470bc3d5698SJohn Baldwin.byte 243,15,167,200 1471bc3d5698SJohn Baldwin testl %ebp,%ebp 1472bc3d5698SJohn Baldwin jz .L016ecb_exit 1473bc3d5698SJohn Baldwin.L017ecb_aligned_tail: 1474bc3d5698SJohn Baldwin movl %ebp,%ecx 1475bc3d5698SJohn Baldwin leal -24(%esp),%ebp 1476bc3d5698SJohn Baldwin movl %ebp,%esp 1477bc3d5698SJohn Baldwin movl %ebp,%eax 1478bc3d5698SJohn Baldwin subl %ecx,%esp 1479bc3d5698SJohn Baldwin andl $-16,%ebp 1480bc3d5698SJohn Baldwin andl $-16,%esp 1481bc3d5698SJohn Baldwin movl %eax,16(%ebp) 1482bc3d5698SJohn Baldwin movl %edi,%eax 1483bc3d5698SJohn Baldwin movl %ecx,%ebx 1484bc3d5698SJohn Baldwin shrl $2,%ecx 1485bc3d5698SJohn Baldwin leal (%esp),%edi 1486bc3d5698SJohn Baldwin.byte 243,165 1487bc3d5698SJohn Baldwin movl %esp,%esi 1488bc3d5698SJohn Baldwin movl %eax,%edi 1489bc3d5698SJohn Baldwin movl %ebx,%ecx 1490bc3d5698SJohn Baldwin jmp .L009ecb_loop 1491bc3d5698SJohn Baldwin.L016ecb_exit: 1492bc3d5698SJohn Baldwin movl $1,%eax 1493bc3d5698SJohn Baldwin leal 4(%esp),%esp 1494bc3d5698SJohn Baldwin.L006ecb_abort: 1495bc3d5698SJohn Baldwin popl %edi 1496bc3d5698SJohn Baldwin popl %esi 1497bc3d5698SJohn Baldwin popl %ebx 1498bc3d5698SJohn Baldwin popl %ebp 1499bc3d5698SJohn Baldwin ret 1500bc3d5698SJohn Baldwin.size padlock_ecb_encrypt,.-.L_padlock_ecb_encrypt_begin 1501bc3d5698SJohn Baldwin.globl padlock_cbc_encrypt 1502bc3d5698SJohn Baldwin.type padlock_cbc_encrypt,@function 1503bc3d5698SJohn Baldwin.align 16 1504bc3d5698SJohn Baldwinpadlock_cbc_encrypt: 1505bc3d5698SJohn Baldwin.L_padlock_cbc_encrypt_begin: 1506*c0855eaaSJohn Baldwin #ifdef __CET__ 1507*c0855eaaSJohn Baldwin 1508*c0855eaaSJohn Baldwin.byte 243,15,30,251 1509*c0855eaaSJohn Baldwin #endif 1510*c0855eaaSJohn Baldwin 1511bc3d5698SJohn Baldwin pushl %ebp 1512bc3d5698SJohn Baldwin pushl %ebx 1513bc3d5698SJohn Baldwin pushl %esi 1514bc3d5698SJohn Baldwin pushl %edi 1515bc3d5698SJohn Baldwin movl 20(%esp),%edi 1516bc3d5698SJohn Baldwin movl 24(%esp),%esi 1517bc3d5698SJohn Baldwin movl 28(%esp),%edx 1518bc3d5698SJohn Baldwin movl 32(%esp),%ecx 1519bc3d5698SJohn Baldwin testl $15,%edx 1520bc3d5698SJohn Baldwin jnz .L018cbc_abort 1521bc3d5698SJohn Baldwin testl $15,%ecx 1522bc3d5698SJohn Baldwin jnz .L018cbc_abort 1523bc3d5698SJohn Baldwin leal .Lpadlock_saved_context-.L019cbc_pic_point,%eax 1524bc3d5698SJohn Baldwin pushfl 1525bc3d5698SJohn Baldwin cld 1526bc3d5698SJohn Baldwin call _padlock_verify_ctx 1527bc3d5698SJohn Baldwin.L019cbc_pic_point: 1528bc3d5698SJohn Baldwin leal 16(%edx),%edx 1529bc3d5698SJohn Baldwin xorl %eax,%eax 1530bc3d5698SJohn Baldwin xorl %ebx,%ebx 1531bc3d5698SJohn Baldwin testl $32,(%edx) 1532bc3d5698SJohn Baldwin jnz .L020cbc_aligned 1533bc3d5698SJohn Baldwin testl $15,%edi 1534bc3d5698SJohn Baldwin setz %al 1535bc3d5698SJohn Baldwin testl $15,%esi 1536bc3d5698SJohn Baldwin setz %bl 1537bc3d5698SJohn Baldwin testl %ebx,%eax 1538bc3d5698SJohn Baldwin jnz .L020cbc_aligned 1539bc3d5698SJohn Baldwin negl %eax 1540bc3d5698SJohn Baldwin movl $512,%ebx 1541bc3d5698SJohn Baldwin notl %eax 1542bc3d5698SJohn Baldwin leal -24(%esp),%ebp 1543bc3d5698SJohn Baldwin cmpl %ebx,%ecx 1544bc3d5698SJohn Baldwin cmovcl %ecx,%ebx 1545bc3d5698SJohn Baldwin andl %ebx,%eax 1546bc3d5698SJohn Baldwin movl %ecx,%ebx 1547bc3d5698SJohn Baldwin negl %eax 1548bc3d5698SJohn Baldwin andl $511,%ebx 1549bc3d5698SJohn Baldwin leal (%eax,%ebp,1),%esp 1550bc3d5698SJohn Baldwin movl $512,%eax 1551bc3d5698SJohn Baldwin cmovzl %eax,%ebx 1552bc3d5698SJohn Baldwin movl %ebp,%eax 1553bc3d5698SJohn Baldwin andl $-16,%ebp 1554bc3d5698SJohn Baldwin andl $-16,%esp 1555bc3d5698SJohn Baldwin movl %eax,16(%ebp) 1556bc3d5698SJohn Baldwin cmpl %ebx,%ecx 1557bc3d5698SJohn Baldwin ja .L021cbc_loop 1558bc3d5698SJohn Baldwin movl %esi,%eax 1559bc3d5698SJohn Baldwin cmpl %esp,%ebp 1560bc3d5698SJohn Baldwin cmovel %edi,%eax 1561bc3d5698SJohn Baldwin addl %ecx,%eax 1562bc3d5698SJohn Baldwin negl %eax 1563bc3d5698SJohn Baldwin andl $4095,%eax 1564bc3d5698SJohn Baldwin cmpl $64,%eax 1565bc3d5698SJohn Baldwin movl $-64,%eax 1566bc3d5698SJohn Baldwin cmovael %ebx,%eax 1567bc3d5698SJohn Baldwin andl %eax,%ebx 1568bc3d5698SJohn Baldwin jz .L022cbc_unaligned_tail 1569bc3d5698SJohn Baldwin jmp .L021cbc_loop 1570bc3d5698SJohn Baldwin.align 16 1571bc3d5698SJohn Baldwin.L021cbc_loop: 1572bc3d5698SJohn Baldwin movl %edi,(%ebp) 1573bc3d5698SJohn Baldwin movl %esi,4(%ebp) 1574bc3d5698SJohn Baldwin movl %ecx,8(%ebp) 1575bc3d5698SJohn Baldwin movl %ebx,%ecx 1576bc3d5698SJohn Baldwin movl %ebx,12(%ebp) 1577bc3d5698SJohn Baldwin testl $15,%edi 1578bc3d5698SJohn Baldwin cmovnzl %esp,%edi 1579bc3d5698SJohn Baldwin testl $15,%esi 1580bc3d5698SJohn Baldwin jz .L023cbc_inp_aligned 1581bc3d5698SJohn Baldwin shrl $2,%ecx 1582bc3d5698SJohn Baldwin.byte 243,165 1583bc3d5698SJohn Baldwin subl %ebx,%edi 1584bc3d5698SJohn Baldwin movl %ebx,%ecx 1585bc3d5698SJohn Baldwin movl %edi,%esi 1586bc3d5698SJohn Baldwin.L023cbc_inp_aligned: 1587bc3d5698SJohn Baldwin leal -16(%edx),%eax 1588bc3d5698SJohn Baldwin leal 16(%edx),%ebx 1589bc3d5698SJohn Baldwin shrl $4,%ecx 1590bc3d5698SJohn Baldwin.byte 243,15,167,208 1591bc3d5698SJohn Baldwin movaps (%eax),%xmm0 1592bc3d5698SJohn Baldwin movaps %xmm0,-16(%edx) 1593bc3d5698SJohn Baldwin movl (%ebp),%edi 1594bc3d5698SJohn Baldwin movl 12(%ebp),%ebx 1595bc3d5698SJohn Baldwin testl $15,%edi 1596bc3d5698SJohn Baldwin jz .L024cbc_out_aligned 1597bc3d5698SJohn Baldwin movl %ebx,%ecx 1598bc3d5698SJohn Baldwin leal (%esp),%esi 1599bc3d5698SJohn Baldwin shrl $2,%ecx 1600bc3d5698SJohn Baldwin.byte 243,165 1601bc3d5698SJohn Baldwin subl %ebx,%edi 1602bc3d5698SJohn Baldwin.L024cbc_out_aligned: 1603bc3d5698SJohn Baldwin movl 4(%ebp),%esi 1604bc3d5698SJohn Baldwin movl 8(%ebp),%ecx 1605bc3d5698SJohn Baldwin addl %ebx,%edi 1606bc3d5698SJohn Baldwin addl %ebx,%esi 1607bc3d5698SJohn Baldwin subl %ebx,%ecx 1608bc3d5698SJohn Baldwin movl $512,%ebx 1609bc3d5698SJohn Baldwin jz .L025cbc_break 1610bc3d5698SJohn Baldwin cmpl %ebx,%ecx 1611bc3d5698SJohn Baldwin jae .L021cbc_loop 1612bc3d5698SJohn Baldwin.L022cbc_unaligned_tail: 1613bc3d5698SJohn Baldwin xorl %eax,%eax 1614bc3d5698SJohn Baldwin cmpl %ebp,%esp 1615bc3d5698SJohn Baldwin cmovel %ecx,%eax 1616bc3d5698SJohn Baldwin subl %eax,%esp 1617bc3d5698SJohn Baldwin movl %edi,%eax 1618bc3d5698SJohn Baldwin movl %ecx,%ebx 1619bc3d5698SJohn Baldwin shrl $2,%ecx 1620bc3d5698SJohn Baldwin leal (%esp),%edi 1621bc3d5698SJohn Baldwin.byte 243,165 1622bc3d5698SJohn Baldwin movl %esp,%esi 1623bc3d5698SJohn Baldwin movl %eax,%edi 1624bc3d5698SJohn Baldwin movl %ebx,%ecx 1625bc3d5698SJohn Baldwin jmp .L021cbc_loop 1626bc3d5698SJohn Baldwin.align 16 1627bc3d5698SJohn Baldwin.L025cbc_break: 1628bc3d5698SJohn Baldwin cmpl %ebp,%esp 1629bc3d5698SJohn Baldwin je .L026cbc_done 1630bc3d5698SJohn Baldwin pxor %xmm0,%xmm0 1631bc3d5698SJohn Baldwin leal (%esp),%eax 1632bc3d5698SJohn Baldwin.L027cbc_bzero: 1633bc3d5698SJohn Baldwin movaps %xmm0,(%eax) 1634bc3d5698SJohn Baldwin leal 16(%eax),%eax 1635bc3d5698SJohn Baldwin cmpl %eax,%ebp 1636bc3d5698SJohn Baldwin ja .L027cbc_bzero 1637bc3d5698SJohn Baldwin.L026cbc_done: 1638bc3d5698SJohn Baldwin movl 16(%ebp),%ebp 1639bc3d5698SJohn Baldwin leal 24(%ebp),%esp 1640bc3d5698SJohn Baldwin jmp .L028cbc_exit 1641bc3d5698SJohn Baldwin.align 16 1642bc3d5698SJohn Baldwin.L020cbc_aligned: 1643bc3d5698SJohn Baldwin leal (%esi,%ecx,1),%ebp 1644bc3d5698SJohn Baldwin negl %ebp 1645bc3d5698SJohn Baldwin andl $4095,%ebp 1646bc3d5698SJohn Baldwin xorl %eax,%eax 1647bc3d5698SJohn Baldwin cmpl $64,%ebp 1648bc3d5698SJohn Baldwin movl $63,%ebp 1649bc3d5698SJohn Baldwin cmovael %eax,%ebp 1650bc3d5698SJohn Baldwin andl %ecx,%ebp 1651bc3d5698SJohn Baldwin subl %ebp,%ecx 1652bc3d5698SJohn Baldwin jz .L029cbc_aligned_tail 1653bc3d5698SJohn Baldwin leal -16(%edx),%eax 1654bc3d5698SJohn Baldwin leal 16(%edx),%ebx 1655bc3d5698SJohn Baldwin shrl $4,%ecx 1656bc3d5698SJohn Baldwin.byte 243,15,167,208 1657bc3d5698SJohn Baldwin movaps (%eax),%xmm0 1658bc3d5698SJohn Baldwin movaps %xmm0,-16(%edx) 1659bc3d5698SJohn Baldwin testl %ebp,%ebp 1660bc3d5698SJohn Baldwin jz .L028cbc_exit 1661bc3d5698SJohn Baldwin.L029cbc_aligned_tail: 1662bc3d5698SJohn Baldwin movl %ebp,%ecx 1663bc3d5698SJohn Baldwin leal -24(%esp),%ebp 1664bc3d5698SJohn Baldwin movl %ebp,%esp 1665bc3d5698SJohn Baldwin movl %ebp,%eax 1666bc3d5698SJohn Baldwin subl %ecx,%esp 1667bc3d5698SJohn Baldwin andl $-16,%ebp 1668bc3d5698SJohn Baldwin andl $-16,%esp 1669bc3d5698SJohn Baldwin movl %eax,16(%ebp) 1670bc3d5698SJohn Baldwin movl %edi,%eax 1671bc3d5698SJohn Baldwin movl %ecx,%ebx 1672bc3d5698SJohn Baldwin shrl $2,%ecx 1673bc3d5698SJohn Baldwin leal (%esp),%edi 1674bc3d5698SJohn Baldwin.byte 243,165 1675bc3d5698SJohn Baldwin movl %esp,%esi 1676bc3d5698SJohn Baldwin movl %eax,%edi 1677bc3d5698SJohn Baldwin movl %ebx,%ecx 1678bc3d5698SJohn Baldwin jmp .L021cbc_loop 1679bc3d5698SJohn Baldwin.L028cbc_exit: 1680bc3d5698SJohn Baldwin movl $1,%eax 1681bc3d5698SJohn Baldwin leal 4(%esp),%esp 1682bc3d5698SJohn Baldwin.L018cbc_abort: 1683bc3d5698SJohn Baldwin popl %edi 1684bc3d5698SJohn Baldwin popl %esi 1685bc3d5698SJohn Baldwin popl %ebx 1686bc3d5698SJohn Baldwin popl %ebp 1687bc3d5698SJohn Baldwin ret 1688bc3d5698SJohn Baldwin.size padlock_cbc_encrypt,.-.L_padlock_cbc_encrypt_begin 1689bc3d5698SJohn Baldwin.globl padlock_cfb_encrypt 1690bc3d5698SJohn Baldwin.type padlock_cfb_encrypt,@function 1691bc3d5698SJohn Baldwin.align 16 1692bc3d5698SJohn Baldwinpadlock_cfb_encrypt: 1693bc3d5698SJohn Baldwin.L_padlock_cfb_encrypt_begin: 1694*c0855eaaSJohn Baldwin #ifdef __CET__ 1695*c0855eaaSJohn Baldwin 1696*c0855eaaSJohn Baldwin.byte 243,15,30,251 1697*c0855eaaSJohn Baldwin #endif 1698*c0855eaaSJohn Baldwin 1699bc3d5698SJohn Baldwin pushl %ebp 1700bc3d5698SJohn Baldwin pushl %ebx 1701bc3d5698SJohn Baldwin pushl %esi 1702bc3d5698SJohn Baldwin pushl %edi 1703bc3d5698SJohn Baldwin movl 20(%esp),%edi 1704bc3d5698SJohn Baldwin movl 24(%esp),%esi 1705bc3d5698SJohn Baldwin movl 28(%esp),%edx 1706bc3d5698SJohn Baldwin movl 32(%esp),%ecx 1707bc3d5698SJohn Baldwin testl $15,%edx 1708bc3d5698SJohn Baldwin jnz .L030cfb_abort 1709bc3d5698SJohn Baldwin testl $15,%ecx 1710bc3d5698SJohn Baldwin jnz .L030cfb_abort 1711bc3d5698SJohn Baldwin leal .Lpadlock_saved_context-.L031cfb_pic_point,%eax 1712bc3d5698SJohn Baldwin pushfl 1713bc3d5698SJohn Baldwin cld 1714bc3d5698SJohn Baldwin call _padlock_verify_ctx 1715bc3d5698SJohn Baldwin.L031cfb_pic_point: 1716bc3d5698SJohn Baldwin leal 16(%edx),%edx 1717bc3d5698SJohn Baldwin xorl %eax,%eax 1718bc3d5698SJohn Baldwin xorl %ebx,%ebx 1719bc3d5698SJohn Baldwin testl $32,(%edx) 1720bc3d5698SJohn Baldwin jnz .L032cfb_aligned 1721bc3d5698SJohn Baldwin testl $15,%edi 1722bc3d5698SJohn Baldwin setz %al 1723bc3d5698SJohn Baldwin testl $15,%esi 1724bc3d5698SJohn Baldwin setz %bl 1725bc3d5698SJohn Baldwin testl %ebx,%eax 1726bc3d5698SJohn Baldwin jnz .L032cfb_aligned 1727bc3d5698SJohn Baldwin negl %eax 1728bc3d5698SJohn Baldwin movl $512,%ebx 1729bc3d5698SJohn Baldwin notl %eax 1730bc3d5698SJohn Baldwin leal -24(%esp),%ebp 1731bc3d5698SJohn Baldwin cmpl %ebx,%ecx 1732bc3d5698SJohn Baldwin cmovcl %ecx,%ebx 1733bc3d5698SJohn Baldwin andl %ebx,%eax 1734bc3d5698SJohn Baldwin movl %ecx,%ebx 1735bc3d5698SJohn Baldwin negl %eax 1736bc3d5698SJohn Baldwin andl $511,%ebx 1737bc3d5698SJohn Baldwin leal (%eax,%ebp,1),%esp 1738bc3d5698SJohn Baldwin movl $512,%eax 1739bc3d5698SJohn Baldwin cmovzl %eax,%ebx 1740bc3d5698SJohn Baldwin movl %ebp,%eax 1741bc3d5698SJohn Baldwin andl $-16,%ebp 1742bc3d5698SJohn Baldwin andl $-16,%esp 1743bc3d5698SJohn Baldwin movl %eax,16(%ebp) 1744bc3d5698SJohn Baldwin jmp .L033cfb_loop 1745bc3d5698SJohn Baldwin.align 16 1746bc3d5698SJohn Baldwin.L033cfb_loop: 1747bc3d5698SJohn Baldwin movl %edi,(%ebp) 1748bc3d5698SJohn Baldwin movl %esi,4(%ebp) 1749bc3d5698SJohn Baldwin movl %ecx,8(%ebp) 1750bc3d5698SJohn Baldwin movl %ebx,%ecx 1751bc3d5698SJohn Baldwin movl %ebx,12(%ebp) 1752bc3d5698SJohn Baldwin testl $15,%edi 1753bc3d5698SJohn Baldwin cmovnzl %esp,%edi 1754bc3d5698SJohn Baldwin testl $15,%esi 1755bc3d5698SJohn Baldwin jz .L034cfb_inp_aligned 1756bc3d5698SJohn Baldwin shrl $2,%ecx 1757bc3d5698SJohn Baldwin.byte 243,165 1758bc3d5698SJohn Baldwin subl %ebx,%edi 1759bc3d5698SJohn Baldwin movl %ebx,%ecx 1760bc3d5698SJohn Baldwin movl %edi,%esi 1761bc3d5698SJohn Baldwin.L034cfb_inp_aligned: 1762bc3d5698SJohn Baldwin leal -16(%edx),%eax 1763bc3d5698SJohn Baldwin leal 16(%edx),%ebx 1764bc3d5698SJohn Baldwin shrl $4,%ecx 1765bc3d5698SJohn Baldwin.byte 243,15,167,224 1766bc3d5698SJohn Baldwin movaps (%eax),%xmm0 1767bc3d5698SJohn Baldwin movaps %xmm0,-16(%edx) 1768bc3d5698SJohn Baldwin movl (%ebp),%edi 1769bc3d5698SJohn Baldwin movl 12(%ebp),%ebx 1770bc3d5698SJohn Baldwin testl $15,%edi 1771bc3d5698SJohn Baldwin jz .L035cfb_out_aligned 1772bc3d5698SJohn Baldwin movl %ebx,%ecx 1773bc3d5698SJohn Baldwin leal (%esp),%esi 1774bc3d5698SJohn Baldwin shrl $2,%ecx 1775bc3d5698SJohn Baldwin.byte 243,165 1776bc3d5698SJohn Baldwin subl %ebx,%edi 1777bc3d5698SJohn Baldwin.L035cfb_out_aligned: 1778bc3d5698SJohn Baldwin movl 4(%ebp),%esi 1779bc3d5698SJohn Baldwin movl 8(%ebp),%ecx 1780bc3d5698SJohn Baldwin addl %ebx,%edi 1781bc3d5698SJohn Baldwin addl %ebx,%esi 1782bc3d5698SJohn Baldwin subl %ebx,%ecx 1783bc3d5698SJohn Baldwin movl $512,%ebx 1784bc3d5698SJohn Baldwin jnz .L033cfb_loop 1785bc3d5698SJohn Baldwin cmpl %ebp,%esp 1786bc3d5698SJohn Baldwin je .L036cfb_done 1787bc3d5698SJohn Baldwin pxor %xmm0,%xmm0 1788bc3d5698SJohn Baldwin leal (%esp),%eax 1789bc3d5698SJohn Baldwin.L037cfb_bzero: 1790bc3d5698SJohn Baldwin movaps %xmm0,(%eax) 1791bc3d5698SJohn Baldwin leal 16(%eax),%eax 1792bc3d5698SJohn Baldwin cmpl %eax,%ebp 1793bc3d5698SJohn Baldwin ja .L037cfb_bzero 1794bc3d5698SJohn Baldwin.L036cfb_done: 1795bc3d5698SJohn Baldwin movl 16(%ebp),%ebp 1796bc3d5698SJohn Baldwin leal 24(%ebp),%esp 1797bc3d5698SJohn Baldwin jmp .L038cfb_exit 1798bc3d5698SJohn Baldwin.align 16 1799bc3d5698SJohn Baldwin.L032cfb_aligned: 1800bc3d5698SJohn Baldwin leal -16(%edx),%eax 1801bc3d5698SJohn Baldwin leal 16(%edx),%ebx 1802bc3d5698SJohn Baldwin shrl $4,%ecx 1803bc3d5698SJohn Baldwin.byte 243,15,167,224 1804bc3d5698SJohn Baldwin movaps (%eax),%xmm0 1805bc3d5698SJohn Baldwin movaps %xmm0,-16(%edx) 1806bc3d5698SJohn Baldwin.L038cfb_exit: 1807bc3d5698SJohn Baldwin movl $1,%eax 1808bc3d5698SJohn Baldwin leal 4(%esp),%esp 1809bc3d5698SJohn Baldwin.L030cfb_abort: 1810bc3d5698SJohn Baldwin popl %edi 1811bc3d5698SJohn Baldwin popl %esi 1812bc3d5698SJohn Baldwin popl %ebx 1813bc3d5698SJohn Baldwin popl %ebp 1814bc3d5698SJohn Baldwin ret 1815bc3d5698SJohn Baldwin.size padlock_cfb_encrypt,.-.L_padlock_cfb_encrypt_begin 1816bc3d5698SJohn Baldwin.globl padlock_ofb_encrypt 1817bc3d5698SJohn Baldwin.type padlock_ofb_encrypt,@function 1818bc3d5698SJohn Baldwin.align 16 1819bc3d5698SJohn Baldwinpadlock_ofb_encrypt: 1820bc3d5698SJohn Baldwin.L_padlock_ofb_encrypt_begin: 1821*c0855eaaSJohn Baldwin #ifdef __CET__ 1822*c0855eaaSJohn Baldwin 1823*c0855eaaSJohn Baldwin.byte 243,15,30,251 1824*c0855eaaSJohn Baldwin #endif 1825*c0855eaaSJohn Baldwin 1826bc3d5698SJohn Baldwin pushl %ebp 1827bc3d5698SJohn Baldwin pushl %ebx 1828bc3d5698SJohn Baldwin pushl %esi 1829bc3d5698SJohn Baldwin pushl %edi 1830bc3d5698SJohn Baldwin movl 20(%esp),%edi 1831bc3d5698SJohn Baldwin movl 24(%esp),%esi 1832bc3d5698SJohn Baldwin movl 28(%esp),%edx 1833bc3d5698SJohn Baldwin movl 32(%esp),%ecx 1834bc3d5698SJohn Baldwin testl $15,%edx 1835bc3d5698SJohn Baldwin jnz .L039ofb_abort 1836bc3d5698SJohn Baldwin testl $15,%ecx 1837bc3d5698SJohn Baldwin jnz .L039ofb_abort 1838bc3d5698SJohn Baldwin leal .Lpadlock_saved_context-.L040ofb_pic_point,%eax 1839bc3d5698SJohn Baldwin pushfl 1840bc3d5698SJohn Baldwin cld 1841bc3d5698SJohn Baldwin call _padlock_verify_ctx 1842bc3d5698SJohn Baldwin.L040ofb_pic_point: 1843bc3d5698SJohn Baldwin leal 16(%edx),%edx 1844bc3d5698SJohn Baldwin xorl %eax,%eax 1845bc3d5698SJohn Baldwin xorl %ebx,%ebx 1846bc3d5698SJohn Baldwin testl $32,(%edx) 1847bc3d5698SJohn Baldwin jnz .L041ofb_aligned 1848bc3d5698SJohn Baldwin testl $15,%edi 1849bc3d5698SJohn Baldwin setz %al 1850bc3d5698SJohn Baldwin testl $15,%esi 1851bc3d5698SJohn Baldwin setz %bl 1852bc3d5698SJohn Baldwin testl %ebx,%eax 1853bc3d5698SJohn Baldwin jnz .L041ofb_aligned 1854bc3d5698SJohn Baldwin negl %eax 1855bc3d5698SJohn Baldwin movl $512,%ebx 1856bc3d5698SJohn Baldwin notl %eax 1857bc3d5698SJohn Baldwin leal -24(%esp),%ebp 1858bc3d5698SJohn Baldwin cmpl %ebx,%ecx 1859bc3d5698SJohn Baldwin cmovcl %ecx,%ebx 1860bc3d5698SJohn Baldwin andl %ebx,%eax 1861bc3d5698SJohn Baldwin movl %ecx,%ebx 1862bc3d5698SJohn Baldwin negl %eax 1863bc3d5698SJohn Baldwin andl $511,%ebx 1864bc3d5698SJohn Baldwin leal (%eax,%ebp,1),%esp 1865bc3d5698SJohn Baldwin movl $512,%eax 1866bc3d5698SJohn Baldwin cmovzl %eax,%ebx 1867bc3d5698SJohn Baldwin movl %ebp,%eax 1868bc3d5698SJohn Baldwin andl $-16,%ebp 1869bc3d5698SJohn Baldwin andl $-16,%esp 1870bc3d5698SJohn Baldwin movl %eax,16(%ebp) 1871bc3d5698SJohn Baldwin jmp .L042ofb_loop 1872bc3d5698SJohn Baldwin.align 16 1873bc3d5698SJohn Baldwin.L042ofb_loop: 1874bc3d5698SJohn Baldwin movl %edi,(%ebp) 1875bc3d5698SJohn Baldwin movl %esi,4(%ebp) 1876bc3d5698SJohn Baldwin movl %ecx,8(%ebp) 1877bc3d5698SJohn Baldwin movl %ebx,%ecx 1878bc3d5698SJohn Baldwin movl %ebx,12(%ebp) 1879bc3d5698SJohn Baldwin testl $15,%edi 1880bc3d5698SJohn Baldwin cmovnzl %esp,%edi 1881bc3d5698SJohn Baldwin testl $15,%esi 1882bc3d5698SJohn Baldwin jz .L043ofb_inp_aligned 1883bc3d5698SJohn Baldwin shrl $2,%ecx 1884bc3d5698SJohn Baldwin.byte 243,165 1885bc3d5698SJohn Baldwin subl %ebx,%edi 1886bc3d5698SJohn Baldwin movl %ebx,%ecx 1887bc3d5698SJohn Baldwin movl %edi,%esi 1888bc3d5698SJohn Baldwin.L043ofb_inp_aligned: 1889bc3d5698SJohn Baldwin leal -16(%edx),%eax 1890bc3d5698SJohn Baldwin leal 16(%edx),%ebx 1891bc3d5698SJohn Baldwin shrl $4,%ecx 1892bc3d5698SJohn Baldwin.byte 243,15,167,232 1893bc3d5698SJohn Baldwin movaps (%eax),%xmm0 1894bc3d5698SJohn Baldwin movaps %xmm0,-16(%edx) 1895bc3d5698SJohn Baldwin movl (%ebp),%edi 1896bc3d5698SJohn Baldwin movl 12(%ebp),%ebx 1897bc3d5698SJohn Baldwin testl $15,%edi 1898bc3d5698SJohn Baldwin jz .L044ofb_out_aligned 1899bc3d5698SJohn Baldwin movl %ebx,%ecx 1900bc3d5698SJohn Baldwin leal (%esp),%esi 1901bc3d5698SJohn Baldwin shrl $2,%ecx 1902bc3d5698SJohn Baldwin.byte 243,165 1903bc3d5698SJohn Baldwin subl %ebx,%edi 1904bc3d5698SJohn Baldwin.L044ofb_out_aligned: 1905bc3d5698SJohn Baldwin movl 4(%ebp),%esi 1906bc3d5698SJohn Baldwin movl 8(%ebp),%ecx 1907bc3d5698SJohn Baldwin addl %ebx,%edi 1908bc3d5698SJohn Baldwin addl %ebx,%esi 1909bc3d5698SJohn Baldwin subl %ebx,%ecx 1910bc3d5698SJohn Baldwin movl $512,%ebx 1911bc3d5698SJohn Baldwin jnz .L042ofb_loop 1912bc3d5698SJohn Baldwin cmpl %ebp,%esp 1913bc3d5698SJohn Baldwin je .L045ofb_done 1914bc3d5698SJohn Baldwin pxor %xmm0,%xmm0 1915bc3d5698SJohn Baldwin leal (%esp),%eax 1916bc3d5698SJohn Baldwin.L046ofb_bzero: 1917bc3d5698SJohn Baldwin movaps %xmm0,(%eax) 1918bc3d5698SJohn Baldwin leal 16(%eax),%eax 1919bc3d5698SJohn Baldwin cmpl %eax,%ebp 1920bc3d5698SJohn Baldwin ja .L046ofb_bzero 1921bc3d5698SJohn Baldwin.L045ofb_done: 1922bc3d5698SJohn Baldwin movl 16(%ebp),%ebp 1923bc3d5698SJohn Baldwin leal 24(%ebp),%esp 1924bc3d5698SJohn Baldwin jmp .L047ofb_exit 1925bc3d5698SJohn Baldwin.align 16 1926bc3d5698SJohn Baldwin.L041ofb_aligned: 1927bc3d5698SJohn Baldwin leal -16(%edx),%eax 1928bc3d5698SJohn Baldwin leal 16(%edx),%ebx 1929bc3d5698SJohn Baldwin shrl $4,%ecx 1930bc3d5698SJohn Baldwin.byte 243,15,167,232 1931bc3d5698SJohn Baldwin movaps (%eax),%xmm0 1932bc3d5698SJohn Baldwin movaps %xmm0,-16(%edx) 1933bc3d5698SJohn Baldwin.L047ofb_exit: 1934bc3d5698SJohn Baldwin movl $1,%eax 1935bc3d5698SJohn Baldwin leal 4(%esp),%esp 1936bc3d5698SJohn Baldwin.L039ofb_abort: 1937bc3d5698SJohn Baldwin popl %edi 1938bc3d5698SJohn Baldwin popl %esi 1939bc3d5698SJohn Baldwin popl %ebx 1940bc3d5698SJohn Baldwin popl %ebp 1941bc3d5698SJohn Baldwin ret 1942bc3d5698SJohn Baldwin.size padlock_ofb_encrypt,.-.L_padlock_ofb_encrypt_begin 1943bc3d5698SJohn Baldwin.globl padlock_ctr32_encrypt 1944bc3d5698SJohn Baldwin.type padlock_ctr32_encrypt,@function 1945bc3d5698SJohn Baldwin.align 16 1946bc3d5698SJohn Baldwinpadlock_ctr32_encrypt: 1947bc3d5698SJohn Baldwin.L_padlock_ctr32_encrypt_begin: 1948*c0855eaaSJohn Baldwin #ifdef __CET__ 1949*c0855eaaSJohn Baldwin 1950*c0855eaaSJohn Baldwin.byte 243,15,30,251 1951*c0855eaaSJohn Baldwin #endif 1952*c0855eaaSJohn Baldwin 1953bc3d5698SJohn Baldwin pushl %ebp 1954bc3d5698SJohn Baldwin pushl %ebx 1955bc3d5698SJohn Baldwin pushl %esi 1956bc3d5698SJohn Baldwin pushl %edi 1957bc3d5698SJohn Baldwin movl 20(%esp),%edi 1958bc3d5698SJohn Baldwin movl 24(%esp),%esi 1959bc3d5698SJohn Baldwin movl 28(%esp),%edx 1960bc3d5698SJohn Baldwin movl 32(%esp),%ecx 1961bc3d5698SJohn Baldwin testl $15,%edx 1962bc3d5698SJohn Baldwin jnz .L048ctr32_abort 1963bc3d5698SJohn Baldwin testl $15,%ecx 1964bc3d5698SJohn Baldwin jnz .L048ctr32_abort 1965bc3d5698SJohn Baldwin leal .Lpadlock_saved_context-.L049ctr32_pic_point,%eax 1966bc3d5698SJohn Baldwin pushfl 1967bc3d5698SJohn Baldwin cld 1968bc3d5698SJohn Baldwin call _padlock_verify_ctx 1969bc3d5698SJohn Baldwin.L049ctr32_pic_point: 1970bc3d5698SJohn Baldwin leal 16(%edx),%edx 1971bc3d5698SJohn Baldwin xorl %eax,%eax 1972bc3d5698SJohn Baldwin movq -16(%edx),%mm0 1973bc3d5698SJohn Baldwin movl $512,%ebx 1974bc3d5698SJohn Baldwin notl %eax 1975bc3d5698SJohn Baldwin leal -24(%esp),%ebp 1976bc3d5698SJohn Baldwin cmpl %ebx,%ecx 1977bc3d5698SJohn Baldwin cmovcl %ecx,%ebx 1978bc3d5698SJohn Baldwin andl %ebx,%eax 1979bc3d5698SJohn Baldwin movl %ecx,%ebx 1980bc3d5698SJohn Baldwin negl %eax 1981bc3d5698SJohn Baldwin andl $511,%ebx 1982bc3d5698SJohn Baldwin leal (%eax,%ebp,1),%esp 1983bc3d5698SJohn Baldwin movl $512,%eax 1984bc3d5698SJohn Baldwin cmovzl %eax,%ebx 1985bc3d5698SJohn Baldwin movl %ebp,%eax 1986bc3d5698SJohn Baldwin andl $-16,%ebp 1987bc3d5698SJohn Baldwin andl $-16,%esp 1988bc3d5698SJohn Baldwin movl %eax,16(%ebp) 1989bc3d5698SJohn Baldwin jmp .L050ctr32_loop 1990bc3d5698SJohn Baldwin.align 16 1991bc3d5698SJohn Baldwin.L050ctr32_loop: 1992bc3d5698SJohn Baldwin movl %edi,(%ebp) 1993bc3d5698SJohn Baldwin movl %esi,4(%ebp) 1994bc3d5698SJohn Baldwin movl %ecx,8(%ebp) 1995bc3d5698SJohn Baldwin movl %ebx,%ecx 1996bc3d5698SJohn Baldwin movl %ebx,12(%ebp) 1997bc3d5698SJohn Baldwin movl -4(%edx),%ecx 1998bc3d5698SJohn Baldwin xorl %edi,%edi 1999bc3d5698SJohn Baldwin movl -8(%edx),%eax 2000bc3d5698SJohn Baldwin.L051ctr32_prepare: 2001bc3d5698SJohn Baldwin movl %ecx,12(%esp,%edi,1) 2002bc3d5698SJohn Baldwin bswap %ecx 2003bc3d5698SJohn Baldwin movq %mm0,(%esp,%edi,1) 2004bc3d5698SJohn Baldwin incl %ecx 2005bc3d5698SJohn Baldwin movl %eax,8(%esp,%edi,1) 2006bc3d5698SJohn Baldwin bswap %ecx 2007bc3d5698SJohn Baldwin leal 16(%edi),%edi 2008bc3d5698SJohn Baldwin cmpl %ebx,%edi 2009bc3d5698SJohn Baldwin jb .L051ctr32_prepare 2010bc3d5698SJohn Baldwin movl %ecx,-4(%edx) 2011bc3d5698SJohn Baldwin leal (%esp),%esi 2012bc3d5698SJohn Baldwin leal (%esp),%edi 2013bc3d5698SJohn Baldwin movl %ebx,%ecx 2014bc3d5698SJohn Baldwin leal -16(%edx),%eax 2015bc3d5698SJohn Baldwin leal 16(%edx),%ebx 2016bc3d5698SJohn Baldwin shrl $4,%ecx 2017bc3d5698SJohn Baldwin.byte 243,15,167,200 2018bc3d5698SJohn Baldwin movl (%ebp),%edi 2019bc3d5698SJohn Baldwin movl 12(%ebp),%ebx 2020bc3d5698SJohn Baldwin movl 4(%ebp),%esi 2021bc3d5698SJohn Baldwin xorl %ecx,%ecx 2022bc3d5698SJohn Baldwin.L052ctr32_xor: 2023bc3d5698SJohn Baldwin movups (%esi,%ecx,1),%xmm1 2024bc3d5698SJohn Baldwin leal 16(%ecx),%ecx 2025bc3d5698SJohn Baldwin pxor -16(%esp,%ecx,1),%xmm1 2026bc3d5698SJohn Baldwin movups %xmm1,-16(%edi,%ecx,1) 2027bc3d5698SJohn Baldwin cmpl %ebx,%ecx 2028bc3d5698SJohn Baldwin jb .L052ctr32_xor 2029bc3d5698SJohn Baldwin movl 8(%ebp),%ecx 2030bc3d5698SJohn Baldwin addl %ebx,%edi 2031bc3d5698SJohn Baldwin addl %ebx,%esi 2032bc3d5698SJohn Baldwin subl %ebx,%ecx 2033bc3d5698SJohn Baldwin movl $512,%ebx 2034bc3d5698SJohn Baldwin jnz .L050ctr32_loop 2035bc3d5698SJohn Baldwin pxor %xmm0,%xmm0 2036bc3d5698SJohn Baldwin leal (%esp),%eax 2037bc3d5698SJohn Baldwin.L053ctr32_bzero: 2038bc3d5698SJohn Baldwin movaps %xmm0,(%eax) 2039bc3d5698SJohn Baldwin leal 16(%eax),%eax 2040bc3d5698SJohn Baldwin cmpl %eax,%ebp 2041bc3d5698SJohn Baldwin ja .L053ctr32_bzero 2042bc3d5698SJohn Baldwin.L054ctr32_done: 2043bc3d5698SJohn Baldwin movl 16(%ebp),%ebp 2044bc3d5698SJohn Baldwin leal 24(%ebp),%esp 2045bc3d5698SJohn Baldwin movl $1,%eax 2046bc3d5698SJohn Baldwin leal 4(%esp),%esp 2047bc3d5698SJohn Baldwin emms 2048bc3d5698SJohn Baldwin.L048ctr32_abort: 2049bc3d5698SJohn Baldwin popl %edi 2050bc3d5698SJohn Baldwin popl %esi 2051bc3d5698SJohn Baldwin popl %ebx 2052bc3d5698SJohn Baldwin popl %ebp 2053bc3d5698SJohn Baldwin ret 2054bc3d5698SJohn Baldwin.size padlock_ctr32_encrypt,.-.L_padlock_ctr32_encrypt_begin 2055bc3d5698SJohn Baldwin.globl padlock_xstore 2056bc3d5698SJohn Baldwin.type padlock_xstore,@function 2057bc3d5698SJohn Baldwin.align 16 2058bc3d5698SJohn Baldwinpadlock_xstore: 2059bc3d5698SJohn Baldwin.L_padlock_xstore_begin: 2060*c0855eaaSJohn Baldwin #ifdef __CET__ 2061*c0855eaaSJohn Baldwin 2062*c0855eaaSJohn Baldwin.byte 243,15,30,251 2063*c0855eaaSJohn Baldwin #endif 2064*c0855eaaSJohn Baldwin 2065bc3d5698SJohn Baldwin pushl %edi 2066bc3d5698SJohn Baldwin movl 8(%esp),%edi 2067bc3d5698SJohn Baldwin movl 12(%esp),%edx 2068bc3d5698SJohn Baldwin.byte 15,167,192 2069bc3d5698SJohn Baldwin popl %edi 2070bc3d5698SJohn Baldwin ret 2071bc3d5698SJohn Baldwin.size padlock_xstore,.-.L_padlock_xstore_begin 2072bc3d5698SJohn Baldwin.type _win32_segv_handler,@function 2073bc3d5698SJohn Baldwin.align 16 2074bc3d5698SJohn Baldwin_win32_segv_handler: 2075*c0855eaaSJohn Baldwin #ifdef __CET__ 2076*c0855eaaSJohn Baldwin 2077*c0855eaaSJohn Baldwin.byte 243,15,30,251 2078*c0855eaaSJohn Baldwin #endif 2079*c0855eaaSJohn Baldwin 2080bc3d5698SJohn Baldwin movl $1,%eax 2081bc3d5698SJohn Baldwin movl 4(%esp),%edx 2082bc3d5698SJohn Baldwin movl 12(%esp),%ecx 2083bc3d5698SJohn Baldwin cmpl $3221225477,(%edx) 2084bc3d5698SJohn Baldwin jne .L055ret 2085bc3d5698SJohn Baldwin addl $4,184(%ecx) 2086bc3d5698SJohn Baldwin movl $0,%eax 2087bc3d5698SJohn Baldwin.L055ret: 2088bc3d5698SJohn Baldwin ret 2089bc3d5698SJohn Baldwin.size _win32_segv_handler,.-_win32_segv_handler 2090bc3d5698SJohn Baldwin.globl padlock_sha1_oneshot 2091bc3d5698SJohn Baldwin.type padlock_sha1_oneshot,@function 2092bc3d5698SJohn Baldwin.align 16 2093bc3d5698SJohn Baldwinpadlock_sha1_oneshot: 2094bc3d5698SJohn Baldwin.L_padlock_sha1_oneshot_begin: 2095*c0855eaaSJohn Baldwin #ifdef __CET__ 2096*c0855eaaSJohn Baldwin 2097*c0855eaaSJohn Baldwin.byte 243,15,30,251 2098*c0855eaaSJohn Baldwin #endif 2099*c0855eaaSJohn Baldwin 2100bc3d5698SJohn Baldwin pushl %edi 2101bc3d5698SJohn Baldwin pushl %esi 2102bc3d5698SJohn Baldwin xorl %eax,%eax 2103bc3d5698SJohn Baldwin movl 12(%esp),%edi 2104bc3d5698SJohn Baldwin movl 16(%esp),%esi 2105bc3d5698SJohn Baldwin movl 20(%esp),%ecx 2106bc3d5698SJohn Baldwin movl %esp,%edx 2107bc3d5698SJohn Baldwin addl $-128,%esp 2108bc3d5698SJohn Baldwin movups (%edi),%xmm0 2109bc3d5698SJohn Baldwin andl $-16,%esp 2110bc3d5698SJohn Baldwin movl 16(%edi),%eax 2111bc3d5698SJohn Baldwin movaps %xmm0,(%esp) 2112bc3d5698SJohn Baldwin movl %esp,%edi 2113bc3d5698SJohn Baldwin movl %eax,16(%esp) 2114bc3d5698SJohn Baldwin xorl %eax,%eax 2115bc3d5698SJohn Baldwin.byte 243,15,166,200 2116bc3d5698SJohn Baldwin movaps (%esp),%xmm0 2117bc3d5698SJohn Baldwin movl 16(%esp),%eax 2118bc3d5698SJohn Baldwin movl %edx,%esp 2119bc3d5698SJohn Baldwin movl 12(%esp),%edi 2120bc3d5698SJohn Baldwin movups %xmm0,(%edi) 2121bc3d5698SJohn Baldwin movl %eax,16(%edi) 2122bc3d5698SJohn Baldwin popl %esi 2123bc3d5698SJohn Baldwin popl %edi 2124bc3d5698SJohn Baldwin ret 2125bc3d5698SJohn Baldwin.size padlock_sha1_oneshot,.-.L_padlock_sha1_oneshot_begin 2126bc3d5698SJohn Baldwin.globl padlock_sha1_blocks 2127bc3d5698SJohn Baldwin.type padlock_sha1_blocks,@function 2128bc3d5698SJohn Baldwin.align 16 2129bc3d5698SJohn Baldwinpadlock_sha1_blocks: 2130bc3d5698SJohn Baldwin.L_padlock_sha1_blocks_begin: 2131*c0855eaaSJohn Baldwin #ifdef __CET__ 2132*c0855eaaSJohn Baldwin 2133*c0855eaaSJohn Baldwin.byte 243,15,30,251 2134*c0855eaaSJohn Baldwin #endif 2135*c0855eaaSJohn Baldwin 2136bc3d5698SJohn Baldwin pushl %edi 2137bc3d5698SJohn Baldwin pushl %esi 2138bc3d5698SJohn Baldwin movl 12(%esp),%edi 2139bc3d5698SJohn Baldwin movl 16(%esp),%esi 2140bc3d5698SJohn Baldwin movl %esp,%edx 2141bc3d5698SJohn Baldwin movl 20(%esp),%ecx 2142bc3d5698SJohn Baldwin addl $-128,%esp 2143bc3d5698SJohn Baldwin movups (%edi),%xmm0 2144bc3d5698SJohn Baldwin andl $-16,%esp 2145bc3d5698SJohn Baldwin movl 16(%edi),%eax 2146bc3d5698SJohn Baldwin movaps %xmm0,(%esp) 2147bc3d5698SJohn Baldwin movl %esp,%edi 2148bc3d5698SJohn Baldwin movl %eax,16(%esp) 2149bc3d5698SJohn Baldwin movl $-1,%eax 2150bc3d5698SJohn Baldwin.byte 243,15,166,200 2151bc3d5698SJohn Baldwin movaps (%esp),%xmm0 2152bc3d5698SJohn Baldwin movl 16(%esp),%eax 2153bc3d5698SJohn Baldwin movl %edx,%esp 2154bc3d5698SJohn Baldwin movl 12(%esp),%edi 2155bc3d5698SJohn Baldwin movups %xmm0,(%edi) 2156bc3d5698SJohn Baldwin movl %eax,16(%edi) 2157bc3d5698SJohn Baldwin popl %esi 2158bc3d5698SJohn Baldwin popl %edi 2159bc3d5698SJohn Baldwin ret 2160bc3d5698SJohn Baldwin.size padlock_sha1_blocks,.-.L_padlock_sha1_blocks_begin 2161bc3d5698SJohn Baldwin.globl padlock_sha256_oneshot 2162bc3d5698SJohn Baldwin.type padlock_sha256_oneshot,@function 2163bc3d5698SJohn Baldwin.align 16 2164bc3d5698SJohn Baldwinpadlock_sha256_oneshot: 2165bc3d5698SJohn Baldwin.L_padlock_sha256_oneshot_begin: 2166*c0855eaaSJohn Baldwin #ifdef __CET__ 2167*c0855eaaSJohn Baldwin 2168*c0855eaaSJohn Baldwin.byte 243,15,30,251 2169*c0855eaaSJohn Baldwin #endif 2170*c0855eaaSJohn Baldwin 2171bc3d5698SJohn Baldwin pushl %edi 2172bc3d5698SJohn Baldwin pushl %esi 2173bc3d5698SJohn Baldwin xorl %eax,%eax 2174bc3d5698SJohn Baldwin movl 12(%esp),%edi 2175bc3d5698SJohn Baldwin movl 16(%esp),%esi 2176bc3d5698SJohn Baldwin movl 20(%esp),%ecx 2177bc3d5698SJohn Baldwin movl %esp,%edx 2178bc3d5698SJohn Baldwin addl $-128,%esp 2179bc3d5698SJohn Baldwin movups (%edi),%xmm0 2180bc3d5698SJohn Baldwin andl $-16,%esp 2181bc3d5698SJohn Baldwin movups 16(%edi),%xmm1 2182bc3d5698SJohn Baldwin movaps %xmm0,(%esp) 2183bc3d5698SJohn Baldwin movl %esp,%edi 2184bc3d5698SJohn Baldwin movaps %xmm1,16(%esp) 2185bc3d5698SJohn Baldwin xorl %eax,%eax 2186bc3d5698SJohn Baldwin.byte 243,15,166,208 2187bc3d5698SJohn Baldwin movaps (%esp),%xmm0 2188bc3d5698SJohn Baldwin movaps 16(%esp),%xmm1 2189bc3d5698SJohn Baldwin movl %edx,%esp 2190bc3d5698SJohn Baldwin movl 12(%esp),%edi 2191bc3d5698SJohn Baldwin movups %xmm0,(%edi) 2192bc3d5698SJohn Baldwin movups %xmm1,16(%edi) 2193bc3d5698SJohn Baldwin popl %esi 2194bc3d5698SJohn Baldwin popl %edi 2195bc3d5698SJohn Baldwin ret 2196bc3d5698SJohn Baldwin.size padlock_sha256_oneshot,.-.L_padlock_sha256_oneshot_begin 2197bc3d5698SJohn Baldwin.globl padlock_sha256_blocks 2198bc3d5698SJohn Baldwin.type padlock_sha256_blocks,@function 2199bc3d5698SJohn Baldwin.align 16 2200bc3d5698SJohn Baldwinpadlock_sha256_blocks: 2201bc3d5698SJohn Baldwin.L_padlock_sha256_blocks_begin: 2202*c0855eaaSJohn Baldwin #ifdef __CET__ 2203*c0855eaaSJohn Baldwin 2204*c0855eaaSJohn Baldwin.byte 243,15,30,251 2205*c0855eaaSJohn Baldwin #endif 2206*c0855eaaSJohn Baldwin 2207bc3d5698SJohn Baldwin pushl %edi 2208bc3d5698SJohn Baldwin pushl %esi 2209bc3d5698SJohn Baldwin movl 12(%esp),%edi 2210bc3d5698SJohn Baldwin movl 16(%esp),%esi 2211bc3d5698SJohn Baldwin movl 20(%esp),%ecx 2212bc3d5698SJohn Baldwin movl %esp,%edx 2213bc3d5698SJohn Baldwin addl $-128,%esp 2214bc3d5698SJohn Baldwin movups (%edi),%xmm0 2215bc3d5698SJohn Baldwin andl $-16,%esp 2216bc3d5698SJohn Baldwin movups 16(%edi),%xmm1 2217bc3d5698SJohn Baldwin movaps %xmm0,(%esp) 2218bc3d5698SJohn Baldwin movl %esp,%edi 2219bc3d5698SJohn Baldwin movaps %xmm1,16(%esp) 2220bc3d5698SJohn Baldwin movl $-1,%eax 2221bc3d5698SJohn Baldwin.byte 243,15,166,208 2222bc3d5698SJohn Baldwin movaps (%esp),%xmm0 2223bc3d5698SJohn Baldwin movaps 16(%esp),%xmm1 2224bc3d5698SJohn Baldwin movl %edx,%esp 2225bc3d5698SJohn Baldwin movl 12(%esp),%edi 2226bc3d5698SJohn Baldwin movups %xmm0,(%edi) 2227bc3d5698SJohn Baldwin movups %xmm1,16(%edi) 2228bc3d5698SJohn Baldwin popl %esi 2229bc3d5698SJohn Baldwin popl %edi 2230bc3d5698SJohn Baldwin ret 2231bc3d5698SJohn Baldwin.size padlock_sha256_blocks,.-.L_padlock_sha256_blocks_begin 2232bc3d5698SJohn Baldwin.globl padlock_sha512_blocks 2233bc3d5698SJohn Baldwin.type padlock_sha512_blocks,@function 2234bc3d5698SJohn Baldwin.align 16 2235bc3d5698SJohn Baldwinpadlock_sha512_blocks: 2236bc3d5698SJohn Baldwin.L_padlock_sha512_blocks_begin: 2237*c0855eaaSJohn Baldwin #ifdef __CET__ 2238*c0855eaaSJohn Baldwin 2239*c0855eaaSJohn Baldwin.byte 243,15,30,251 2240*c0855eaaSJohn Baldwin #endif 2241*c0855eaaSJohn Baldwin 2242bc3d5698SJohn Baldwin pushl %edi 2243bc3d5698SJohn Baldwin pushl %esi 2244bc3d5698SJohn Baldwin movl 12(%esp),%edi 2245bc3d5698SJohn Baldwin movl 16(%esp),%esi 2246bc3d5698SJohn Baldwin movl 20(%esp),%ecx 2247bc3d5698SJohn Baldwin movl %esp,%edx 2248bc3d5698SJohn Baldwin addl $-128,%esp 2249bc3d5698SJohn Baldwin movups (%edi),%xmm0 2250bc3d5698SJohn Baldwin andl $-16,%esp 2251bc3d5698SJohn Baldwin movups 16(%edi),%xmm1 2252bc3d5698SJohn Baldwin movups 32(%edi),%xmm2 2253bc3d5698SJohn Baldwin movups 48(%edi),%xmm3 2254bc3d5698SJohn Baldwin movaps %xmm0,(%esp) 2255bc3d5698SJohn Baldwin movl %esp,%edi 2256bc3d5698SJohn Baldwin movaps %xmm1,16(%esp) 2257bc3d5698SJohn Baldwin movaps %xmm2,32(%esp) 2258bc3d5698SJohn Baldwin movaps %xmm3,48(%esp) 2259bc3d5698SJohn Baldwin.byte 243,15,166,224 2260bc3d5698SJohn Baldwin movaps (%esp),%xmm0 2261bc3d5698SJohn Baldwin movaps 16(%esp),%xmm1 2262bc3d5698SJohn Baldwin movaps 32(%esp),%xmm2 2263bc3d5698SJohn Baldwin movaps 48(%esp),%xmm3 2264bc3d5698SJohn Baldwin movl %edx,%esp 2265bc3d5698SJohn Baldwin movl 12(%esp),%edi 2266bc3d5698SJohn Baldwin movups %xmm0,(%edi) 2267bc3d5698SJohn Baldwin movups %xmm1,16(%edi) 2268bc3d5698SJohn Baldwin movups %xmm2,32(%edi) 2269bc3d5698SJohn Baldwin movups %xmm3,48(%edi) 2270bc3d5698SJohn Baldwin popl %esi 2271bc3d5698SJohn Baldwin popl %edi 2272bc3d5698SJohn Baldwin ret 2273bc3d5698SJohn Baldwin.size padlock_sha512_blocks,.-.L_padlock_sha512_blocks_begin 2274bc3d5698SJohn Baldwin.byte 86,73,65,32,80,97,100,108,111,99,107,32,120,56,54,32 2275bc3d5698SJohn Baldwin.byte 109,111,100,117,108,101,44,32,67,82,89,80,84,79,71,65 2276bc3d5698SJohn Baldwin.byte 77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101 2277bc3d5698SJohn Baldwin.byte 110,115,115,108,46,111,114,103,62,0 2278bc3d5698SJohn Baldwin.align 16 2279bc3d5698SJohn Baldwin.data 2280bc3d5698SJohn Baldwin.align 4 2281bc3d5698SJohn Baldwin.Lpadlock_saved_context: 2282bc3d5698SJohn Baldwin.long 0 2283*c0855eaaSJohn Baldwin 2284*c0855eaaSJohn Baldwin .section ".note.gnu.property", "a" 2285*c0855eaaSJohn Baldwin .p2align 2 2286*c0855eaaSJohn Baldwin .long 1f - 0f 2287*c0855eaaSJohn Baldwin .long 4f - 1f 2288*c0855eaaSJohn Baldwin .long 5 2289*c0855eaaSJohn Baldwin0: 2290*c0855eaaSJohn Baldwin .asciz "GNU" 2291*c0855eaaSJohn Baldwin1: 2292*c0855eaaSJohn Baldwin .p2align 2 2293*c0855eaaSJohn Baldwin .long 0xc0000002 2294*c0855eaaSJohn Baldwin .long 3f - 2f 2295*c0855eaaSJohn Baldwin2: 2296*c0855eaaSJohn Baldwin .long 3 2297*c0855eaaSJohn Baldwin3: 2298*c0855eaaSJohn Baldwin .p2align 2 2299*c0855eaaSJohn Baldwin4: 2300bc3d5698SJohn Baldwin#endif 2301