blob: 3ef9917afe9e5b1f8579e99d1ae60a1d6b465089 [file] [log] [blame]
David Benjaminfe0c91e2024-03-18 15:37:24 +10001; 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__, win32
8%ifidn __OUTPUT_FORMAT__,obj
9section code use32 class=code align=64
10%elifidn __OUTPUT_FORMAT__,win32
11$@feat.00 equ 1
12section .text code align=64
13%else
14section .text code
15%endif
16global _abi_test_trampoline
17align 16
18_abi_test_trampoline:
19L$_abi_test_trampoline_begin:
20 push ebp
21 push ebx
22 push esi
23 push edi
24 mov ecx,DWORD [24+esp]
25 mov esi,DWORD [ecx]
26 mov edi,DWORD [4+ecx]
27 mov ebx,DWORD [8+ecx]
28 mov ebp,DWORD [12+ecx]
29 sub esp,44
30 mov eax,DWORD [72+esp]
31 xor ecx,ecx
32L$000loop:
33 cmp ecx,DWORD [76+esp]
34 jae NEAR L$001loop_done
35 mov edx,DWORD [ecx*4+eax]
36 mov DWORD [ecx*4+esp],edx
37 add ecx,1
38 jmp NEAR L$000loop
39L$001loop_done:
40 call DWORD [64+esp]
41 add esp,44
42 mov ecx,DWORD [24+esp]
43 mov DWORD [ecx],esi
44 mov DWORD [4+ecx],edi
45 mov DWORD [8+ecx],ebx
46 mov DWORD [12+ecx],ebp
47 pop edi
48 pop esi
49 pop ebx
50 pop ebp
51 ret
52global _abi_test_get_and_clear_direction_flag
53align 16
54_abi_test_get_and_clear_direction_flag:
55L$_abi_test_get_and_clear_direction_flag_begin:
56 pushfd
57 pop eax
58 and eax,1024
59 shr eax,10
60 cld
61 ret
62global _abi_test_set_direction_flag
63align 16
64_abi_test_set_direction_flag:
65L$_abi_test_set_direction_flag_begin:
66 std
67 ret
68global _abi_test_clobber_eax
69align 16
70_abi_test_clobber_eax:
71L$_abi_test_clobber_eax_begin:
72 xor eax,eax
73 ret
74global _abi_test_clobber_ebx
75align 16
76_abi_test_clobber_ebx:
77L$_abi_test_clobber_ebx_begin:
78 xor ebx,ebx
79 ret
80global _abi_test_clobber_ecx
81align 16
82_abi_test_clobber_ecx:
83L$_abi_test_clobber_ecx_begin:
84 xor ecx,ecx
85 ret
86global _abi_test_clobber_edx
87align 16
88_abi_test_clobber_edx:
89L$_abi_test_clobber_edx_begin:
90 xor edx,edx
91 ret
92global _abi_test_clobber_edi
93align 16
94_abi_test_clobber_edi:
95L$_abi_test_clobber_edi_begin:
96 xor edi,edi
97 ret
98global _abi_test_clobber_esi
99align 16
100_abi_test_clobber_esi:
101L$_abi_test_clobber_esi_begin:
102 xor esi,esi
103 ret
104global _abi_test_clobber_ebp
105align 16
106_abi_test_clobber_ebp:
107L$_abi_test_clobber_ebp_begin:
108 xor ebp,ebp
109 ret
110global _abi_test_clobber_xmm0
111align 16
112_abi_test_clobber_xmm0:
113L$_abi_test_clobber_xmm0_begin:
114 pxor xmm0,xmm0
115 ret
116global _abi_test_clobber_xmm1
117align 16
118_abi_test_clobber_xmm1:
119L$_abi_test_clobber_xmm1_begin:
120 pxor xmm1,xmm1
121 ret
122global _abi_test_clobber_xmm2
123align 16
124_abi_test_clobber_xmm2:
125L$_abi_test_clobber_xmm2_begin:
126 pxor xmm2,xmm2
127 ret
128global _abi_test_clobber_xmm3
129align 16
130_abi_test_clobber_xmm3:
131L$_abi_test_clobber_xmm3_begin:
132 pxor xmm3,xmm3
133 ret
134global _abi_test_clobber_xmm4
135align 16
136_abi_test_clobber_xmm4:
137L$_abi_test_clobber_xmm4_begin:
138 pxor xmm4,xmm4
139 ret
140global _abi_test_clobber_xmm5
141align 16
142_abi_test_clobber_xmm5:
143L$_abi_test_clobber_xmm5_begin:
144 pxor xmm5,xmm5
145 ret
146global _abi_test_clobber_xmm6
147align 16
148_abi_test_clobber_xmm6:
149L$_abi_test_clobber_xmm6_begin:
150 pxor xmm6,xmm6
151 ret
152global _abi_test_clobber_xmm7
153align 16
154_abi_test_clobber_xmm7:
155L$_abi_test_clobber_xmm7_begin:
156 pxor xmm7,xmm7
157 ret
158%else
159; Work around https://bugzilla.nasm.us/show_bug.cgi?id=3392738
160ret
161%endif