ref: bfe9da47cfa2f51ebef78c59332b5ba2deba306d
dir: /third_party/boringssl/linux-x86_64/crypto/test/trampoline-x86_64.S/
// 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 .type abi_test_trampoline, @function .globl abi_test_trampoline .hidden abi_test_trampoline .align 16 abi_test_trampoline: .Labi_test_trampoline_seh_begin: .cfi_startproc subq $120,%rsp .cfi_adjust_cfa_offset 120 .Labi_test_trampoline_seh_prolog_alloc: movq %r8,48(%rsp) movq %rbx,64(%rsp) .cfi_offset rbx, -64 .Labi_test_trampoline_seh_prolog_rbx: movq %rbp,72(%rsp) .cfi_offset rbp, -56 .Labi_test_trampoline_seh_prolog_rbp: movq %r12,80(%rsp) .cfi_offset r12, -48 .Labi_test_trampoline_seh_prolog_r12: movq %r13,88(%rsp) .cfi_offset r13, -40 .Labi_test_trampoline_seh_prolog_r13: movq %r14,96(%rsp) .cfi_offset r14, -32 .Labi_test_trampoline_seh_prolog_r14: movq %r15,104(%rsp) .cfi_offset r15, -24 .Labi_test_trampoline_seh_prolog_r15: .Labi_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 .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 .byte 0xf3,0xc3 .cfi_endproc .Labi_test_trampoline_seh_end: .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: xorq %rax,%rax .byte 0xf3,0xc3 .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: xorq %rbx,%rbx .byte 0xf3,0xc3 .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: xorq %rcx,%rcx .byte 0xf3,0xc3 .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: xorq %rdx,%rdx .byte 0xf3,0xc3 .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: xorq %rdi,%rdi .byte 0xf3,0xc3 .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: xorq %rsi,%rsi .byte 0xf3,0xc3 .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: xorq %rbp,%rbp .byte 0xf3,0xc3 .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: xorq %r8,%r8 .byte 0xf3,0xc3 .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: xorq %r9,%r9 .byte 0xf3,0xc3 .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: xorq %r10,%r10 .byte 0xf3,0xc3 .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: xorq %r11,%r11 .byte 0xf3,0xc3 .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: xorq %r12,%r12 .byte 0xf3,0xc3 .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: xorq %r13,%r13 .byte 0xf3,0xc3 .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: xorq %r14,%r14 .byte 0xf3,0xc3 .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: xorq %r15,%r15 .byte 0xf3,0xc3 .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: pxor %xmm0,%xmm0 .byte 0xf3,0xc3 .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: pxor %xmm1,%xmm1 .byte 0xf3,0xc3 .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: pxor %xmm2,%xmm2 .byte 0xf3,0xc3 .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: pxor %xmm3,%xmm3 .byte 0xf3,0xc3 .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: pxor %xmm4,%xmm4 .byte 0xf3,0xc3 .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: pxor %xmm5,%xmm5 .byte 0xf3,0xc3 .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: pxor %xmm6,%xmm6 .byte 0xf3,0xc3 .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: pxor %xmm7,%xmm7 .byte 0xf3,0xc3 .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: pxor %xmm8,%xmm8 .byte 0xf3,0xc3 .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: pxor %xmm9,%xmm9 .byte 0xf3,0xc3 .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: pxor %xmm10,%xmm10 .byte 0xf3,0xc3 .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: pxor %xmm11,%xmm11 .byte 0xf3,0xc3 .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: pxor %xmm12,%xmm12 .byte 0xf3,0xc3 .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: pxor %xmm13,%xmm13 .byte 0xf3,0xc3 .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: pxor %xmm14,%xmm14 .byte 0xf3,0xc3 .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: pxor %xmm15,%xmm15 .byte 0xf3,0xc3 .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 .Labi_test_bad_unwind_wrong_register_seh_begin: pushq %r12 .cfi_adjust_cfa_offset 8 .cfi_offset %r13,-16 .Labi_test_bad_unwind_wrong_register_seh_push_r13: nop popq %r12 .cfi_adjust_cfa_offset -8 .cfi_restore %r12 .byte 0xf3,0xc3 .Labi_test_bad_unwind_wrong_register_seh_end: .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 .Labi_test_bad_unwind_temporary_seh_begin: pushq %r12 .cfi_adjust_cfa_offset 8 .cfi_offset %r12,-16 .Labi_test_bad_unwind_temporary_seh_push_r12: movq %r12,%rax incq %rax movq %rax,(%rsp) movq %r12,(%rsp) popq %r12 .cfi_adjust_cfa_offset -8 .cfi_restore %r12 .byte 0xf3,0xc3 .Labi_test_bad_unwind_temporary_seh_end: .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: pushfq popq %rax andq $0x400,%rax shrq $10,%rax cld .byte 0xf3,0xc3 .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: std .byte 0xf3,0xc3 .size abi_test_set_direction_flag,.-abi_test_set_direction_flag #endif .section .note.GNU-stack,"",@progbits