| // This file is generated from a similarly-named Perl script in the BoringSSL | |
| // source tree. Do not edit by hand. | |
| #include <openssl/asm_base.h> | |
| #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86_64) && defined(__ELF__) | |
| .text | |
| .type abi_test_trampoline, @function | |
| .globl abi_test_trampoline | |
| .hidden abi_test_trampoline | |
| .align 16 | |
| abi_test_trampoline: | |
| .cfi_startproc | |
| _CET_ENDBR | |
| subq $120,%rsp | |
| .cfi_adjust_cfa_offset 120 | |
| movq %r8,48(%rsp) | |
| movq %rbx,64(%rsp) | |
| .cfi_offset rbx, -64 | |
| movq %rbp,72(%rsp) | |
| .cfi_offset rbp, -56 | |
| movq %r12,80(%rsp) | |
| .cfi_offset r12, -48 | |
| movq %r13,88(%rsp) | |
| .cfi_offset r13, -40 | |
| movq %r14,96(%rsp) | |
| .cfi_offset r14, -32 | |
| movq %r15,104(%rsp) | |
| .cfi_offset r15, -24 | |
| movq 0(%rsi),%rbx | |
| movq 8(%rsi),%rbp | |
| movq 16(%rsi),%r12 | |
| movq 24(%rsi),%r13 | |
| movq 32(%rsi),%r14 | |
| movq 40(%rsi),%r15 | |
| movq %rdi,32(%rsp) | |
| movq %rsi,40(%rsp) | |
| movq %rdx,%r10 | |
| movq %rcx,%r11 | |
| decq %r11 | |
| js .Largs_done | |
| movq (%r10),%rdi | |
| addq $8,%r10 | |
| decq %r11 | |
| js .Largs_done | |
| movq (%r10),%rsi | |
| addq $8,%r10 | |
| decq %r11 | |
| js .Largs_done | |
| movq (%r10),%rdx | |
| addq $8,%r10 | |
| decq %r11 | |
| js .Largs_done | |
| movq (%r10),%rcx | |
| addq $8,%r10 | |
| decq %r11 | |
| js .Largs_done | |
| movq (%r10),%r8 | |
| addq $8,%r10 | |
| decq %r11 | |
| js .Largs_done | |
| movq (%r10),%r9 | |
| addq $8,%r10 | |
| leaq 0(%rsp),%rax | |
| .Largs_loop: | |
| decq %r11 | |
| js .Largs_done | |
| movq %r11,56(%rsp) | |
| movq (%r10),%r11 | |
| movq %r11,(%rax) | |
| movq 56(%rsp),%r11 | |
| addq $8,%r10 | |
| addq $8,%rax | |
| jmp .Largs_loop | |
| .Largs_done: | |
| movq 32(%rsp),%rax | |
| movq 48(%rsp),%r10 | |
| testq %r10,%r10 | |
| jz .Lno_unwind | |
| pushfq | |
| orq $0x100,0(%rsp) | |
| popfq | |
| nop | |
| .globl abi_test_unwind_start | |
| .hidden abi_test_unwind_start | |
| abi_test_unwind_start: | |
| call *%rax | |
| .globl abi_test_unwind_return | |
| .hidden abi_test_unwind_return | |
| abi_test_unwind_return: | |
| pushfq | |
| andq $-0x101,0(%rsp) | |
| popfq | |
| .globl abi_test_unwind_stop | |
| .hidden abi_test_unwind_stop | |
| abi_test_unwind_stop: | |
| jmp .Lcall_done | |
| .Lno_unwind: | |
| call *%rax | |
| .Lcall_done: | |
| movq 40(%rsp),%rsi | |
| movq %rbx,0(%rsi) | |
| movq %rbp,8(%rsi) | |
| movq %r12,16(%rsi) | |
| movq %r13,24(%rsi) | |
| movq %r14,32(%rsi) | |
| movq %r15,40(%rsi) | |
| movq 64(%rsp),%rbx | |
| .cfi_restore rbx | |
| movq 72(%rsp),%rbp | |
| .cfi_restore rbp | |
| movq 80(%rsp),%r12 | |
| .cfi_restore r12 | |
| movq 88(%rsp),%r13 | |
| .cfi_restore r13 | |
| movq 96(%rsp),%r14 | |
| .cfi_restore r14 | |
| movq 104(%rsp),%r15 | |
| .cfi_restore r15 | |
| addq $120,%rsp | |
| .cfi_adjust_cfa_offset -120 | |
| ret | |
| .cfi_endproc | |
| .size abi_test_trampoline,.-abi_test_trampoline | |
| .type abi_test_clobber_rax, @function | |
| .globl abi_test_clobber_rax | |
| .hidden abi_test_clobber_rax | |
| .align 16 | |
| abi_test_clobber_rax: | |
| _CET_ENDBR | |
| xorq %rax,%rax | |
| ret | |
| .size abi_test_clobber_rax,.-abi_test_clobber_rax | |
| .type abi_test_clobber_rbx, @function | |
| .globl abi_test_clobber_rbx | |
| .hidden abi_test_clobber_rbx | |
| .align 16 | |
| abi_test_clobber_rbx: | |
| _CET_ENDBR | |
| xorq %rbx,%rbx | |
| ret | |
| .size abi_test_clobber_rbx,.-abi_test_clobber_rbx | |
| .type abi_test_clobber_rcx, @function | |
| .globl abi_test_clobber_rcx | |
| .hidden abi_test_clobber_rcx | |
| .align 16 | |
| abi_test_clobber_rcx: | |
| _CET_ENDBR | |
| xorq %rcx,%rcx | |
| ret | |
| .size abi_test_clobber_rcx,.-abi_test_clobber_rcx | |
| .type abi_test_clobber_rdx, @function | |
| .globl abi_test_clobber_rdx | |
| .hidden abi_test_clobber_rdx | |
| .align 16 | |
| abi_test_clobber_rdx: | |
| _CET_ENDBR | |
| xorq %rdx,%rdx | |
| ret | |
| .size abi_test_clobber_rdx,.-abi_test_clobber_rdx | |
| .type abi_test_clobber_rdi, @function | |
| .globl abi_test_clobber_rdi | |
| .hidden abi_test_clobber_rdi | |
| .align 16 | |
| abi_test_clobber_rdi: | |
| _CET_ENDBR | |
| xorq %rdi,%rdi | |
| ret | |
| .size abi_test_clobber_rdi,.-abi_test_clobber_rdi | |
| .type abi_test_clobber_rsi, @function | |
| .globl abi_test_clobber_rsi | |
| .hidden abi_test_clobber_rsi | |
| .align 16 | |
| abi_test_clobber_rsi: | |
| _CET_ENDBR | |
| xorq %rsi,%rsi | |
| ret | |
| .size abi_test_clobber_rsi,.-abi_test_clobber_rsi | |
| .type abi_test_clobber_rbp, @function | |
| .globl abi_test_clobber_rbp | |
| .hidden abi_test_clobber_rbp | |
| .align 16 | |
| abi_test_clobber_rbp: | |
| _CET_ENDBR | |
| xorq %rbp,%rbp | |
| ret | |
| .size abi_test_clobber_rbp,.-abi_test_clobber_rbp | |
| .type abi_test_clobber_r8, @function | |
| .globl abi_test_clobber_r8 | |
| .hidden abi_test_clobber_r8 | |
| .align 16 | |
| abi_test_clobber_r8: | |
| _CET_ENDBR | |
| xorq %r8,%r8 | |
| ret | |
| .size abi_test_clobber_r8,.-abi_test_clobber_r8 | |
| .type abi_test_clobber_r9, @function | |
| .globl abi_test_clobber_r9 | |
| .hidden abi_test_clobber_r9 | |
| .align 16 | |
| abi_test_clobber_r9: | |
| _CET_ENDBR | |
| xorq %r9,%r9 | |
| ret | |
| .size abi_test_clobber_r9,.-abi_test_clobber_r9 | |
| .type abi_test_clobber_r10, @function | |
| .globl abi_test_clobber_r10 | |
| .hidden abi_test_clobber_r10 | |
| .align 16 | |
| abi_test_clobber_r10: | |
| _CET_ENDBR | |
| xorq %r10,%r10 | |
| ret | |
| .size abi_test_clobber_r10,.-abi_test_clobber_r10 | |
| .type abi_test_clobber_r11, @function | |
| .globl abi_test_clobber_r11 | |
| .hidden abi_test_clobber_r11 | |
| .align 16 | |
| abi_test_clobber_r11: | |
| _CET_ENDBR | |
| xorq %r11,%r11 | |
| ret | |
| .size abi_test_clobber_r11,.-abi_test_clobber_r11 | |
| .type abi_test_clobber_r12, @function | |
| .globl abi_test_clobber_r12 | |
| .hidden abi_test_clobber_r12 | |
| .align 16 | |
| abi_test_clobber_r12: | |
| _CET_ENDBR | |
| xorq %r12,%r12 | |
| ret | |
| .size abi_test_clobber_r12,.-abi_test_clobber_r12 | |
| .type abi_test_clobber_r13, @function | |
| .globl abi_test_clobber_r13 | |
| .hidden abi_test_clobber_r13 | |
| .align 16 | |
| abi_test_clobber_r13: | |
| _CET_ENDBR | |
| xorq %r13,%r13 | |
| ret | |
| .size abi_test_clobber_r13,.-abi_test_clobber_r13 | |
| .type abi_test_clobber_r14, @function | |
| .globl abi_test_clobber_r14 | |
| .hidden abi_test_clobber_r14 | |
| .align 16 | |
| abi_test_clobber_r14: | |
| _CET_ENDBR | |
| xorq %r14,%r14 | |
| ret | |
| .size abi_test_clobber_r14,.-abi_test_clobber_r14 | |
| .type abi_test_clobber_r15, @function | |
| .globl abi_test_clobber_r15 | |
| .hidden abi_test_clobber_r15 | |
| .align 16 | |
| abi_test_clobber_r15: | |
| _CET_ENDBR | |
| xorq %r15,%r15 | |
| ret | |
| .size abi_test_clobber_r15,.-abi_test_clobber_r15 | |
| .type abi_test_clobber_xmm0, @function | |
| .globl abi_test_clobber_xmm0 | |
| .hidden abi_test_clobber_xmm0 | |
| .align 16 | |
| abi_test_clobber_xmm0: | |
| _CET_ENDBR | |
| pxor %xmm0,%xmm0 | |
| ret | |
| .size abi_test_clobber_xmm0,.-abi_test_clobber_xmm0 | |
| .type abi_test_clobber_xmm1, @function | |
| .globl abi_test_clobber_xmm1 | |
| .hidden abi_test_clobber_xmm1 | |
| .align 16 | |
| abi_test_clobber_xmm1: | |
| _CET_ENDBR | |
| pxor %xmm1,%xmm1 | |
| ret | |
| .size abi_test_clobber_xmm1,.-abi_test_clobber_xmm1 | |
| .type abi_test_clobber_xmm2, @function | |
| .globl abi_test_clobber_xmm2 | |
| .hidden abi_test_clobber_xmm2 | |
| .align 16 | |
| abi_test_clobber_xmm2: | |
| _CET_ENDBR | |
| pxor %xmm2,%xmm2 | |
| ret | |
| .size abi_test_clobber_xmm2,.-abi_test_clobber_xmm2 | |
| .type abi_test_clobber_xmm3, @function | |
| .globl abi_test_clobber_xmm3 | |
| .hidden abi_test_clobber_xmm3 | |
| .align 16 | |
| abi_test_clobber_xmm3: | |
| _CET_ENDBR | |
| pxor %xmm3,%xmm3 | |
| ret | |
| .size abi_test_clobber_xmm3,.-abi_test_clobber_xmm3 | |
| .type abi_test_clobber_xmm4, @function | |
| .globl abi_test_clobber_xmm4 | |
| .hidden abi_test_clobber_xmm4 | |
| .align 16 | |
| abi_test_clobber_xmm4: | |
| _CET_ENDBR | |
| pxor %xmm4,%xmm4 | |
| ret | |
| .size abi_test_clobber_xmm4,.-abi_test_clobber_xmm4 | |
| .type abi_test_clobber_xmm5, @function | |
| .globl abi_test_clobber_xmm5 | |
| .hidden abi_test_clobber_xmm5 | |
| .align 16 | |
| abi_test_clobber_xmm5: | |
| _CET_ENDBR | |
| pxor %xmm5,%xmm5 | |
| ret | |
| .size abi_test_clobber_xmm5,.-abi_test_clobber_xmm5 | |
| .type abi_test_clobber_xmm6, @function | |
| .globl abi_test_clobber_xmm6 | |
| .hidden abi_test_clobber_xmm6 | |
| .align 16 | |
| abi_test_clobber_xmm6: | |
| _CET_ENDBR | |
| pxor %xmm6,%xmm6 | |
| ret | |
| .size abi_test_clobber_xmm6,.-abi_test_clobber_xmm6 | |
| .type abi_test_clobber_xmm7, @function | |
| .globl abi_test_clobber_xmm7 | |
| .hidden abi_test_clobber_xmm7 | |
| .align 16 | |
| abi_test_clobber_xmm7: | |
| _CET_ENDBR | |
| pxor %xmm7,%xmm7 | |
| ret | |
| .size abi_test_clobber_xmm7,.-abi_test_clobber_xmm7 | |
| .type abi_test_clobber_xmm8, @function | |
| .globl abi_test_clobber_xmm8 | |
| .hidden abi_test_clobber_xmm8 | |
| .align 16 | |
| abi_test_clobber_xmm8: | |
| _CET_ENDBR | |
| pxor %xmm8,%xmm8 | |
| ret | |
| .size abi_test_clobber_xmm8,.-abi_test_clobber_xmm8 | |
| .type abi_test_clobber_xmm9, @function | |
| .globl abi_test_clobber_xmm9 | |
| .hidden abi_test_clobber_xmm9 | |
| .align 16 | |
| abi_test_clobber_xmm9: | |
| _CET_ENDBR | |
| pxor %xmm9,%xmm9 | |
| ret | |
| .size abi_test_clobber_xmm9,.-abi_test_clobber_xmm9 | |
| .type abi_test_clobber_xmm10, @function | |
| .globl abi_test_clobber_xmm10 | |
| .hidden abi_test_clobber_xmm10 | |
| .align 16 | |
| abi_test_clobber_xmm10: | |
| _CET_ENDBR | |
| pxor %xmm10,%xmm10 | |
| ret | |
| .size abi_test_clobber_xmm10,.-abi_test_clobber_xmm10 | |
| .type abi_test_clobber_xmm11, @function | |
| .globl abi_test_clobber_xmm11 | |
| .hidden abi_test_clobber_xmm11 | |
| .align 16 | |
| abi_test_clobber_xmm11: | |
| _CET_ENDBR | |
| pxor %xmm11,%xmm11 | |
| ret | |
| .size abi_test_clobber_xmm11,.-abi_test_clobber_xmm11 | |
| .type abi_test_clobber_xmm12, @function | |
| .globl abi_test_clobber_xmm12 | |
| .hidden abi_test_clobber_xmm12 | |
| .align 16 | |
| abi_test_clobber_xmm12: | |
| _CET_ENDBR | |
| pxor %xmm12,%xmm12 | |
| ret | |
| .size abi_test_clobber_xmm12,.-abi_test_clobber_xmm12 | |
| .type abi_test_clobber_xmm13, @function | |
| .globl abi_test_clobber_xmm13 | |
| .hidden abi_test_clobber_xmm13 | |
| .align 16 | |
| abi_test_clobber_xmm13: | |
| _CET_ENDBR | |
| pxor %xmm13,%xmm13 | |
| ret | |
| .size abi_test_clobber_xmm13,.-abi_test_clobber_xmm13 | |
| .type abi_test_clobber_xmm14, @function | |
| .globl abi_test_clobber_xmm14 | |
| .hidden abi_test_clobber_xmm14 | |
| .align 16 | |
| abi_test_clobber_xmm14: | |
| _CET_ENDBR | |
| pxor %xmm14,%xmm14 | |
| ret | |
| .size abi_test_clobber_xmm14,.-abi_test_clobber_xmm14 | |
| .type abi_test_clobber_xmm15, @function | |
| .globl abi_test_clobber_xmm15 | |
| .hidden abi_test_clobber_xmm15 | |
| .align 16 | |
| abi_test_clobber_xmm15: | |
| _CET_ENDBR | |
| pxor %xmm15,%xmm15 | |
| ret | |
| .size abi_test_clobber_xmm15,.-abi_test_clobber_xmm15 | |
| .type abi_test_bad_unwind_wrong_register, @function | |
| .globl abi_test_bad_unwind_wrong_register | |
| .hidden abi_test_bad_unwind_wrong_register | |
| .align 16 | |
| abi_test_bad_unwind_wrong_register: | |
| .cfi_startproc | |
| _CET_ENDBR | |
| pushq %r12 | |
| .cfi_adjust_cfa_offset 8 | |
| .cfi_offset %r13,-16 | |
| nop | |
| popq %r12 | |
| .cfi_adjust_cfa_offset -8 | |
| .cfi_restore %r12 | |
| ret | |
| .cfi_endproc | |
| .size abi_test_bad_unwind_wrong_register,.-abi_test_bad_unwind_wrong_register | |
| .type abi_test_bad_unwind_temporary, @function | |
| .globl abi_test_bad_unwind_temporary | |
| .hidden abi_test_bad_unwind_temporary | |
| .align 16 | |
| abi_test_bad_unwind_temporary: | |
| .cfi_startproc | |
| _CET_ENDBR | |
| pushq %r12 | |
| .cfi_adjust_cfa_offset 8 | |
| .cfi_offset %r12,-16 | |
| movq %r12,%rax | |
| incq %rax | |
| movq %rax,(%rsp) | |
| movq %r12,(%rsp) | |
| popq %r12 | |
| .cfi_adjust_cfa_offset -8 | |
| .cfi_restore %r12 | |
| ret | |
| .cfi_endproc | |
| .size abi_test_bad_unwind_temporary,.-abi_test_bad_unwind_temporary | |
| .type abi_test_set_direction_flag, @function | |
| .globl abi_test_get_and_clear_direction_flag | |
| .hidden abi_test_get_and_clear_direction_flag | |
| abi_test_get_and_clear_direction_flag: | |
| _CET_ENDBR | |
| pushfq | |
| popq %rax | |
| andq $0x400,%rax | |
| shrq $10,%rax | |
| cld | |
| ret | |
| .size abi_test_get_and_clear_direction_flag,.-abi_test_get_and_clear_direction_flag | |
| .type abi_test_set_direction_flag, @function | |
| .globl abi_test_set_direction_flag | |
| .hidden abi_test_set_direction_flag | |
| abi_test_set_direction_flag: | |
| _CET_ENDBR | |
| std | |
| ret | |
| .size abi_test_set_direction_flag,.-abi_test_set_direction_flag | |
| #endif |