ClickHouse/contrib/boringssl-cmake/win-x86/crypto/test/trampoline-x86.asm

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

165 lines
3.2 KiB
NASM
Raw Normal View History

2020-10-14 20:45:32 +00:00
; This file is generated from a similarly-named Perl script in the BoringSSL
; source tree. Do not edit by hand.
%ifdef BORINGSSL_PREFIX
%include "boringssl_prefix_symbols_nasm.inc"
%endif
%ifidn __OUTPUT_FORMAT__,obj
section code use32 class=code align=64
%elifidn __OUTPUT_FORMAT__,win32
%ifdef __YASM_VERSION_ID__
%if __YASM_VERSION_ID__ < 01010000h
%error yasm version 1.1.0 or later needed.
%endif
; Yasm automatically includes .00 and complains about redefining it.
; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
%else
$@feat.00 equ 1
%endif
section .text code align=64
%else
section .text code
%endif
global _abi_test_trampoline
align 16
_abi_test_trampoline:
L$_abi_test_trampoline_begin:
push ebp
push ebx
push esi
push edi
mov ecx,DWORD [24+esp]
mov esi,DWORD [ecx]
mov edi,DWORD [4+ecx]
mov ebx,DWORD [8+ecx]
mov ebp,DWORD [12+ecx]
sub esp,44
mov eax,DWORD [72+esp]
xor ecx,ecx
L$000loop:
cmp ecx,DWORD [76+esp]
jae NEAR L$001loop_done
mov edx,DWORD [ecx*4+eax]
mov DWORD [ecx*4+esp],edx
add ecx,1
jmp NEAR L$000loop
L$001loop_done:
call DWORD [64+esp]
add esp,44
mov ecx,DWORD [24+esp]
mov DWORD [ecx],esi
mov DWORD [4+ecx],edi
mov DWORD [8+ecx],ebx
mov DWORD [12+ecx],ebp
pop edi
pop esi
pop ebx
pop ebp
ret
global _abi_test_get_and_clear_direction_flag
align 16
_abi_test_get_and_clear_direction_flag:
L$_abi_test_get_and_clear_direction_flag_begin:
pushfd
pop eax
and eax,1024
shr eax,10
cld
ret
global _abi_test_set_direction_flag
align 16
_abi_test_set_direction_flag:
L$_abi_test_set_direction_flag_begin:
std
ret
global _abi_test_clobber_eax
align 16
_abi_test_clobber_eax:
L$_abi_test_clobber_eax_begin:
xor eax,eax
ret
global _abi_test_clobber_ebx
align 16
_abi_test_clobber_ebx:
L$_abi_test_clobber_ebx_begin:
xor ebx,ebx
ret
global _abi_test_clobber_ecx
align 16
_abi_test_clobber_ecx:
L$_abi_test_clobber_ecx_begin:
xor ecx,ecx
ret
global _abi_test_clobber_edx
align 16
_abi_test_clobber_edx:
L$_abi_test_clobber_edx_begin:
xor edx,edx
ret
global _abi_test_clobber_edi
align 16
_abi_test_clobber_edi:
L$_abi_test_clobber_edi_begin:
xor edi,edi
ret
global _abi_test_clobber_esi
align 16
_abi_test_clobber_esi:
L$_abi_test_clobber_esi_begin:
xor esi,esi
ret
global _abi_test_clobber_ebp
align 16
_abi_test_clobber_ebp:
L$_abi_test_clobber_ebp_begin:
xor ebp,ebp
ret
global _abi_test_clobber_xmm0
align 16
_abi_test_clobber_xmm0:
L$_abi_test_clobber_xmm0_begin:
pxor xmm0,xmm0
ret
global _abi_test_clobber_xmm1
align 16
_abi_test_clobber_xmm1:
L$_abi_test_clobber_xmm1_begin:
pxor xmm1,xmm1
ret
global _abi_test_clobber_xmm2
align 16
_abi_test_clobber_xmm2:
L$_abi_test_clobber_xmm2_begin:
pxor xmm2,xmm2
ret
global _abi_test_clobber_xmm3
align 16
_abi_test_clobber_xmm3:
L$_abi_test_clobber_xmm3_begin:
pxor xmm3,xmm3
ret
global _abi_test_clobber_xmm4
align 16
_abi_test_clobber_xmm4:
L$_abi_test_clobber_xmm4_begin:
pxor xmm4,xmm4
ret
global _abi_test_clobber_xmm5
align 16
_abi_test_clobber_xmm5:
L$_abi_test_clobber_xmm5_begin:
pxor xmm5,xmm5
ret
global _abi_test_clobber_xmm6
align 16
_abi_test_clobber_xmm6:
L$_abi_test_clobber_xmm6_begin:
pxor xmm6,xmm6
ret
global _abi_test_clobber_xmm7
align 16
_abi_test_clobber_xmm7:
L$_abi_test_clobber_xmm7_begin:
pxor xmm7,xmm7
ret