blob: 9f7c0d817c9814eb58c0fec720fb0dff0005bdaa [file] [log] [blame]
# 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