Changeset 100978 in vbox
- Timestamp:
- Aug 25, 2023 3:30:02 PM (13 months ago)
- Location:
- trunk/src/libs/openssl-3.1.0/crypto/genasm-macosx
- Files:
-
- 6 edited
-
aes-gcm-avx512.S (modified) (2 diffs)
-
poly1305-x86_64.S (modified) (1 diff)
-
rsaz-2k-avx512.S (modified) (1 diff)
-
rsaz-3k-avx512.S (modified) (1 diff)
-
rsaz-4k-avx512.S (modified) (1 diff)
-
rsaz-avx512.S (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/libs/openssl-3.1.0/crypto/genasm-macosx/aes-gcm-avx512.S
r100976 r100978 1 default rel 2 %define XMMWORD 3 %define YMMWORD 4 %define ZMMWORD 5 section .text code align=64 1 .text 2 .globl ossl_vaes_vpclmulqdq_capable 3 .type ossl_vaes_vpclmulqdq_capable,@function 4 ossl_vaes_vpclmulqdq_capable: 5 xorl %eax,%eax 6 .byte 0xf3,0xc3 7 .size ossl_vaes_vpclmulqdq_capable, .-ossl_vaes_vpclmulqdq_capable 6 8 7 global ossl_vaes_vpclmulqdq_capable 9 .globl ossl_aes_gcm_init_avx512 10 .globl ossl_aes_gcm_setiv_avx512 11 .globl ossl_aes_gcm_update_aad_avx512 12 .globl ossl_aes_gcm_encrypt_avx512 13 .globl ossl_aes_gcm_decrypt_avx512 14 .globl ossl_aes_gcm_finalize_avx512 15 .globl ossl_gcm_gmult_avx512 8 16 9 ossl_vaes_vpclmulqdq_capable: 10 xor eax,eax 11 DB 0F3h,0C3h ;repret 12 13 14 global ossl_aes_gcm_init_avx512 15 global ossl_aes_gcm_setiv_avx512 16 global ossl_aes_gcm_update_aad_avx512 17 global ossl_aes_gcm_encrypt_avx512 18 global ossl_aes_gcm_decrypt_avx512 19 global ossl_aes_gcm_finalize_avx512 20 global ossl_gcm_gmult_avx512 21 22 17 .type ossl_aes_gcm_init_avx512,@function 23 18 ossl_aes_gcm_init_avx512: 24 19 ossl_aes_gcm_setiv_avx512: … … 28 23 ossl_aes_gcm_finalize_avx512: 29 24 ossl_gcm_gmult_avx512: 30 DB 0x0f,0x0b 31 DB 0F3h,0C3h ;repret 32 25 .byte 0x0f,0x0b 26 .byte 0xf3,0xc3 27 .size ossl_aes_gcm_init_avx512, .-ossl_aes_gcm_init_avx512 28 .section ".note.gnu.property", "a" 29 .p2align 3 30 .long 1f - 0f 31 .long 4f - 1f 32 .long 5 33 0: 34 # "GNU" encoded with .byte, since .asciz isn't supported 35 # on Solaris. 36 .byte 0x47 37 .byte 0x4e 38 .byte 0x55 39 .byte 0 40 1: 41 .p2align 3 42 .long 0xc0000002 43 .long 3f - 2f 44 2: 45 .long 3 46 3: 47 .p2align 3 48 4: -
trunk/src/libs/openssl-3.1.0/crypto/genasm-macosx/poly1305-x86_64.S
r100976 r100978 1 default rel 2 %define XMMWORD 3 %define YMMWORD 4 %define ZMMWORD 5 section .text code align=64 6 7 8 EXTERN OPENSSL_ia32cap_P 9 10 global poly1305_init 11 12 global poly1305_blocks 13 14 global poly1305_emit 15 16 17 18 ALIGN 32 1 .text 2 3 4 5 .globl poly1305_init 6 .hidden poly1305_init 7 .globl poly1305_blocks 8 .hidden poly1305_blocks 9 .globl poly1305_emit 10 .hidden poly1305_emit 11 12 .type poly1305_init,@function 13 .align 32 19 14 poly1305_init: 20 mov QWORD[8+rsp],rdi ;WIN64 prologue 21 mov QWORD[16+rsp],rsi 22 mov rax,rsp 23 $L$SEH_begin_poly1305_init: 24 mov rdi,rcx 25 mov rsi,rdx 26 mov rdx,r8 27 28 29 30 xor rax,rax 31 mov QWORD[rdi],rax 32 mov QWORD[8+rdi],rax 33 mov QWORD[16+rdi],rax 34 35 cmp rsi,0 36 je NEAR $L$no_key 37 38 lea r10,[poly1305_blocks] 39 lea r11,[poly1305_emit] 40 mov rax,0x0ffffffc0fffffff 41 mov rcx,0x0ffffffc0ffffffc 42 and rax,QWORD[rsi] 43 and rcx,QWORD[8+rsi] 44 mov QWORD[24+rdi],rax 45 mov QWORD[32+rdi],rcx 46 mov QWORD[rdx],r10 47 mov QWORD[8+rdx],r11 48 mov eax,1 49 $L$no_key: 50 mov rdi,QWORD[8+rsp] ;WIN64 epilogue 51 mov rsi,QWORD[16+rsp] 52 DB 0F3h,0C3h ;repret 53 54 $L$SEH_end_poly1305_init: 55 56 57 ALIGN 32 15 .cfi_startproc 16 xorq %rax,%rax 17 movq %rax,0(%rdi) 18 movq %rax,8(%rdi) 19 movq %rax,16(%rdi) 20 21 cmpq $0,%rsi 22 je .Lno_key 23 24 leaq poly1305_blocks(%rip),%r10 25 leaq poly1305_emit(%rip),%r11 26 movq $0x0ffffffc0fffffff,%rax 27 movq $0x0ffffffc0ffffffc,%rcx 28 andq 0(%rsi),%rax 29 andq 8(%rsi),%rcx 30 movq %rax,24(%rdi) 31 movq %rcx,32(%rdi) 32 movq %r10,0(%rdx) 33 movq %r11,8(%rdx) 34 movl $1,%eax 35 .Lno_key: 36 .byte 0xf3,0xc3 37 .cfi_endproc 38 .size poly1305_init,.-poly1305_init 39 40 .type poly1305_blocks,@function 41 .align 32 58 42 poly1305_blocks: 59 mov QWORD[8+rsp],rdi ;WIN64 prologue 60 mov QWORD[16+rsp],rsi 61 mov rax,rsp 62 $L$SEH_begin_poly1305_blocks: 63 mov rdi,rcx 64 mov rsi,rdx 65 mov rdx,r8 66 mov rcx,r9 67 68 69 70 $L$blocks: 71 shr rdx,4 72 jz NEAR $L$no_data 73 74 push rbx 75 76 push rbp 77 78 push r12 79 80 push r13 81 82 push r14 83 84 push r15 85 86 $L$blocks_body: 87 88 mov r15,rdx 89 90 mov r11,QWORD[24+rdi] 91 mov r13,QWORD[32+rdi] 92 93 mov r14,QWORD[rdi] 94 mov rbx,QWORD[8+rdi] 95 mov rbp,QWORD[16+rdi] 96 97 mov r12,r13 98 shr r13,2 99 mov rax,r12 100 add r13,r12 101 jmp NEAR $L$oop 102 103 ALIGN 32 104 $L$oop: 105 add r14,QWORD[rsi] 106 adc rbx,QWORD[8+rsi] 107 lea rsi,[16+rsi] 108 adc rbp,rcx 109 mul r14 110 mov r9,rax 111 mov rax,r11 112 mov r10,rdx 113 114 mul r14 115 mov r14,rax 116 mov rax,r11 117 mov r8,rdx 118 119 mul rbx 120 add r9,rax 121 mov rax,r13 122 adc r10,rdx 123 124 mul rbx 125 mov rbx,rbp 126 add r14,rax 127 adc r8,rdx 128 129 imul rbx,r13 130 add r9,rbx 131 mov rbx,r8 132 adc r10,0 133 134 imul rbp,r11 135 add rbx,r9 136 mov rax,-4 137 adc r10,rbp 138 139 and rax,r10 140 mov rbp,r10 141 shr r10,2 142 and rbp,3 143 add rax,r10 144 add r14,rax 145 adc rbx,0 146 adc rbp,0 147 mov rax,r12 148 dec r15 149 jnz NEAR $L$oop 150 151 mov QWORD[rdi],r14 152 mov QWORD[8+rdi],rbx 153 mov QWORD[16+rdi],rbp 154 155 mov r15,QWORD[rsp] 156 157 mov r14,QWORD[8+rsp] 158 159 mov r13,QWORD[16+rsp] 160 161 mov r12,QWORD[24+rsp] 162 163 mov rbp,QWORD[32+rsp] 164 165 mov rbx,QWORD[40+rsp] 166 167 lea rsp,[48+rsp] 168 169 $L$no_data: 170 $L$blocks_epilogue: 171 mov rdi,QWORD[8+rsp] ;WIN64 epilogue 172 mov rsi,QWORD[16+rsp] 173 DB 0F3h,0C3h ;repret 174 175 $L$SEH_end_poly1305_blocks: 176 177 178 ALIGN 32 43 .cfi_startproc 44 .Lblocks: 45 shrq $4,%rdx 46 jz .Lno_data 47 48 pushq %rbx 49 .cfi_adjust_cfa_offset 8 50 .cfi_offset %rbx,-16 51 pushq %rbp 52 .cfi_adjust_cfa_offset 8 53 .cfi_offset %rbp,-24 54 pushq %r12 55 .cfi_adjust_cfa_offset 8 56 .cfi_offset %r12,-32 57 pushq %r13 58 .cfi_adjust_cfa_offset 8 59 .cfi_offset %r13,-40 60 pushq %r14 61 .cfi_adjust_cfa_offset 8 62 .cfi_offset %r14,-48 63 pushq %r15 64 .cfi_adjust_cfa_offset 8 65 .cfi_offset %r15,-56 66 .Lblocks_body: 67 68 movq %rdx,%r15 69 70 movq 24(%rdi),%r11 71 movq 32(%rdi),%r13 72 73 movq 0(%rdi),%r14 74 movq 8(%rdi),%rbx 75 movq 16(%rdi),%rbp 76 77 movq %r13,%r12 78 shrq $2,%r13 79 movq %r12,%rax 80 addq %r12,%r13 81 jmp .Loop 82 83 .align 32 84 .Loop: 85 addq 0(%rsi),%r14 86 adcq 8(%rsi),%rbx 87 leaq 16(%rsi),%rsi 88 adcq %rcx,%rbp 89 mulq %r14 90 movq %rax,%r9 91 movq %r11,%rax 92 movq %rdx,%r10 93 94 mulq %r14 95 movq %rax,%r14 96 movq %r11,%rax 97 movq %rdx,%r8 98 99 mulq %rbx 100 addq %rax,%r9 101 movq %r13,%rax 102 adcq %rdx,%r10 103 104 mulq %rbx 105 movq %rbp,%rbx 106 addq %rax,%r14 107 adcq %rdx,%r8 108 109 imulq %r13,%rbx 110 addq %rbx,%r9 111 movq %r8,%rbx 112 adcq $0,%r10 113 114 imulq %r11,%rbp 115 addq %r9,%rbx 116 movq $-4,%rax 117 adcq %rbp,%r10 118 119 andq %r10,%rax 120 movq %r10,%rbp 121 shrq $2,%r10 122 andq $3,%rbp 123 addq %r10,%rax 124 addq %rax,%r14 125 adcq $0,%rbx 126 adcq $0,%rbp 127 movq %r12,%rax 128 decq %r15 129 jnz .Loop 130 131 movq %r14,0(%rdi) 132 movq %rbx,8(%rdi) 133 movq %rbp,16(%rdi) 134 135 movq 0(%rsp),%r15 136 .cfi_restore %r15 137 movq 8(%rsp),%r14 138 .cfi_restore %r14 139 movq 16(%rsp),%r13 140 .cfi_restore %r13 141 movq 24(%rsp),%r12 142 .cfi_restore %r12 143 movq 32(%rsp),%rbp 144 .cfi_restore %rbp 145 movq 40(%rsp),%rbx 146 .cfi_restore %rbx 147 leaq 48(%rsp),%rsp 148 .cfi_adjust_cfa_offset -48 149 .Lno_data: 150 .Lblocks_epilogue: 151 .byte 0xf3,0xc3 152 .cfi_endproc 153 .size poly1305_blocks,.-poly1305_blocks 154 155 .type poly1305_emit,@function 156 .align 32 179 157 poly1305_emit: 180 mov QWORD[8+rsp],rdi ;WIN64 prologue 181 mov QWORD[16+rsp],rsi 182 mov rax,rsp 183 $L$SEH_begin_poly1305_emit: 184 mov rdi,rcx 185 mov rsi,rdx 186 mov rdx,r8 187 188 189 190 $L$emit: 191 mov r8,QWORD[rdi] 192 mov r9,QWORD[8+rdi] 193 mov r10,QWORD[16+rdi] 194 195 mov rax,r8 196 add r8,5 197 mov rcx,r9 198 adc r9,0 199 adc r10,0 200 shr r10,2 201 cmovnz rax,r8 202 cmovnz rcx,r9 203 204 add rax,QWORD[rdx] 205 adc rcx,QWORD[8+rdx] 206 mov QWORD[rsi],rax 207 mov QWORD[8+rsi],rcx 208 209 mov rdi,QWORD[8+rsp] ;WIN64 epilogue 210 mov rsi,QWORD[16+rsp] 211 DB 0F3h,0C3h ;repret 212 213 $L$SEH_end_poly1305_emit: 214 DB 80,111,108,121,49,51,48,53,32,102,111,114,32,120,56,54 215 DB 95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32 216 DB 98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115 217 DB 108,46,111,114,103,62,0 218 ALIGN 16 219 global xor128_encrypt_n_pad 220 221 ALIGN 16 158 .cfi_startproc 159 .Lemit: 160 movq 0(%rdi),%r8 161 movq 8(%rdi),%r9 162 movq 16(%rdi),%r10 163 164 movq %r8,%rax 165 addq $5,%r8 166 movq %r9,%rcx 167 adcq $0,%r9 168 adcq $0,%r10 169 shrq $2,%r10 170 cmovnzq %r8,%rax 171 cmovnzq %r9,%rcx 172 173 addq 0(%rdx),%rax 174 adcq 8(%rdx),%rcx 175 movq %rax,0(%rsi) 176 movq %rcx,8(%rsi) 177 178 .byte 0xf3,0xc3 179 .cfi_endproc 180 .size poly1305_emit,.-poly1305_emit 181 .byte 80,111,108,121,49,51,48,53,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 182 .align 16 183 .globl xor128_encrypt_n_pad 184 .type xor128_encrypt_n_pad,@function 185 .align 16 222 186 xor128_encrypt_n_pad: 223 224 sub rdx,r8 225 sub rcx,r8 226 mov r10,r9 227 shr r9,4 228 jz NEAR $L$tail_enc229 nop230 $L$oop_enc_xmm:231 movdqu xmm0,XMMWORD[r8*1+rdx] 232 pxor xmm0,XMMWORD[r8] 233 movdqu XMMWORD[r8*1+rcx],xmm0 234 movdqa XMMWORD[r8],xmm0 235 lea r8,[16+r8] 236 dec r9 237 jnz NEAR $L$oop_enc_xmm238 239 and r10,15 240 jz NEAR $L$done_enc241 242 $L$tail_enc:243 mov r9,16 244 sub r9,r10 245 xor eax,eax246 $L$oop_enc_byte:247 mov al,BYTE[r8*1+rdx] 248 xor al,BYTE[r8] 249 mov BYTE[r8*1+rcx],al 250 mov BYTE[r8],al 251 lea r8,[1+r8] 252 decr10253 jnz NEAR $L$oop_enc_byte254 255 xor eax,eax256 $L$oop_enc_pad:257 mov BYTE[r8],al 258 lea r8,[1+r8] 259 dec r9 260 jnz NEAR $L$oop_enc_pad261 262 $L$done_enc:263 mov rax,r8 264 DB 0F3h,0C3h ;repret 265 266 267 268 globalxor128_decrypt_n_pad269 270 ALIGN16187 .cfi_startproc 188 subq %rdx,%rsi 189 subq %rdx,%rdi 190 movq %rcx,%r10 191 shrq $4,%rcx 192 jz .Ltail_enc 193 nop 194 .Loop_enc_xmm: 195 movdqu (%rsi,%rdx,1),%xmm0 196 pxor (%rdx),%xmm0 197 movdqu %xmm0,(%rdi,%rdx,1) 198 movdqa %xmm0,(%rdx) 199 leaq 16(%rdx),%rdx 200 decq %rcx 201 jnz .Loop_enc_xmm 202 203 andq $15,%r10 204 jz .Ldone_enc 205 206 .Ltail_enc: 207 movq $16,%rcx 208 subq %r10,%rcx 209 xorl %eax,%eax 210 .Loop_enc_byte: 211 movb (%rsi,%rdx,1),%al 212 xorb (%rdx),%al 213 movb %al,(%rdi,%rdx,1) 214 movb %al,(%rdx) 215 leaq 1(%rdx),%rdx 216 decq %r10 217 jnz .Loop_enc_byte 218 219 xorl %eax,%eax 220 .Loop_enc_pad: 221 movb %al,(%rdx) 222 leaq 1(%rdx),%rdx 223 decq %rcx 224 jnz .Loop_enc_pad 225 226 .Ldone_enc: 227 movq %rdx,%rax 228 .byte 0xf3,0xc3 229 .cfi_endproc 230 .size xor128_encrypt_n_pad,.-xor128_encrypt_n_pad 231 232 .globl xor128_decrypt_n_pad 233 .type xor128_decrypt_n_pad,@function 234 .align 16 271 235 xor128_decrypt_n_pad: 272 273 sub rdx,r8 274 sub rcx,r8 275 mov r10,r9 276 shr r9,4 277 jz NEAR $L$tail_dec 278 nop 279 $L$oop_dec_xmm: 280 movdqu xmm0,XMMWORD[r8*1+rdx] 281 movdqa xmm1,XMMWORD[r8] 282 pxor xmm1,xmm0 283 movdqu XMMWORD[r8*1+rcx],xmm1 284 movdqa XMMWORD[r8],xmm0 285 lea r8,[16+r8] 286 dec r9 287 jnz NEAR $L$oop_dec_xmm 288 289 pxor xmm1,xmm1 290 and r10,15 291 jz NEAR $L$done_dec 292 293 $L$tail_dec: 294 mov r9,16 295 sub r9,r10 296 xor eax,eax 297 xor r11,r11 298 $L$oop_dec_byte: 299 mov r11b,BYTE[r8*1+rdx] 300 mov al,BYTE[r8] 301 xor al,r11b 302 mov BYTE[r8*1+rcx],al 303 mov BYTE[r8],r11b 304 lea r8,[1+r8] 305 dec r10 306 jnz NEAR $L$oop_dec_byte 307 308 xor eax,eax 309 $L$oop_dec_pad: 310 mov BYTE[r8],al 311 lea r8,[1+r8] 312 dec r9 313 jnz NEAR $L$oop_dec_pad 314 315 $L$done_dec: 316 mov rax,r8 317 DB 0F3h,0C3h ;repret 318 319 320 EXTERN __imp_RtlVirtualUnwind 321 322 ALIGN 16 323 se_handler: 324 push rsi 325 push rdi 326 push rbx 327 push rbp 328 push r12 329 push r13 330 push r14 331 push r15 332 pushfq 333 sub rsp,64 334 335 mov rax,QWORD[120+r8] 336 mov rbx,QWORD[248+r8] 337 338 mov rsi,QWORD[8+r9] 339 mov r11,QWORD[56+r9] 340 341 mov r10d,DWORD[r11] 342 lea r10,[r10*1+rsi] 343 cmp rbx,r10 344 jb NEAR $L$common_seh_tail 345 346 mov rax,QWORD[152+r8] 347 348 mov r10d,DWORD[4+r11] 349 lea r10,[r10*1+rsi] 350 cmp rbx,r10 351 jae NEAR $L$common_seh_tail 352 353 lea rax,[48+rax] 354 355 mov rbx,QWORD[((-8))+rax] 356 mov rbp,QWORD[((-16))+rax] 357 mov r12,QWORD[((-24))+rax] 358 mov r13,QWORD[((-32))+rax] 359 mov r14,QWORD[((-40))+rax] 360 mov r15,QWORD[((-48))+rax] 361 mov QWORD[144+r8],rbx 362 mov QWORD[160+r8],rbp 363 mov QWORD[216+r8],r12 364 mov QWORD[224+r8],r13 365 mov QWORD[232+r8],r14 366 mov QWORD[240+r8],r15 367 368 jmp NEAR $L$common_seh_tail 369 370 371 372 ALIGN 16 373 avx_handler: 374 push rsi 375 push rdi 376 push rbx 377 push rbp 378 push r12 379 push r13 380 push r14 381 push r15 382 pushfq 383 sub rsp,64 384 385 mov rax,QWORD[120+r8] 386 mov rbx,QWORD[248+r8] 387 388 mov rsi,QWORD[8+r9] 389 mov r11,QWORD[56+r9] 390 391 mov r10d,DWORD[r11] 392 lea r10,[r10*1+rsi] 393 cmp rbx,r10 394 jb NEAR $L$common_seh_tail 395 396 mov rax,QWORD[152+r8] 397 398 mov r10d,DWORD[4+r11] 399 lea r10,[r10*1+rsi] 400 cmp rbx,r10 401 jae NEAR $L$common_seh_tail 402 403 mov rax,QWORD[208+r8] 404 405 lea rsi,[80+rax] 406 lea rax,[248+rax] 407 lea rdi,[512+r8] 408 mov ecx,20 409 DD 0xa548f3fc 410 411 $L$common_seh_tail: 412 mov rdi,QWORD[8+rax] 413 mov rsi,QWORD[16+rax] 414 mov QWORD[152+r8],rax 415 mov QWORD[168+r8],rsi 416 mov QWORD[176+r8],rdi 417 418 mov rdi,QWORD[40+r9] 419 mov rsi,r8 420 mov ecx,154 421 DD 0xa548f3fc 422 423 mov rsi,r9 424 xor rcx,rcx 425 mov rdx,QWORD[8+rsi] 426 mov r8,QWORD[rsi] 427 mov r9,QWORD[16+rsi] 428 mov r10,QWORD[40+rsi] 429 lea r11,[56+rsi] 430 lea r12,[24+rsi] 431 mov QWORD[32+rsp],r10 432 mov QWORD[40+rsp],r11 433 mov QWORD[48+rsp],r12 434 mov QWORD[56+rsp],rcx 435 call QWORD[__imp_RtlVirtualUnwind] 436 437 mov eax,1 438 add rsp,64 439 popfq 440 pop r15 441 pop r14 442 pop r13 443 pop r12 444 pop rbp 445 pop rbx 446 pop rdi 447 pop rsi 448 DB 0F3h,0C3h ;repret 449 450 451 section .pdata rdata align=4 452 ALIGN 4 453 DD $L$SEH_begin_poly1305_init wrt ..imagebase 454 DD $L$SEH_end_poly1305_init wrt ..imagebase 455 DD $L$SEH_info_poly1305_init wrt ..imagebase 456 457 DD $L$SEH_begin_poly1305_blocks wrt ..imagebase 458 DD $L$SEH_end_poly1305_blocks wrt ..imagebase 459 DD $L$SEH_info_poly1305_blocks wrt ..imagebase 460 461 DD $L$SEH_begin_poly1305_emit wrt ..imagebase 462 DD $L$SEH_end_poly1305_emit wrt ..imagebase 463 DD $L$SEH_info_poly1305_emit wrt ..imagebase 464 section .xdata rdata align=8 465 ALIGN 8 466 $L$SEH_info_poly1305_init: 467 DB 9,0,0,0 468 DD se_handler wrt ..imagebase 469 DD $L$SEH_begin_poly1305_init wrt ..imagebase,$L$SEH_begin_poly1305_init wrt ..imagebase 470 471 $L$SEH_info_poly1305_blocks: 472 DB 9,0,0,0 473 DD se_handler wrt ..imagebase 474 DD $L$blocks_body wrt ..imagebase,$L$blocks_epilogue wrt ..imagebase 475 476 $L$SEH_info_poly1305_emit: 477 DB 9,0,0,0 478 DD se_handler wrt ..imagebase 479 DD $L$SEH_begin_poly1305_emit wrt ..imagebase,$L$SEH_begin_poly1305_emit wrt ..imagebase 236 .cfi_startproc 237 subq %rdx,%rsi 238 subq %rdx,%rdi 239 movq %rcx,%r10 240 shrq $4,%rcx 241 jz .Ltail_dec 242 nop 243 .Loop_dec_xmm: 244 movdqu (%rsi,%rdx,1),%xmm0 245 movdqa (%rdx),%xmm1 246 pxor %xmm0,%xmm1 247 movdqu %xmm1,(%rdi,%rdx,1) 248 movdqa %xmm0,(%rdx) 249 leaq 16(%rdx),%rdx 250 decq %rcx 251 jnz .Loop_dec_xmm 252 253 pxor %xmm1,%xmm1 254 andq $15,%r10 255 jz .Ldone_dec 256 257 .Ltail_dec: 258 movq $16,%rcx 259 subq %r10,%rcx 260 xorl %eax,%eax 261 xorq %r11,%r11 262 .Loop_dec_byte: 263 movb (%rsi,%rdx,1),%r11b 264 movb (%rdx),%al 265 xorb %r11b,%al 266 movb %al,(%rdi,%rdx,1) 267 movb %r11b,(%rdx) 268 leaq 1(%rdx),%rdx 269 decq %r10 270 jnz .Loop_dec_byte 271 272 xorl %eax,%eax 273 .Loop_dec_pad: 274 movb %al,(%rdx) 275 leaq 1(%rdx),%rdx 276 decq %rcx 277 jnz .Loop_dec_pad 278 279 .Ldone_dec: 280 movq %rdx,%rax 281 .byte 0xf3,0xc3 282 .cfi_endproc 283 .size xor128_decrypt_n_pad,.-xor128_decrypt_n_pad 284 .section ".note.gnu.property", "a" 285 .p2align 3 286 .long 1f - 0f 287 .long 4f - 1f 288 .long 5 289 0: 290 # "GNU" encoded with .byte, since .asciz isn't supported 291 # on Solaris. 292 .byte 0x47 293 .byte 0x4e 294 .byte 0x55 295 .byte 0 296 1: 297 .p2align 3 298 .long 0xc0000002 299 .long 3f - 2f 300 2: 301 .long 3 302 3: 303 .p2align 3 304 4: -
trunk/src/libs/openssl-3.1.0/crypto/genasm-macosx/rsaz-2k-avx512.S
r100976 r100978 1 default rel 2 %define XMMWORD 3 %define YMMWORD 4 %define ZMMWORD 5 section .text code align=64 1 .text 6 2 3 .globl ossl_rsaz_avx512ifma_eligible 4 .type ossl_rsaz_avx512ifma_eligible,@function 5 ossl_rsaz_avx512ifma_eligible: 6 xorl %eax,%eax 7 .byte 0xf3,0xc3 8 .size ossl_rsaz_avx512ifma_eligible, .-ossl_rsaz_avx512ifma_eligible 7 9 8 global ossl_rsaz_avx512ifma_eligible 9 10 ossl_rsaz_avx512ifma_eligible: 11 xor eax,eax 12 DB 0F3h,0C3h ;repret 13 14 15 global ossl_rsaz_amm52x20_x1_ifma256 16 global ossl_rsaz_amm52x20_x2_ifma256 17 global ossl_extract_multiplier_2x20_win5 18 10 .globl ossl_rsaz_amm52x20_x1_ifma256 11 .globl ossl_rsaz_amm52x20_x2_ifma256 12 .globl ossl_extract_multiplier_2x20_win5 13 .type ossl_rsaz_amm52x20_x1_ifma256,@function 19 14 ossl_rsaz_amm52x20_x1_ifma256: 20 15 ossl_rsaz_amm52x20_x2_ifma256: 21 16 ossl_extract_multiplier_2x20_win5: 22 DB 0x0f,0x0b 23 DB 0F3h,0C3h ;repret 24 17 .byte 0x0f,0x0b 18 .byte 0xf3,0xc3 19 .size ossl_rsaz_amm52x20_x1_ifma256, .-ossl_rsaz_amm52x20_x1_ifma256 20 .section ".note.gnu.property", "a" 21 .p2align 3 22 .long 1f - 0f 23 .long 4f - 1f 24 .long 5 25 0: 26 # "GNU" encoded with .byte, since .asciz isn't supported 27 # on Solaris. 28 .byte 0x47 29 .byte 0x4e 30 .byte 0x55 31 .byte 0 32 1: 33 .p2align 3 34 .long 0xc0000002 35 .long 3f - 2f 36 2: 37 .long 3 38 3: 39 .p2align 3 40 4: -
trunk/src/libs/openssl-3.1.0/crypto/genasm-macosx/rsaz-3k-avx512.S
r100976 r100978 1 default rel 2 %define XMMWORD 3 %define YMMWORD 4 %define ZMMWORD 5 section .text code align=64 1 .text 6 2 7 8 global ossl_rsaz_amm52x30_x1_ifma256 9 global ossl_rsaz_amm52x30_x2_ifma256 10 global ossl_extract_multiplier_2x30_win5 11 3 .globl ossl_rsaz_amm52x30_x1_ifma256 4 .globl ossl_rsaz_amm52x30_x2_ifma256 5 .globl ossl_extract_multiplier_2x30_win5 6 .type ossl_rsaz_amm52x30_x1_ifma256,@function 12 7 ossl_rsaz_amm52x30_x1_ifma256: 13 8 ossl_rsaz_amm52x30_x2_ifma256: 14 9 ossl_extract_multiplier_2x30_win5: 15 DB 0x0f,0x0b 16 DB 0F3h,0C3h ;repret 17 10 .byte 0x0f,0x0b 11 .byte 0xf3,0xc3 12 .size ossl_rsaz_amm52x30_x1_ifma256, .-ossl_rsaz_amm52x30_x1_ifma256 13 .section ".note.gnu.property", "a" 14 .p2align 3 15 .long 1f - 0f 16 .long 4f - 1f 17 .long 5 18 0: 19 # "GNU" encoded with .byte, since .asciz isn't supported 20 # on Solaris. 21 .byte 0x47 22 .byte 0x4e 23 .byte 0x55 24 .byte 0 25 1: 26 .p2align 3 27 .long 0xc0000002 28 .long 3f - 2f 29 2: 30 .long 3 31 3: 32 .p2align 3 33 4: -
trunk/src/libs/openssl-3.1.0/crypto/genasm-macosx/rsaz-4k-avx512.S
r100976 r100978 1 default rel 2 %define XMMWORD 3 %define YMMWORD 4 %define ZMMWORD 5 section .text code align=64 1 .text 6 2 7 8 global ossl_rsaz_amm52x40_x1_ifma256 9 global ossl_rsaz_amm52x40_x2_ifma256 10 global ossl_extract_multiplier_2x40_win5 11 3 .globl ossl_rsaz_amm52x40_x1_ifma256 4 .globl ossl_rsaz_amm52x40_x2_ifma256 5 .globl ossl_extract_multiplier_2x40_win5 6 .type ossl_rsaz_amm52x40_x1_ifma256,@function 12 7 ossl_rsaz_amm52x40_x1_ifma256: 13 8 ossl_rsaz_amm52x40_x2_ifma256: 14 9 ossl_extract_multiplier_2x40_win5: 15 DB 0x0f,0x0b 16 DB 0F3h,0C3h ;repret 17 10 .byte 0x0f,0x0b 11 .byte 0xf3,0xc3 12 .size ossl_rsaz_amm52x40_x1_ifma256, .-ossl_rsaz_amm52x40_x1_ifma256 13 .section ".note.gnu.property", "a" 14 .p2align 3 15 .long 1f - 0f 16 .long 4f - 1f 17 .long 5 18 0: 19 # "GNU" encoded with .byte, since .asciz isn't supported 20 # on Solaris. 21 .byte 0x47 22 .byte 0x4e 23 .byte 0x55 24 .byte 0 25 1: 26 .p2align 3 27 .long 0xc0000002 28 .long 3f - 2f 29 2: 30 .long 3 31 3: 32 .p2align 3 33 4: -
trunk/src/libs/openssl-3.1.0/crypto/genasm-macosx/rsaz-avx512.S
r100977 r100978 1 default rel 2 %define XMMWORD 3 %define YMMWORD 4 %define ZMMWORD 5 section .text code align=64 1 .text 6 2 3 .globl ossl_rsaz_avx512ifma_eligible 4 .type ossl_rsaz_avx512ifma_eligible,@function 5 ossl_rsaz_avx512ifma_eligible: 6 xorl %eax,%eax 7 .byte 0xf3,0xc3 8 .size ossl_rsaz_avx512ifma_eligible, .-ossl_rsaz_avx512ifma_eligible 7 9 8 global ossl_rsaz_avx512ifma_eligible 9 10 ossl_rsaz_avx512ifma_eligible: 11 xor eax,eax 12 DB 0F3h,0C3h ;repret 13 14 15 global ossl_rsaz_amm52x20_x1_256 16 global ossl_rsaz_amm52x20_x2_256 17 global ossl_extract_multiplier_2x20_win5 18 10 .globl ossl_rsaz_amm52x20_x1_256 11 .globl ossl_rsaz_amm52x20_x2_256 12 .globl ossl_extract_multiplier_2x20_win5 13 .type ossl_rsaz_amm52x20_x1_256,@function 19 14 ossl_rsaz_amm52x20_x1_256: 20 15 ossl_rsaz_amm52x20_x2_256: 21 16 ossl_extract_multiplier_2x20_win5: 22 DB 0x0f,0x0b 23 DB 0F3h,0C3h ;repret 24 17 .byte 0x0f,0x0b 18 .byte 0xf3,0xc3 19 .size ossl_rsaz_amm52x20_x1_256, .-ossl_rsaz_amm52x20_x1_256 20 .section ".note.gnu.property", "a" 21 .p2align 3 22 .long 1f - 0f 23 .long 4f - 1f 24 .long 5 25 0: 26 # "GNU" encoded with .byte, since .asciz isn't supported 27 # on Solaris. 28 .byte 0x47 29 .byte 0x4e 30 .byte 0x55 31 .byte 0 32 1: 33 .p2align 3 34 .long 0xc0000002 35 .long 3f - 2f 36 2: 37 .long 3 38 3: 39 .p2align 3 40 4:
Note:
See TracChangeset
for help on using the changeset viewer.

