1; This file is generated from a similarly-named Perl script in the BoringSSL 2; source tree. Do not edit by hand. 3 4%ifdef BORINGSSL_PREFIX 5%include "boringssl_prefix_symbols_nasm.inc" 6%endif 7%ifidn __OUTPUT_FORMAT__,obj 8section code use32 class=code align=64 9%elifidn __OUTPUT_FORMAT__,win32 10%ifdef __YASM_VERSION_ID__ 11%if __YASM_VERSION_ID__ < 01010000h 12%error yasm version 1.1.0 or later needed. 13%endif 14; Yasm automatically includes .00 and complains about redefining it. 15; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html 16%else 17$@feat.00 equ 1 18%endif 19section .text code align=64 20%else 21section .text code 22%endif 23global _abi_test_trampoline 24align 16 25_abi_test_trampoline: 26L$_abi_test_trampoline_begin: 27 push ebp 28 push ebx 29 push esi 30 push edi 31 mov ecx,DWORD [24+esp] 32 mov esi,DWORD [ecx] 33 mov edi,DWORD [4+ecx] 34 mov ebx,DWORD [8+ecx] 35 mov ebp,DWORD [12+ecx] 36 sub esp,44 37 mov eax,DWORD [72+esp] 38 xor ecx,ecx 39L$000loop: 40 cmp ecx,DWORD [76+esp] 41 jae NEAR L$001loop_done 42 mov edx,DWORD [ecx*4+eax] 43 mov DWORD [ecx*4+esp],edx 44 add ecx,1 45 jmp NEAR L$000loop 46L$001loop_done: 47 call DWORD [64+esp] 48 add esp,44 49 mov ecx,DWORD [24+esp] 50 mov DWORD [ecx],esi 51 mov DWORD [4+ecx],edi 52 mov DWORD [8+ecx],ebx 53 mov DWORD [12+ecx],ebp 54 pop edi 55 pop esi 56 pop ebx 57 pop ebp 58 ret 59global _abi_test_get_and_clear_direction_flag 60align 16 61_abi_test_get_and_clear_direction_flag: 62L$_abi_test_get_and_clear_direction_flag_begin: 63 pushfd 64 pop eax 65 and eax,1024 66 shr eax,10 67 cld 68 ret 69global _abi_test_set_direction_flag 70align 16 71_abi_test_set_direction_flag: 72L$_abi_test_set_direction_flag_begin: 73 std 74 ret 75global _abi_test_clobber_eax 76align 16 77_abi_test_clobber_eax: 78L$_abi_test_clobber_eax_begin: 79 xor eax,eax 80 ret 81global _abi_test_clobber_ebx 82align 16 83_abi_test_clobber_ebx: 84L$_abi_test_clobber_ebx_begin: 85 xor ebx,ebx 86 ret 87global _abi_test_clobber_ecx 88align 16 89_abi_test_clobber_ecx: 90L$_abi_test_clobber_ecx_begin: 91 xor ecx,ecx 92 ret 93global _abi_test_clobber_edx 94align 16 95_abi_test_clobber_edx: 96L$_abi_test_clobber_edx_begin: 97 xor edx,edx 98 ret 99global _abi_test_clobber_edi 100align 16 101_abi_test_clobber_edi: 102L$_abi_test_clobber_edi_begin: 103 xor edi,edi 104 ret 105global _abi_test_clobber_esi 106align 16 107_abi_test_clobber_esi: 108L$_abi_test_clobber_esi_begin: 109 xor esi,esi 110 ret 111global _abi_test_clobber_ebp 112align 16 113_abi_test_clobber_ebp: 114L$_abi_test_clobber_ebp_begin: 115 xor ebp,ebp 116 ret 117global _abi_test_clobber_xmm0 118align 16 119_abi_test_clobber_xmm0: 120L$_abi_test_clobber_xmm0_begin: 121 pxor xmm0,xmm0 122 ret 123global _abi_test_clobber_xmm1 124align 16 125_abi_test_clobber_xmm1: 126L$_abi_test_clobber_xmm1_begin: 127 pxor xmm1,xmm1 128 ret 129global _abi_test_clobber_xmm2 130align 16 131_abi_test_clobber_xmm2: 132L$_abi_test_clobber_xmm2_begin: 133 pxor xmm2,xmm2 134 ret 135global _abi_test_clobber_xmm3 136align 16 137_abi_test_clobber_xmm3: 138L$_abi_test_clobber_xmm3_begin: 139 pxor xmm3,xmm3 140 ret 141global _abi_test_clobber_xmm4 142align 16 143_abi_test_clobber_xmm4: 144L$_abi_test_clobber_xmm4_begin: 145 pxor xmm4,xmm4 146 ret 147global _abi_test_clobber_xmm5 148align 16 149_abi_test_clobber_xmm5: 150L$_abi_test_clobber_xmm5_begin: 151 pxor xmm5,xmm5 152 ret 153global _abi_test_clobber_xmm6 154align 16 155_abi_test_clobber_xmm6: 156L$_abi_test_clobber_xmm6_begin: 157 pxor xmm6,xmm6 158 ret 159global _abi_test_clobber_xmm7 160align 16 161_abi_test_clobber_xmm7: 162L$_abi_test_clobber_xmm7_begin: 163 pxor xmm7,xmm7 164 ret 165