# This file is generated from a similarly-named Perl script in the BoringSSL
# source tree. Do not edit by hand.

#if defined(__i386__)
#if defined(BORINGSSL_PREFIX)
#include <boringssl_prefix_symbols_asm.h>
#endif
.text
.globl	_abi_test_trampoline
.private_extern	_abi_test_trampoline
.align	4
_abi_test_trampoline:
L_abi_test_trampoline_begin:
	pushl	%ebp
	pushl	%ebx
	pushl	%esi
	pushl	%edi
	movl	24(%esp),%ecx
	movl	(%ecx),%esi
	movl	4(%ecx),%edi
	movl	8(%ecx),%ebx
	movl	12(%ecx),%ebp
	subl	$44,%esp
	movl	72(%esp),%eax
	xorl	%ecx,%ecx
L000loop:
	cmpl	76(%esp),%ecx
	jae	L001loop_done
	movl	(%eax,%ecx,4),%edx
	movl	%edx,(%esp,%ecx,4)
	addl	$1,%ecx
	jmp	L000loop
L001loop_done:
	call	*64(%esp)
	addl	$44,%esp
	movl	24(%esp),%ecx
	movl	%esi,(%ecx)
	movl	%edi,4(%ecx)
	movl	%ebx,8(%ecx)
	movl	%ebp,12(%ecx)
	popl	%edi
	popl	%esi
	popl	%ebx
	popl	%ebp
	ret
.globl	_abi_test_get_and_clear_direction_flag
.private_extern	_abi_test_get_and_clear_direction_flag
.align	4
_abi_test_get_and_clear_direction_flag:
L_abi_test_get_and_clear_direction_flag_begin:
	pushfl
	popl	%eax
	andl	$1024,%eax
	shrl	$10,%eax
	cld
	ret
.globl	_abi_test_set_direction_flag
.private_extern	_abi_test_set_direction_flag
.align	4
_abi_test_set_direction_flag:
L_abi_test_set_direction_flag_begin:
	std
	ret
.globl	_abi_test_clobber_eax
.private_extern	_abi_test_clobber_eax
.align	4
_abi_test_clobber_eax:
L_abi_test_clobber_eax_begin:
	xorl	%eax,%eax
	ret
.globl	_abi_test_clobber_ebx
.private_extern	_abi_test_clobber_ebx
.align	4
_abi_test_clobber_ebx:
L_abi_test_clobber_ebx_begin:
	xorl	%ebx,%ebx
	ret
.globl	_abi_test_clobber_ecx
.private_extern	_abi_test_clobber_ecx
.align	4
_abi_test_clobber_ecx:
L_abi_test_clobber_ecx_begin:
	xorl	%ecx,%ecx
	ret
.globl	_abi_test_clobber_edx
.private_extern	_abi_test_clobber_edx
.align	4
_abi_test_clobber_edx:
L_abi_test_clobber_edx_begin:
	xorl	%edx,%edx
	ret
.globl	_abi_test_clobber_edi
.private_extern	_abi_test_clobber_edi
.align	4
_abi_test_clobber_edi:
L_abi_test_clobber_edi_begin:
	xorl	%edi,%edi
	ret
.globl	_abi_test_clobber_esi
.private_extern	_abi_test_clobber_esi
.align	4
_abi_test_clobber_esi:
L_abi_test_clobber_esi_begin:
	xorl	%esi,%esi
	ret
.globl	_abi_test_clobber_ebp
.private_extern	_abi_test_clobber_ebp
.align	4
_abi_test_clobber_ebp:
L_abi_test_clobber_ebp_begin:
	xorl	%ebp,%ebp
	ret
.globl	_abi_test_clobber_xmm0
.private_extern	_abi_test_clobber_xmm0
.align	4
_abi_test_clobber_xmm0:
L_abi_test_clobber_xmm0_begin:
	pxor	%xmm0,%xmm0
	ret
.globl	_abi_test_clobber_xmm1
.private_extern	_abi_test_clobber_xmm1
.align	4
_abi_test_clobber_xmm1:
L_abi_test_clobber_xmm1_begin:
	pxor	%xmm1,%xmm1
	ret
.globl	_abi_test_clobber_xmm2
.private_extern	_abi_test_clobber_xmm2
.align	4
_abi_test_clobber_xmm2:
L_abi_test_clobber_xmm2_begin:
	pxor	%xmm2,%xmm2
	ret
.globl	_abi_test_clobber_xmm3
.private_extern	_abi_test_clobber_xmm3
.align	4
_abi_test_clobber_xmm3:
L_abi_test_clobber_xmm3_begin:
	pxor	%xmm3,%xmm3
	ret
.globl	_abi_test_clobber_xmm4
.private_extern	_abi_test_clobber_xmm4
.align	4
_abi_test_clobber_xmm4:
L_abi_test_clobber_xmm4_begin:
	pxor	%xmm4,%xmm4
	ret
.globl	_abi_test_clobber_xmm5
.private_extern	_abi_test_clobber_xmm5
.align	4
_abi_test_clobber_xmm5:
L_abi_test_clobber_xmm5_begin:
	pxor	%xmm5,%xmm5
	ret
.globl	_abi_test_clobber_xmm6
.private_extern	_abi_test_clobber_xmm6
.align	4
_abi_test_clobber_xmm6:
L_abi_test_clobber_xmm6_begin:
	pxor	%xmm6,%xmm6
	ret
.globl	_abi_test_clobber_xmm7
.private_extern	_abi_test_clobber_xmm7
.align	4
_abi_test_clobber_xmm7:
L_abi_test_clobber_xmm7_begin:
	pxor	%xmm7,%xmm7
	ret
#endif
