VirtualBox

source: vbox/trunk/src/libs/openssl-3.0.7/crypto/genasm-elf/poly1305-x86.S@ 97371

Last change on this file since 97371 was 94320, checked in by vboxsync, 3 years ago

libs/openssl-3.0.1: Export to OSE and fix copyright headers in Makefiles, bugref:10128

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 5.0 KB
Line 
1.text
2.align 64
3.globl poly1305_init
4.type poly1305_init,@function
5.align 16
6poly1305_init:
7.L_poly1305_init_begin:
8.byte 243,15,30,251
9 pushl %ebp
10 pushl %ebx
11 pushl %esi
12 pushl %edi
13 movl 20(%esp),%edi
14 movl 24(%esp),%esi
15 movl 28(%esp),%ebp
16 xorl %eax,%eax
17 movl %eax,(%edi)
18 movl %eax,4(%edi)
19 movl %eax,8(%edi)
20 movl %eax,12(%edi)
21 movl %eax,16(%edi)
22 movl %eax,20(%edi)
23 cmpl $0,%esi
24 je .L000nokey
25 movl (%esi),%eax
26 movl 4(%esi),%ebx
27 movl 8(%esi),%ecx
28 movl 12(%esi),%edx
29 andl $268435455,%eax
30 andl $268435452,%ebx
31 andl $268435452,%ecx
32 andl $268435452,%edx
33 movl %eax,24(%edi)
34 movl %ebx,28(%edi)
35 movl %ecx,32(%edi)
36 movl %edx,36(%edi)
37 movl $0,%eax
38.L000nokey:
39 popl %edi
40 popl %esi
41 popl %ebx
42 popl %ebp
43 ret
44.size poly1305_init,.-.L_poly1305_init_begin
45.globl poly1305_blocks
46.type poly1305_blocks,@function
47.align 16
48poly1305_blocks:
49.L_poly1305_blocks_begin:
50.byte 243,15,30,251
51 pushl %ebp
52 pushl %ebx
53 pushl %esi
54 pushl %edi
55 movl 20(%esp),%edi
56 movl 24(%esp),%esi
57 movl 28(%esp),%ecx
58.L001enter_blocks:
59 andl $-15,%ecx
60 jz .L002nodata
61 subl $64,%esp
62 movl 24(%edi),%eax
63 movl 28(%edi),%ebx
64 leal (%esi,%ecx,1),%ebp
65 movl 32(%edi),%ecx
66 movl 36(%edi),%edx
67 movl %ebp,92(%esp)
68 movl %esi,%ebp
69 movl %eax,36(%esp)
70 movl %ebx,%eax
71 shrl $2,%eax
72 movl %ebx,40(%esp)
73 addl %ebx,%eax
74 movl %ecx,%ebx
75 shrl $2,%ebx
76 movl %ecx,44(%esp)
77 addl %ecx,%ebx
78 movl %edx,%ecx
79 shrl $2,%ecx
80 movl %edx,48(%esp)
81 addl %edx,%ecx
82 movl %eax,52(%esp)
83 movl %ebx,56(%esp)
84 movl %ecx,60(%esp)
85 movl (%edi),%eax
86 movl 4(%edi),%ebx
87 movl 8(%edi),%ecx
88 movl 12(%edi),%esi
89 movl 16(%edi),%edi
90 jmp .L003loop
91.align 32
92.L003loop:
93 addl (%ebp),%eax
94 adcl 4(%ebp),%ebx
95 adcl 8(%ebp),%ecx
96 adcl 12(%ebp),%esi
97 leal 16(%ebp),%ebp
98 adcl 96(%esp),%edi
99 movl %eax,(%esp)
100 movl %esi,12(%esp)
101 mull 36(%esp)
102 movl %edi,16(%esp)
103 movl %eax,%edi
104 movl %ebx,%eax
105 movl %edx,%esi
106 mull 60(%esp)
107 addl %eax,%edi
108 movl %ecx,%eax
109 adcl %edx,%esi
110 mull 56(%esp)
111 addl %eax,%edi
112 movl 12(%esp),%eax
113 adcl %edx,%esi
114 mull 52(%esp)
115 addl %eax,%edi
116 movl (%esp),%eax
117 adcl %edx,%esi
118 mull 40(%esp)
119 movl %edi,20(%esp)
120 xorl %edi,%edi
121 addl %eax,%esi
122 movl %ebx,%eax
123 adcl %edx,%edi
124 mull 36(%esp)
125 addl %eax,%esi
126 movl %ecx,%eax
127 adcl %edx,%edi
128 mull 60(%esp)
129 addl %eax,%esi
130 movl 12(%esp),%eax
131 adcl %edx,%edi
132 mull 56(%esp)
133 addl %eax,%esi
134 movl 16(%esp),%eax
135 adcl %edx,%edi
136 imull 52(%esp),%eax
137 addl %eax,%esi
138 movl (%esp),%eax
139 adcl $0,%edi
140 mull 44(%esp)
141 movl %esi,24(%esp)
142 xorl %esi,%esi
143 addl %eax,%edi
144 movl %ebx,%eax
145 adcl %edx,%esi
146 mull 40(%esp)
147 addl %eax,%edi
148 movl %ecx,%eax
149 adcl %edx,%esi
150 mull 36(%esp)
151 addl %eax,%edi
152 movl 12(%esp),%eax
153 adcl %edx,%esi
154 mull 60(%esp)
155 addl %eax,%edi
156 movl 16(%esp),%eax
157 adcl %edx,%esi
158 imull 56(%esp),%eax
159 addl %eax,%edi
160 movl (%esp),%eax
161 adcl $0,%esi
162 mull 48(%esp)
163 movl %edi,28(%esp)
164 xorl %edi,%edi
165 addl %eax,%esi
166 movl %ebx,%eax
167 adcl %edx,%edi
168 mull 44(%esp)
169 addl %eax,%esi
170 movl %ecx,%eax
171 adcl %edx,%edi
172 mull 40(%esp)
173 addl %eax,%esi
174 movl 12(%esp),%eax
175 adcl %edx,%edi
176 mull 36(%esp)
177 addl %eax,%esi
178 movl 16(%esp),%ecx
179 adcl %edx,%edi
180 movl %ecx,%edx
181 imull 60(%esp),%ecx
182 addl %ecx,%esi
183 movl 20(%esp),%eax
184 adcl $0,%edi
185 imull 36(%esp),%edx
186 addl %edi,%edx
187 movl 24(%esp),%ebx
188 movl 28(%esp),%ecx
189 movl %edx,%edi
190 shrl $2,%edx
191 andl $3,%edi
192 leal (%edx,%edx,4),%edx
193 addl %edx,%eax
194 adcl $0,%ebx
195 adcl $0,%ecx
196 adcl $0,%esi
197 adcl $0,%edi
198 cmpl 92(%esp),%ebp
199 jne .L003loop
200 movl 84(%esp),%edx
201 addl $64,%esp
202 movl %eax,(%edx)
203 movl %ebx,4(%edx)
204 movl %ecx,8(%edx)
205 movl %esi,12(%edx)
206 movl %edi,16(%edx)
207.L002nodata:
208 popl %edi
209 popl %esi
210 popl %ebx
211 popl %ebp
212 ret
213.size poly1305_blocks,.-.L_poly1305_blocks_begin
214.globl poly1305_emit
215.type poly1305_emit,@function
216.align 16
217poly1305_emit:
218.L_poly1305_emit_begin:
219.byte 243,15,30,251
220 pushl %ebp
221 pushl %ebx
222 pushl %esi
223 pushl %edi
224 movl 20(%esp),%ebp
225.L004enter_emit:
226 movl 24(%esp),%edi
227 movl (%ebp),%eax
228 movl 4(%ebp),%ebx
229 movl 8(%ebp),%ecx
230 movl 12(%ebp),%edx
231 movl 16(%ebp),%esi
232 addl $5,%eax
233 adcl $0,%ebx
234 adcl $0,%ecx
235 adcl $0,%edx
236 adcl $0,%esi
237 shrl $2,%esi
238 negl %esi
239 andl %esi,%eax
240 andl %esi,%ebx
241 andl %esi,%ecx
242 andl %esi,%edx
243 movl %eax,(%edi)
244 movl %ebx,4(%edi)
245 movl %ecx,8(%edi)
246 movl %edx,12(%edi)
247 notl %esi
248 movl (%ebp),%eax
249 movl 4(%ebp),%ebx
250 movl 8(%ebp),%ecx
251 movl 12(%ebp),%edx
252 movl 28(%esp),%ebp
253 andl %esi,%eax
254 andl %esi,%ebx
255 andl %esi,%ecx
256 andl %esi,%edx
257 orl (%edi),%eax
258 orl 4(%edi),%ebx
259 orl 8(%edi),%ecx
260 orl 12(%edi),%edx
261 addl (%ebp),%eax
262 adcl 4(%ebp),%ebx
263 adcl 8(%ebp),%ecx
264 adcl 12(%ebp),%edx
265 movl %eax,(%edi)
266 movl %ebx,4(%edi)
267 movl %ecx,8(%edi)
268 movl %edx,12(%edi)
269 popl %edi
270 popl %esi
271 popl %ebx
272 popl %ebp
273 ret
274.size poly1305_emit,.-.L_poly1305_emit_begin
275.byte 80,111,108,121,49,51,48,53,32,102,111,114,32,120,56,54
276.byte 44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32
277.byte 60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111
278.byte 114,103,62,0
279.align 4
280
281 .section ".note.gnu.property", "a"
282 .p2align 2
283 .long 1f - 0f
284 .long 4f - 1f
285 .long 5
2860:
287 .asciz "GNU"
2881:
289 .p2align 2
290 .long 0xc0000002
291 .long 3f - 2f
2922:
293 .long 3
2943:
295 .p2align 2
2964:
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette