VirtualBox

source: vbox/trunk/src/libs/openssl-3.0.2/crypto/genasm-macosx/poly1305-x86.S@ 95087

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

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