| // This file is generated from a similarly-named Perl script in the BoringSSL |
| // source tree. Do not edit by hand. |
| |
| #if defined(__has_feature) |
| #if __has_feature(memory_sanitizer) && !defined(OPENSSL_NO_ASM) |
| #define OPENSSL_NO_ASM |
| #endif |
| #endif |
| |
| #if defined(__x86_64__) && !defined(OPENSSL_NO_ASM) |
| #if defined(BORINGSSL_PREFIX) |
| #include <boringssl_prefix_symbols_asm.h> |
| #endif |
| .text |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| .globl _abi_test_trampoline |
| .private_extern _abi_test_trampoline |
| .p2align 4 |
| _abi_test_trampoline: |
| L$abi_test_trampoline_seh_begin: |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| subq $120,%rsp |
| |
| L$abi_test_trampoline_seh_prolog_alloc: |
| movq %r8,48(%rsp) |
| movq %rbx,64(%rsp) |
| |
| L$abi_test_trampoline_seh_prolog_rbx: |
| movq %rbp,72(%rsp) |
| |
| L$abi_test_trampoline_seh_prolog_rbp: |
| movq %r12,80(%rsp) |
| |
| L$abi_test_trampoline_seh_prolog_r12: |
| movq %r13,88(%rsp) |
| |
| L$abi_test_trampoline_seh_prolog_r13: |
| movq %r14,96(%rsp) |
| |
| L$abi_test_trampoline_seh_prolog_r14: |
| movq %r15,104(%rsp) |
| |
| L$abi_test_trampoline_seh_prolog_r15: |
| L$abi_test_trampoline_seh_prolog_end: |
| 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 L$args_done |
| movq (%r10),%rdi |
| addq $8,%r10 |
| decq %r11 |
| js L$args_done |
| movq (%r10),%rsi |
| addq $8,%r10 |
| decq %r11 |
| js L$args_done |
| movq (%r10),%rdx |
| addq $8,%r10 |
| decq %r11 |
| js L$args_done |
| movq (%r10),%rcx |
| addq $8,%r10 |
| decq %r11 |
| js L$args_done |
| movq (%r10),%r8 |
| addq $8,%r10 |
| decq %r11 |
| js L$args_done |
| movq (%r10),%r9 |
| addq $8,%r10 |
| leaq 0(%rsp),%rax |
| L$args_loop: |
| decq %r11 |
| js L$args_done |
| |
| |
| |
| |
| |
| |
| movq %r11,56(%rsp) |
| movq (%r10),%r11 |
| movq %r11,(%rax) |
| movq 56(%rsp),%r11 |
| |
| addq $8,%r10 |
| addq $8,%rax |
| jmp L$args_loop |
| |
| L$args_done: |
| movq 32(%rsp),%rax |
| movq 48(%rsp),%r10 |
| testq %r10,%r10 |
| jz L$no_unwind |
| |
| |
| pushfq |
| orq $0x100,0(%rsp) |
| popfq |
| |
| |
| |
| nop |
| .globl _abi_test_unwind_start |
| .private_extern _abi_test_unwind_start |
| _abi_test_unwind_start: |
| |
| call *%rax |
| .globl _abi_test_unwind_return |
| .private_extern _abi_test_unwind_return |
| _abi_test_unwind_return: |
| |
| |
| |
| |
| pushfq |
| andq $-0x101,0(%rsp) |
| popfq |
| .globl _abi_test_unwind_stop |
| .private_extern _abi_test_unwind_stop |
| _abi_test_unwind_stop: |
| |
| jmp L$call_done |
| |
| L$no_unwind: |
| call *%rax |
| |
| L$call_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 |
| |
| movq 72(%rsp),%rbp |
| |
| movq 80(%rsp),%r12 |
| |
| movq 88(%rsp),%r13 |
| |
| movq 96(%rsp),%r14 |
| |
| movq 104(%rsp),%r15 |
| |
| addq $120,%rsp |
| |
| |
| |
| .byte 0xf3,0xc3 |
| |
| L$abi_test_trampoline_seh_end: |
| |
| |
| .globl _abi_test_clobber_rax |
| .private_extern _abi_test_clobber_rax |
| .p2align 4 |
| _abi_test_clobber_rax: |
| xorq %rax,%rax |
| .byte 0xf3,0xc3 |
| |
| |
| .globl _abi_test_clobber_rbx |
| .private_extern _abi_test_clobber_rbx |
| .p2align 4 |
| _abi_test_clobber_rbx: |
| xorq %rbx,%rbx |
| .byte 0xf3,0xc3 |
| |
| |
| .globl _abi_test_clobber_rcx |
| .private_extern _abi_test_clobber_rcx |
| .p2align 4 |
| _abi_test_clobber_rcx: |
| xorq %rcx,%rcx |
| .byte 0xf3,0xc3 |
| |
| |
| .globl _abi_test_clobber_rdx |
| .private_extern _abi_test_clobber_rdx |
| .p2align 4 |
| _abi_test_clobber_rdx: |
| xorq %rdx,%rdx |
| .byte 0xf3,0xc3 |
| |
| |
| .globl _abi_test_clobber_rdi |
| .private_extern _abi_test_clobber_rdi |
| .p2align 4 |
| _abi_test_clobber_rdi: |
| xorq %rdi,%rdi |
| .byte 0xf3,0xc3 |
| |
| |
| .globl _abi_test_clobber_rsi |
| .private_extern _abi_test_clobber_rsi |
| .p2align 4 |
| _abi_test_clobber_rsi: |
| xorq %rsi,%rsi |
| .byte 0xf3,0xc3 |
| |
| |
| .globl _abi_test_clobber_rbp |
| .private_extern _abi_test_clobber_rbp |
| .p2align 4 |
| _abi_test_clobber_rbp: |
| xorq %rbp,%rbp |
| .byte 0xf3,0xc3 |
| |
| |
| .globl _abi_test_clobber_r8 |
| .private_extern _abi_test_clobber_r8 |
| .p2align 4 |
| _abi_test_clobber_r8: |
| xorq %r8,%r8 |
| .byte 0xf3,0xc3 |
| |
| |
| .globl _abi_test_clobber_r9 |
| .private_extern _abi_test_clobber_r9 |
| .p2align 4 |
| _abi_test_clobber_r9: |
| xorq %r9,%r9 |
| .byte 0xf3,0xc3 |
| |
| |
| .globl _abi_test_clobber_r10 |
| .private_extern _abi_test_clobber_r10 |
| .p2align 4 |
| _abi_test_clobber_r10: |
| xorq %r10,%r10 |
| .byte 0xf3,0xc3 |
| |
| |
| .globl _abi_test_clobber_r11 |
| .private_extern _abi_test_clobber_r11 |
| .p2align 4 |
| _abi_test_clobber_r11: |
| xorq %r11,%r11 |
| .byte 0xf3,0xc3 |
| |
| |
| .globl _abi_test_clobber_r12 |
| .private_extern _abi_test_clobber_r12 |
| .p2align 4 |
| _abi_test_clobber_r12: |
| xorq %r12,%r12 |
| .byte 0xf3,0xc3 |
| |
| |
| .globl _abi_test_clobber_r13 |
| .private_extern _abi_test_clobber_r13 |
| .p2align 4 |
| _abi_test_clobber_r13: |
| xorq %r13,%r13 |
| .byte 0xf3,0xc3 |
| |
| |
| .globl _abi_test_clobber_r14 |
| .private_extern _abi_test_clobber_r14 |
| .p2align 4 |
| _abi_test_clobber_r14: |
| xorq %r14,%r14 |
| .byte 0xf3,0xc3 |
| |
| |
| .globl _abi_test_clobber_r15 |
| .private_extern _abi_test_clobber_r15 |
| .p2align 4 |
| _abi_test_clobber_r15: |
| xorq %r15,%r15 |
| .byte 0xf3,0xc3 |
| |
| |
| .globl _abi_test_clobber_xmm0 |
| .private_extern _abi_test_clobber_xmm0 |
| .p2align 4 |
| _abi_test_clobber_xmm0: |
| pxor %xmm0,%xmm0 |
| .byte 0xf3,0xc3 |
| |
| |
| .globl _abi_test_clobber_xmm1 |
| .private_extern _abi_test_clobber_xmm1 |
| .p2align 4 |
| _abi_test_clobber_xmm1: |
| pxor %xmm1,%xmm1 |
| .byte 0xf3,0xc3 |
| |
| |
| .globl _abi_test_clobber_xmm2 |
| .private_extern _abi_test_clobber_xmm2 |
| .p2align 4 |
| _abi_test_clobber_xmm2: |
| pxor %xmm2,%xmm2 |
| .byte 0xf3,0xc3 |
| |
| |
| .globl _abi_test_clobber_xmm3 |
| .private_extern _abi_test_clobber_xmm3 |
| .p2align 4 |
| _abi_test_clobber_xmm3: |
| pxor %xmm3,%xmm3 |
| .byte 0xf3,0xc3 |
| |
| |
| .globl _abi_test_clobber_xmm4 |
| .private_extern _abi_test_clobber_xmm4 |
| .p2align 4 |
| _abi_test_clobber_xmm4: |
| pxor %xmm4,%xmm4 |
| .byte 0xf3,0xc3 |
| |
| |
| .globl _abi_test_clobber_xmm5 |
| .private_extern _abi_test_clobber_xmm5 |
| .p2align 4 |
| _abi_test_clobber_xmm5: |
| pxor %xmm5,%xmm5 |
| .byte 0xf3,0xc3 |
| |
| |
| .globl _abi_test_clobber_xmm6 |
| .private_extern _abi_test_clobber_xmm6 |
| .p2align 4 |
| _abi_test_clobber_xmm6: |
| pxor %xmm6,%xmm6 |
| .byte 0xf3,0xc3 |
| |
| |
| .globl _abi_test_clobber_xmm7 |
| .private_extern _abi_test_clobber_xmm7 |
| .p2align 4 |
| _abi_test_clobber_xmm7: |
| pxor %xmm7,%xmm7 |
| .byte 0xf3,0xc3 |
| |
| |
| .globl _abi_test_clobber_xmm8 |
| .private_extern _abi_test_clobber_xmm8 |
| .p2align 4 |
| _abi_test_clobber_xmm8: |
| pxor %xmm8,%xmm8 |
| .byte 0xf3,0xc3 |
| |
| |
| .globl _abi_test_clobber_xmm9 |
| .private_extern _abi_test_clobber_xmm9 |
| .p2align 4 |
| _abi_test_clobber_xmm9: |
| pxor %xmm9,%xmm9 |
| .byte 0xf3,0xc3 |
| |
| |
| .globl _abi_test_clobber_xmm10 |
| .private_extern _abi_test_clobber_xmm10 |
| .p2align 4 |
| _abi_test_clobber_xmm10: |
| pxor %xmm10,%xmm10 |
| .byte 0xf3,0xc3 |
| |
| |
| .globl _abi_test_clobber_xmm11 |
| .private_extern _abi_test_clobber_xmm11 |
| .p2align 4 |
| _abi_test_clobber_xmm11: |
| pxor %xmm11,%xmm11 |
| .byte 0xf3,0xc3 |
| |
| |
| .globl _abi_test_clobber_xmm12 |
| .private_extern _abi_test_clobber_xmm12 |
| .p2align 4 |
| _abi_test_clobber_xmm12: |
| pxor %xmm12,%xmm12 |
| .byte 0xf3,0xc3 |
| |
| |
| .globl _abi_test_clobber_xmm13 |
| .private_extern _abi_test_clobber_xmm13 |
| .p2align 4 |
| _abi_test_clobber_xmm13: |
| pxor %xmm13,%xmm13 |
| .byte 0xf3,0xc3 |
| |
| |
| .globl _abi_test_clobber_xmm14 |
| .private_extern _abi_test_clobber_xmm14 |
| .p2align 4 |
| _abi_test_clobber_xmm14: |
| pxor %xmm14,%xmm14 |
| .byte 0xf3,0xc3 |
| |
| |
| .globl _abi_test_clobber_xmm15 |
| .private_extern _abi_test_clobber_xmm15 |
| .p2align 4 |
| _abi_test_clobber_xmm15: |
| pxor %xmm15,%xmm15 |
| .byte 0xf3,0xc3 |
| |
| |
| |
| |
| |
| .globl _abi_test_bad_unwind_wrong_register |
| .private_extern _abi_test_bad_unwind_wrong_register |
| .p2align 4 |
| _abi_test_bad_unwind_wrong_register: |
| |
| L$abi_test_bad_unwind_wrong_register_seh_begin: |
| pushq %r12 |
| |
| L$abi_test_bad_unwind_wrong_register_seh_push_r13: |
| |
| |
| |
| nop |
| popq %r12 |
| |
| .byte 0xf3,0xc3 |
| L$abi_test_bad_unwind_wrong_register_seh_end: |
| |
| |
| |
| |
| |
| |
| |
| .globl _abi_test_bad_unwind_temporary |
| .private_extern _abi_test_bad_unwind_temporary |
| .p2align 4 |
| _abi_test_bad_unwind_temporary: |
| |
| L$abi_test_bad_unwind_temporary_seh_begin: |
| pushq %r12 |
| |
| L$abi_test_bad_unwind_temporary_seh_push_r12: |
| |
| movq %r12,%rax |
| incq %rax |
| movq %rax,(%rsp) |
| |
| |
| |
| movq %r12,(%rsp) |
| |
| |
| popq %r12 |
| |
| .byte 0xf3,0xc3 |
| L$abi_test_bad_unwind_temporary_seh_end: |
| |
| |
| |
| |
| |
| |
| |
| .globl _abi_test_get_and_clear_direction_flag |
| .private_extern _abi_test_get_and_clear_direction_flag |
| _abi_test_get_and_clear_direction_flag: |
| pushfq |
| popq %rax |
| andq $0x400,%rax |
| shrq $10,%rax |
| cld |
| .byte 0xf3,0xc3 |
| |
| |
| |
| |
| |
| .globl _abi_test_set_direction_flag |
| .private_extern _abi_test_set_direction_flag |
| _abi_test_set_direction_flag: |
| std |
| .byte 0xf3,0xc3 |
| |
| #endif |