]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/contrib/cloudabi/cloudabi_vdso_i686_on_64bit.S
Upgrade Unbound to 1.9.2.
[FreeBSD/FreeBSD.git] / sys / contrib / cloudabi / cloudabi_vdso_i686_on_64bit.S
1 // Copyright (c) 2016 Nuxi (https://nuxi.nl/) and contributors.
2 //
3 // Redistribution and use in source and binary forms, with or without
4 // modification, are permitted provided that the following conditions
5 // are met:
6 // 1. Redistributions of source code must retain the above copyright
7 //    notice, this list of conditions and the following disclaimer.
8 // 2. Redistributions in binary form must reproduce the above copyright
9 //    notice, this list of conditions and the following disclaimer in the
10 //    documentation and/or other materials provided with the distribution.
11 //
12 // THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
13 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
14 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
15 // ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
16 // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
17 // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
18 // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
19 // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
20 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
21 // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
22 // SUCH DAMAGE.
23 //
24 // This file is automatically generated. Do not edit.
25 //
26 // Source: https://github.com/NuxiNL/cloudabi
27
28 #define ENTRY(name)      \
29   .text;                 \
30   .p2align 2, 0x90;      \
31   .global name;          \
32   .type name, @function; \
33 name:
34
35 #define END(name) .size name, . - name
36
37 ENTRY(cloudabi_sys_clock_res_get)
38   push %ebp
39   mov %esp, %ebp
40   mov 8(%ebp), %ecx
41   mov %ecx, -16(%ebp)
42   mov $0, %eax
43   mov %ebp, %ecx
44   sub $16, %ecx
45   int $0x80
46   test %eax, %eax
47   jnz 1f
48   mov 12(%ebp), %ecx
49   mov -16(%ebp), %edx
50   mov %edx, 0(%ecx)
51   mov -12(%ebp), %edx
52   mov %edx, 4(%ecx)
53 1:
54   pop %ebp
55   ret
56 END(cloudabi_sys_clock_res_get)
57
58 ENTRY(cloudabi_sys_clock_time_get)
59   push %ebp
60   mov %esp, %ebp
61   mov 8(%ebp), %ecx
62   mov %ecx, -16(%ebp)
63   mov 12(%ebp), %ecx
64   mov %ecx, -8(%ebp)
65   mov 16(%ebp), %ecx
66   mov %ecx, -4(%ebp)
67   mov $1, %eax
68   mov %ebp, %ecx
69   sub $16, %ecx
70   int $0x80
71   test %eax, %eax
72   jnz 1f
73   mov 20(%ebp), %ecx
74   mov -16(%ebp), %edx
75   mov %edx, 0(%ecx)
76   mov -12(%ebp), %edx
77   mov %edx, 4(%ecx)
78 1:
79   pop %ebp
80   ret
81 END(cloudabi_sys_clock_time_get)
82
83 ENTRY(cloudabi_sys_condvar_signal)
84   push %ebp
85   mov %esp, %ebp
86   mov 8(%ebp), %ecx
87   mov %ecx, -24(%ebp)
88   movl $0, -20(%ebp)
89   mov 12(%ebp), %ecx
90   mov %ecx, -16(%ebp)
91   mov 16(%ebp), %ecx
92   mov %ecx, -8(%ebp)
93   mov $2, %eax
94   mov %ebp, %ecx
95   sub $24, %ecx
96   int $0x80
97   pop %ebp
98   ret
99 END(cloudabi_sys_condvar_signal)
100
101 ENTRY(cloudabi_sys_fd_close)
102   push %ebp
103   mov %esp, %ebp
104   mov 8(%ebp), %ecx
105   mov %ecx, -16(%ebp)
106   mov $3, %eax
107   mov %ebp, %ecx
108   sub $16, %ecx
109   int $0x80
110   pop %ebp
111   ret
112 END(cloudabi_sys_fd_close)
113
114 ENTRY(cloudabi_sys_fd_create1)
115   push %ebp
116   mov %esp, %ebp
117   mov 8(%ebp), %ecx
118   mov %ecx, -16(%ebp)
119   mov $4, %eax
120   mov %ebp, %ecx
121   sub $16, %ecx
122   int $0x80
123   test %eax, %eax
124   jnz 1f
125   mov 12(%ebp), %ecx
126   mov -16(%ebp), %edx
127   mov %edx, 0(%ecx)
128 1:
129   pop %ebp
130   ret
131 END(cloudabi_sys_fd_create1)
132
133 ENTRY(cloudabi_sys_fd_create2)
134   push %ebp
135   mov %esp, %ebp
136   mov 8(%ebp), %ecx
137   mov %ecx, -16(%ebp)
138   mov $5, %eax
139   mov %ebp, %ecx
140   sub $16, %ecx
141   int $0x80
142   test %eax, %eax
143   jnz 1f
144   mov 12(%ebp), %ecx
145   mov -16(%ebp), %edx
146   mov %edx, 0(%ecx)
147   mov 16(%ebp), %ecx
148   mov -8(%ebp), %edx
149   mov %edx, 0(%ecx)
150 1:
151   pop %ebp
152   ret
153 END(cloudabi_sys_fd_create2)
154
155 ENTRY(cloudabi_sys_fd_datasync)
156   push %ebp
157   mov %esp, %ebp
158   mov 8(%ebp), %ecx
159   mov %ecx, -16(%ebp)
160   mov $6, %eax
161   mov %ebp, %ecx
162   sub $16, %ecx
163   int $0x80
164   pop %ebp
165   ret
166 END(cloudabi_sys_fd_datasync)
167
168 ENTRY(cloudabi_sys_fd_dup)
169   push %ebp
170   mov %esp, %ebp
171   mov 8(%ebp), %ecx
172   mov %ecx, -16(%ebp)
173   mov $7, %eax
174   mov %ebp, %ecx
175   sub $16, %ecx
176   int $0x80
177   test %eax, %eax
178   jnz 1f
179   mov 12(%ebp), %ecx
180   mov -16(%ebp), %edx
181   mov %edx, 0(%ecx)
182 1:
183   pop %ebp
184   ret
185 END(cloudabi_sys_fd_dup)
186
187 ENTRY(cloudabi_sys_fd_pread)
188   push %ebp
189   mov %esp, %ebp
190   mov 8(%ebp), %ecx
191   mov %ecx, -32(%ebp)
192   mov 12(%ebp), %ecx
193   mov %ecx, -24(%ebp)
194   movl $0, -20(%ebp)
195   mov 16(%ebp), %ecx
196   mov %ecx, -16(%ebp)
197   movl $0, -12(%ebp)
198   mov 20(%ebp), %ecx
199   mov %ecx, -8(%ebp)
200   mov 24(%ebp), %ecx
201   mov %ecx, -4(%ebp)
202   mov $8, %eax
203   mov %ebp, %ecx
204   sub $32, %ecx
205   int $0x80
206   test %eax, %eax
207   jnz 1f
208   mov 28(%ebp), %ecx
209   mov -32(%ebp), %edx
210   mov %edx, 0(%ecx)
211 1:
212   pop %ebp
213   ret
214 END(cloudabi_sys_fd_pread)
215
216 ENTRY(cloudabi_sys_fd_pwrite)
217   push %ebp
218   mov %esp, %ebp
219   mov 8(%ebp), %ecx
220   mov %ecx, -32(%ebp)
221   mov 12(%ebp), %ecx
222   mov %ecx, -24(%ebp)
223   movl $0, -20(%ebp)
224   mov 16(%ebp), %ecx
225   mov %ecx, -16(%ebp)
226   movl $0, -12(%ebp)
227   mov 20(%ebp), %ecx
228   mov %ecx, -8(%ebp)
229   mov 24(%ebp), %ecx
230   mov %ecx, -4(%ebp)
231   mov $9, %eax
232   mov %ebp, %ecx
233   sub $32, %ecx
234   int $0x80
235   test %eax, %eax
236   jnz 1f
237   mov 28(%ebp), %ecx
238   mov -32(%ebp), %edx
239   mov %edx, 0(%ecx)
240 1:
241   pop %ebp
242   ret
243 END(cloudabi_sys_fd_pwrite)
244
245 ENTRY(cloudabi_sys_fd_read)
246   push %ebp
247   mov %esp, %ebp
248   mov 8(%ebp), %ecx
249   mov %ecx, -24(%ebp)
250   mov 12(%ebp), %ecx
251   mov %ecx, -16(%ebp)
252   movl $0, -12(%ebp)
253   mov 16(%ebp), %ecx
254   mov %ecx, -8(%ebp)
255   movl $0, -4(%ebp)
256   mov $10, %eax
257   mov %ebp, %ecx
258   sub $24, %ecx
259   int $0x80
260   test %eax, %eax
261   jnz 1f
262   mov 20(%ebp), %ecx
263   mov -24(%ebp), %edx
264   mov %edx, 0(%ecx)
265 1:
266   pop %ebp
267   ret
268 END(cloudabi_sys_fd_read)
269
270 ENTRY(cloudabi_sys_fd_replace)
271   push %ebp
272   mov %esp, %ebp
273   mov 8(%ebp), %ecx
274   mov %ecx, -16(%ebp)
275   mov 12(%ebp), %ecx
276   mov %ecx, -8(%ebp)
277   mov $11, %eax
278   mov %ebp, %ecx
279   sub $16, %ecx
280   int $0x80
281   pop %ebp
282   ret
283 END(cloudabi_sys_fd_replace)
284
285 ENTRY(cloudabi_sys_fd_seek)
286   push %ebp
287   mov %esp, %ebp
288   mov 8(%ebp), %ecx
289   mov %ecx, -24(%ebp)
290   mov 12(%ebp), %ecx
291   mov %ecx, -16(%ebp)
292   mov 16(%ebp), %ecx
293   mov %ecx, -12(%ebp)
294   mov 20(%ebp), %ecx
295   mov %ecx, -8(%ebp)
296   mov $12, %eax
297   mov %ebp, %ecx
298   sub $24, %ecx
299   int $0x80
300   test %eax, %eax
301   jnz 1f
302   mov 24(%ebp), %ecx
303   mov -24(%ebp), %edx
304   mov %edx, 0(%ecx)
305   mov -20(%ebp), %edx
306   mov %edx, 4(%ecx)
307 1:
308   pop %ebp
309   ret
310 END(cloudabi_sys_fd_seek)
311
312 ENTRY(cloudabi_sys_fd_stat_get)
313   push %ebp
314   mov %esp, %ebp
315   mov 8(%ebp), %ecx
316   mov %ecx, -16(%ebp)
317   mov 12(%ebp), %ecx
318   mov %ecx, -8(%ebp)
319   movl $0, -4(%ebp)
320   mov $13, %eax
321   mov %ebp, %ecx
322   sub $16, %ecx
323   int $0x80
324   pop %ebp
325   ret
326 END(cloudabi_sys_fd_stat_get)
327
328 ENTRY(cloudabi_sys_fd_stat_put)
329   push %ebp
330   mov %esp, %ebp
331   mov 8(%ebp), %ecx
332   mov %ecx, -24(%ebp)
333   mov 12(%ebp), %ecx
334   mov %ecx, -16(%ebp)
335   movl $0, -12(%ebp)
336   mov 16(%ebp), %ecx
337   mov %ecx, -8(%ebp)
338   mov $14, %eax
339   mov %ebp, %ecx
340   sub $24, %ecx
341   int $0x80
342   pop %ebp
343   ret
344 END(cloudabi_sys_fd_stat_put)
345
346 ENTRY(cloudabi_sys_fd_sync)
347   push %ebp
348   mov %esp, %ebp
349   mov 8(%ebp), %ecx
350   mov %ecx, -16(%ebp)
351   mov $15, %eax
352   mov %ebp, %ecx
353   sub $16, %ecx
354   int $0x80
355   pop %ebp
356   ret
357 END(cloudabi_sys_fd_sync)
358
359 ENTRY(cloudabi_sys_fd_write)
360   push %ebp
361   mov %esp, %ebp
362   mov 8(%ebp), %ecx
363   mov %ecx, -24(%ebp)
364   mov 12(%ebp), %ecx
365   mov %ecx, -16(%ebp)
366   movl $0, -12(%ebp)
367   mov 16(%ebp), %ecx
368   mov %ecx, -8(%ebp)
369   movl $0, -4(%ebp)
370   mov $16, %eax
371   mov %ebp, %ecx
372   sub $24, %ecx
373   int $0x80
374   test %eax, %eax
375   jnz 1f
376   mov 20(%ebp), %ecx
377   mov -24(%ebp), %edx
378   mov %edx, 0(%ecx)
379 1:
380   pop %ebp
381   ret
382 END(cloudabi_sys_fd_write)
383
384 ENTRY(cloudabi_sys_file_advise)
385   push %ebp
386   mov %esp, %ebp
387   mov 8(%ebp), %ecx
388   mov %ecx, -32(%ebp)
389   mov 12(%ebp), %ecx
390   mov %ecx, -24(%ebp)
391   mov 16(%ebp), %ecx
392   mov %ecx, -20(%ebp)
393   mov 20(%ebp), %ecx
394   mov %ecx, -16(%ebp)
395   mov 24(%ebp), %ecx
396   mov %ecx, -12(%ebp)
397   mov 28(%ebp), %ecx
398   mov %ecx, -8(%ebp)
399   mov $17, %eax
400   mov %ebp, %ecx
401   sub $32, %ecx
402   int $0x80
403   pop %ebp
404   ret
405 END(cloudabi_sys_file_advise)
406
407 ENTRY(cloudabi_sys_file_allocate)
408   push %ebp
409   mov %esp, %ebp
410   mov 8(%ebp), %ecx
411   mov %ecx, -24(%ebp)
412   mov 12(%ebp), %ecx
413   mov %ecx, -16(%ebp)
414   mov 16(%ebp), %ecx
415   mov %ecx, -12(%ebp)
416   mov 20(%ebp), %ecx
417   mov %ecx, -8(%ebp)
418   mov 24(%ebp), %ecx
419   mov %ecx, -4(%ebp)
420   mov $18, %eax
421   mov %ebp, %ecx
422   sub $24, %ecx
423   int $0x80
424   pop %ebp
425   ret
426 END(cloudabi_sys_file_allocate)
427
428 ENTRY(cloudabi_sys_file_create)
429   push %ebp
430   mov %esp, %ebp
431   mov 8(%ebp), %ecx
432   mov %ecx, -32(%ebp)
433   mov 12(%ebp), %ecx
434   mov %ecx, -24(%ebp)
435   movl $0, -20(%ebp)
436   mov 16(%ebp), %ecx
437   mov %ecx, -16(%ebp)
438   movl $0, -12(%ebp)
439   mov 20(%ebp), %ecx
440   mov %ecx, -8(%ebp)
441   mov $19, %eax
442   mov %ebp, %ecx
443   sub $32, %ecx
444   int $0x80
445   pop %ebp
446   ret
447 END(cloudabi_sys_file_create)
448
449 ENTRY(cloudabi_sys_file_link)
450   push %ebp
451   mov %esp, %ebp
452   mov 8(%ebp), %ecx
453   mov %ecx, -48(%ebp)
454   mov 12(%ebp), %ecx
455   mov %ecx, -44(%ebp)
456   mov 16(%ebp), %ecx
457   mov %ecx, -40(%ebp)
458   movl $0, -36(%ebp)
459   mov 20(%ebp), %ecx
460   mov %ecx, -32(%ebp)
461   movl $0, -28(%ebp)
462   mov 24(%ebp), %ecx
463   mov %ecx, -24(%ebp)
464   mov 28(%ebp), %ecx
465   mov %ecx, -16(%ebp)
466   movl $0, -12(%ebp)
467   mov 32(%ebp), %ecx
468   mov %ecx, -8(%ebp)
469   movl $0, -4(%ebp)
470   mov $20, %eax
471   mov %ebp, %ecx
472   sub $48, %ecx
473   int $0x80
474   pop %ebp
475   ret
476 END(cloudabi_sys_file_link)
477
478 ENTRY(cloudabi_sys_file_open)
479   push %ebp
480   mov %esp, %ebp
481   mov 8(%ebp), %ecx
482   mov %ecx, -40(%ebp)
483   mov 12(%ebp), %ecx
484   mov %ecx, -36(%ebp)
485   mov 16(%ebp), %ecx
486   mov %ecx, -32(%ebp)
487   movl $0, -28(%ebp)
488   mov 20(%ebp), %ecx
489   mov %ecx, -24(%ebp)
490   movl $0, -20(%ebp)
491   mov 24(%ebp), %ecx
492   mov %ecx, -16(%ebp)
493   mov 28(%ebp), %ecx
494   mov %ecx, -8(%ebp)
495   movl $0, -4(%ebp)
496   mov $21, %eax
497   mov %ebp, %ecx
498   sub $40, %ecx
499   int $0x80
500   test %eax, %eax
501   jnz 1f
502   mov 32(%ebp), %ecx
503   mov -40(%ebp), %edx
504   mov %edx, 0(%ecx)
505 1:
506   pop %ebp
507   ret
508 END(cloudabi_sys_file_open)
509
510 ENTRY(cloudabi_sys_file_readdir)
511   push %ebp
512   mov %esp, %ebp
513   mov 8(%ebp), %ecx
514   mov %ecx, -32(%ebp)
515   mov 12(%ebp), %ecx
516   mov %ecx, -24(%ebp)
517   movl $0, -20(%ebp)
518   mov 16(%ebp), %ecx
519   mov %ecx, -16(%ebp)
520   movl $0, -12(%ebp)
521   mov 20(%ebp), %ecx
522   mov %ecx, -8(%ebp)
523   mov 24(%ebp), %ecx
524   mov %ecx, -4(%ebp)
525   mov $22, %eax
526   mov %ebp, %ecx
527   sub $32, %ecx
528   int $0x80
529   test %eax, %eax
530   jnz 1f
531   mov 28(%ebp), %ecx
532   mov -32(%ebp), %edx
533   mov %edx, 0(%ecx)
534 1:
535   pop %ebp
536   ret
537 END(cloudabi_sys_file_readdir)
538
539 ENTRY(cloudabi_sys_file_readlink)
540   push %ebp
541   mov %esp, %ebp
542   mov 8(%ebp), %ecx
543   mov %ecx, -40(%ebp)
544   mov 12(%ebp), %ecx
545   mov %ecx, -32(%ebp)
546   movl $0, -28(%ebp)
547   mov 16(%ebp), %ecx
548   mov %ecx, -24(%ebp)
549   movl $0, -20(%ebp)
550   mov 20(%ebp), %ecx
551   mov %ecx, -16(%ebp)
552   movl $0, -12(%ebp)
553   mov 24(%ebp), %ecx
554   mov %ecx, -8(%ebp)
555   movl $0, -4(%ebp)
556   mov $23, %eax
557   mov %ebp, %ecx
558   sub $40, %ecx
559   int $0x80
560   test %eax, %eax
561   jnz 1f
562   mov 28(%ebp), %ecx
563   mov -40(%ebp), %edx
564   mov %edx, 0(%ecx)
565 1:
566   pop %ebp
567   ret
568 END(cloudabi_sys_file_readlink)
569
570 ENTRY(cloudabi_sys_file_rename)
571   push %ebp
572   mov %esp, %ebp
573   mov 8(%ebp), %ecx
574   mov %ecx, -48(%ebp)
575   mov 12(%ebp), %ecx
576   mov %ecx, -40(%ebp)
577   movl $0, -36(%ebp)
578   mov 16(%ebp), %ecx
579   mov %ecx, -32(%ebp)
580   movl $0, -28(%ebp)
581   mov 20(%ebp), %ecx
582   mov %ecx, -24(%ebp)
583   mov 24(%ebp), %ecx
584   mov %ecx, -16(%ebp)
585   movl $0, -12(%ebp)
586   mov 28(%ebp), %ecx
587   mov %ecx, -8(%ebp)
588   movl $0, -4(%ebp)
589   mov $24, %eax
590   mov %ebp, %ecx
591   sub $48, %ecx
592   int $0x80
593   pop %ebp
594   ret
595 END(cloudabi_sys_file_rename)
596
597 ENTRY(cloudabi_sys_file_stat_fget)
598   push %ebp
599   mov %esp, %ebp
600   mov 8(%ebp), %ecx
601   mov %ecx, -16(%ebp)
602   mov 12(%ebp), %ecx
603   mov %ecx, -8(%ebp)
604   movl $0, -4(%ebp)
605   mov $25, %eax
606   mov %ebp, %ecx
607   sub $16, %ecx
608   int $0x80
609   pop %ebp
610   ret
611 END(cloudabi_sys_file_stat_fget)
612
613 ENTRY(cloudabi_sys_file_stat_fput)
614   push %ebp
615   mov %esp, %ebp
616   mov 8(%ebp), %ecx
617   mov %ecx, -24(%ebp)
618   mov 12(%ebp), %ecx
619   mov %ecx, -16(%ebp)
620   movl $0, -12(%ebp)
621   mov 16(%ebp), %ecx
622   mov %ecx, -8(%ebp)
623   mov $26, %eax
624   mov %ebp, %ecx
625   sub $24, %ecx
626   int $0x80
627   pop %ebp
628   ret
629 END(cloudabi_sys_file_stat_fput)
630
631 ENTRY(cloudabi_sys_file_stat_get)
632   push %ebp
633   mov %esp, %ebp
634   mov 8(%ebp), %ecx
635   mov %ecx, -32(%ebp)
636   mov 12(%ebp), %ecx
637   mov %ecx, -28(%ebp)
638   mov 16(%ebp), %ecx
639   mov %ecx, -24(%ebp)
640   movl $0, -20(%ebp)
641   mov 20(%ebp), %ecx
642   mov %ecx, -16(%ebp)
643   movl $0, -12(%ebp)
644   mov 24(%ebp), %ecx
645   mov %ecx, -8(%ebp)
646   movl $0, -4(%ebp)
647   mov $27, %eax
648   mov %ebp, %ecx
649   sub $32, %ecx
650   int $0x80
651   pop %ebp
652   ret
653 END(cloudabi_sys_file_stat_get)
654
655 ENTRY(cloudabi_sys_file_stat_put)
656   push %ebp
657   mov %esp, %ebp
658   mov 8(%ebp), %ecx
659   mov %ecx, -40(%ebp)
660   mov 12(%ebp), %ecx
661   mov %ecx, -36(%ebp)
662   mov 16(%ebp), %ecx
663   mov %ecx, -32(%ebp)
664   movl $0, -28(%ebp)
665   mov 20(%ebp), %ecx
666   mov %ecx, -24(%ebp)
667   movl $0, -20(%ebp)
668   mov 24(%ebp), %ecx
669   mov %ecx, -16(%ebp)
670   movl $0, -12(%ebp)
671   mov 28(%ebp), %ecx
672   mov %ecx, -8(%ebp)
673   mov $28, %eax
674   mov %ebp, %ecx
675   sub $40, %ecx
676   int $0x80
677   pop %ebp
678   ret
679 END(cloudabi_sys_file_stat_put)
680
681 ENTRY(cloudabi_sys_file_symlink)
682   push %ebp
683   mov %esp, %ebp
684   mov 8(%ebp), %ecx
685   mov %ecx, -40(%ebp)
686   movl $0, -36(%ebp)
687   mov 12(%ebp), %ecx
688   mov %ecx, -32(%ebp)
689   movl $0, -28(%ebp)
690   mov 16(%ebp), %ecx
691   mov %ecx, -24(%ebp)
692   mov 20(%ebp), %ecx
693   mov %ecx, -16(%ebp)
694   movl $0, -12(%ebp)
695   mov 24(%ebp), %ecx
696   mov %ecx, -8(%ebp)
697   movl $0, -4(%ebp)
698   mov $29, %eax
699   mov %ebp, %ecx
700   sub $40, %ecx
701   int $0x80
702   pop %ebp
703   ret
704 END(cloudabi_sys_file_symlink)
705
706 ENTRY(cloudabi_sys_file_unlink)
707   push %ebp
708   mov %esp, %ebp
709   mov 8(%ebp), %ecx
710   mov %ecx, -32(%ebp)
711   mov 12(%ebp), %ecx
712   mov %ecx, -24(%ebp)
713   movl $0, -20(%ebp)
714   mov 16(%ebp), %ecx
715   mov %ecx, -16(%ebp)
716   movl $0, -12(%ebp)
717   mov 20(%ebp), %ecx
718   mov %ecx, -8(%ebp)
719   mov $30, %eax
720   mov %ebp, %ecx
721   sub $32, %ecx
722   int $0x80
723   pop %ebp
724   ret
725 END(cloudabi_sys_file_unlink)
726
727 ENTRY(cloudabi_sys_lock_unlock)
728   push %ebp
729   mov %esp, %ebp
730   mov 8(%ebp), %ecx
731   mov %ecx, -16(%ebp)
732   movl $0, -12(%ebp)
733   mov 12(%ebp), %ecx
734   mov %ecx, -8(%ebp)
735   mov $31, %eax
736   mov %ebp, %ecx
737   sub $16, %ecx
738   int $0x80
739   pop %ebp
740   ret
741 END(cloudabi_sys_lock_unlock)
742
743 ENTRY(cloudabi_sys_mem_advise)
744   push %ebp
745   mov %esp, %ebp
746   mov 8(%ebp), %ecx
747   mov %ecx, -24(%ebp)
748   movl $0, -20(%ebp)
749   mov 12(%ebp), %ecx
750   mov %ecx, -16(%ebp)
751   movl $0, -12(%ebp)
752   mov 16(%ebp), %ecx
753   mov %ecx, -8(%ebp)
754   mov $32, %eax
755   mov %ebp, %ecx
756   sub $24, %ecx
757   int $0x80
758   pop %ebp
759   ret
760 END(cloudabi_sys_mem_advise)
761
762 ENTRY(cloudabi_sys_mem_map)
763   push %ebp
764   mov %esp, %ebp
765   mov 8(%ebp), %ecx
766   mov %ecx, -48(%ebp)
767   movl $0, -44(%ebp)
768   mov 12(%ebp), %ecx
769   mov %ecx, -40(%ebp)
770   movl $0, -36(%ebp)
771   mov 16(%ebp), %ecx
772   mov %ecx, -32(%ebp)
773   mov 20(%ebp), %ecx
774   mov %ecx, -24(%ebp)
775   mov 24(%ebp), %ecx
776   mov %ecx, -16(%ebp)
777   mov 28(%ebp), %ecx
778   mov %ecx, -8(%ebp)
779   mov 32(%ebp), %ecx
780   mov %ecx, -4(%ebp)
781   mov $33, %eax
782   mov %ebp, %ecx
783   sub $48, %ecx
784   int $0x80
785   test %eax, %eax
786   jnz 1f
787   mov 36(%ebp), %ecx
788   mov -48(%ebp), %edx
789   mov %edx, 0(%ecx)
790 1:
791   pop %ebp
792   ret
793 END(cloudabi_sys_mem_map)
794
795 ENTRY(cloudabi_sys_mem_protect)
796   push %ebp
797   mov %esp, %ebp
798   mov 8(%ebp), %ecx
799   mov %ecx, -24(%ebp)
800   movl $0, -20(%ebp)
801   mov 12(%ebp), %ecx
802   mov %ecx, -16(%ebp)
803   movl $0, -12(%ebp)
804   mov 16(%ebp), %ecx
805   mov %ecx, -8(%ebp)
806   mov $34, %eax
807   mov %ebp, %ecx
808   sub $24, %ecx
809   int $0x80
810   pop %ebp
811   ret
812 END(cloudabi_sys_mem_protect)
813
814 ENTRY(cloudabi_sys_mem_sync)
815   push %ebp
816   mov %esp, %ebp
817   mov 8(%ebp), %ecx
818   mov %ecx, -24(%ebp)
819   movl $0, -20(%ebp)
820   mov 12(%ebp), %ecx
821   mov %ecx, -16(%ebp)
822   movl $0, -12(%ebp)
823   mov 16(%ebp), %ecx
824   mov %ecx, -8(%ebp)
825   mov $35, %eax
826   mov %ebp, %ecx
827   sub $24, %ecx
828   int $0x80
829   pop %ebp
830   ret
831 END(cloudabi_sys_mem_sync)
832
833 ENTRY(cloudabi_sys_mem_unmap)
834   push %ebp
835   mov %esp, %ebp
836   mov 8(%ebp), %ecx
837   mov %ecx, -16(%ebp)
838   movl $0, -12(%ebp)
839   mov 12(%ebp), %ecx
840   mov %ecx, -8(%ebp)
841   movl $0, -4(%ebp)
842   mov $36, %eax
843   mov %ebp, %ecx
844   sub $16, %ecx
845   int $0x80
846   pop %ebp
847   ret
848 END(cloudabi_sys_mem_unmap)
849
850 ENTRY(cloudabi_sys_poll)
851   push %ebp
852   mov %esp, %ebp
853   mov 8(%ebp), %ecx
854   mov %ecx, -24(%ebp)
855   movl $0, -20(%ebp)
856   mov 12(%ebp), %ecx
857   mov %ecx, -16(%ebp)
858   movl $0, -12(%ebp)
859   mov 16(%ebp), %ecx
860   mov %ecx, -8(%ebp)
861   movl $0, -4(%ebp)
862   mov $37, %eax
863   mov %ebp, %ecx
864   sub $24, %ecx
865   int $0x80
866   test %eax, %eax
867   jnz 1f
868   mov 20(%ebp), %ecx
869   mov -24(%ebp), %edx
870   mov %edx, 0(%ecx)
871 1:
872   pop %ebp
873   ret
874 END(cloudabi_sys_poll)
875
876 ENTRY(cloudabi_sys_proc_exec)
877   push %ebp
878   mov %esp, %ebp
879   mov 8(%ebp), %ecx
880   mov %ecx, -40(%ebp)
881   mov 12(%ebp), %ecx
882   mov %ecx, -32(%ebp)
883   movl $0, -28(%ebp)
884   mov 16(%ebp), %ecx
885   mov %ecx, -24(%ebp)
886   movl $0, -20(%ebp)
887   mov 20(%ebp), %ecx
888   mov %ecx, -16(%ebp)
889   movl $0, -12(%ebp)
890   mov 24(%ebp), %ecx
891   mov %ecx, -8(%ebp)
892   movl $0, -4(%ebp)
893   mov $38, %eax
894   mov %ebp, %ecx
895   sub $40, %ecx
896   int $0x80
897   pop %ebp
898   ret
899 END(cloudabi_sys_proc_exec)
900
901 ENTRY(cloudabi_sys_proc_exit)
902   push %ebp
903   mov %esp, %ebp
904   mov 8(%ebp), %ecx
905   mov %ecx, -16(%ebp)
906   mov $39, %eax
907   mov %ebp, %ecx
908   sub $16, %ecx
909   int $0x80
910 END(cloudabi_sys_proc_exit)
911
912 ENTRY(cloudabi_sys_proc_fork)
913   push %ebp
914   mov %esp, %ebp
915   mov $40, %eax
916   mov %ebp, %ecx
917   sub $16, %ecx
918   int $0x80
919   test %eax, %eax
920   jnz 1f
921   mov 8(%ebp), %ecx
922   mov -16(%ebp), %edx
923   mov %edx, 0(%ecx)
924   mov 12(%ebp), %ecx
925   mov -8(%ebp), %edx
926   mov %edx, 0(%ecx)
927 1:
928   pop %ebp
929   ret
930 END(cloudabi_sys_proc_fork)
931
932 ENTRY(cloudabi_sys_proc_raise)
933   push %ebp
934   mov %esp, %ebp
935   mov 8(%ebp), %ecx
936   mov %ecx, -16(%ebp)
937   mov $41, %eax
938   mov %ebp, %ecx
939   sub $16, %ecx
940   int $0x80
941   pop %ebp
942   ret
943 END(cloudabi_sys_proc_raise)
944
945 ENTRY(cloudabi_sys_random_get)
946   push %ebp
947   mov %esp, %ebp
948   mov 8(%ebp), %ecx
949   mov %ecx, -16(%ebp)
950   movl $0, -12(%ebp)
951   mov 12(%ebp), %ecx
952   mov %ecx, -8(%ebp)
953   movl $0, -4(%ebp)
954   mov $42, %eax
955   mov %ebp, %ecx
956   sub $16, %ecx
957   int $0x80
958   pop %ebp
959   ret
960 END(cloudabi_sys_random_get)
961
962 ENTRY(cloudabi_sys_sock_recv)
963   push %ebp
964   mov %esp, %ebp
965   mov 8(%ebp), %ecx
966   mov %ecx, -24(%ebp)
967   mov 12(%ebp), %ecx
968   mov %ecx, -16(%ebp)
969   movl $0, -12(%ebp)
970   mov 16(%ebp), %ecx
971   mov %ecx, -8(%ebp)
972   movl $0, -4(%ebp)
973   mov $43, %eax
974   mov %ebp, %ecx
975   sub $24, %ecx
976   int $0x80
977   pop %ebp
978   ret
979 END(cloudabi_sys_sock_recv)
980
981 ENTRY(cloudabi_sys_sock_send)
982   push %ebp
983   mov %esp, %ebp
984   mov 8(%ebp), %ecx
985   mov %ecx, -24(%ebp)
986   mov 12(%ebp), %ecx
987   mov %ecx, -16(%ebp)
988   movl $0, -12(%ebp)
989   mov 16(%ebp), %ecx
990   mov %ecx, -8(%ebp)
991   movl $0, -4(%ebp)
992   mov $44, %eax
993   mov %ebp, %ecx
994   sub $24, %ecx
995   int $0x80
996   pop %ebp
997   ret
998 END(cloudabi_sys_sock_send)
999
1000 ENTRY(cloudabi_sys_sock_shutdown)
1001   push %ebp
1002   mov %esp, %ebp
1003   mov 8(%ebp), %ecx
1004   mov %ecx, -16(%ebp)
1005   mov 12(%ebp), %ecx
1006   mov %ecx, -8(%ebp)
1007   mov $45, %eax
1008   mov %ebp, %ecx
1009   sub $16, %ecx
1010   int $0x80
1011   pop %ebp
1012   ret
1013 END(cloudabi_sys_sock_shutdown)
1014
1015 ENTRY(cloudabi_sys_thread_create)
1016   push %ebp
1017   mov %esp, %ebp
1018   mov 8(%ebp), %ecx
1019   mov %ecx, -16(%ebp)
1020   movl $0, -12(%ebp)
1021   mov $46, %eax
1022   mov %ebp, %ecx
1023   sub $16, %ecx
1024   int $0x80
1025   test %eax, %eax
1026   jnz 1f
1027   mov 12(%ebp), %ecx
1028   mov -16(%ebp), %edx
1029   mov %edx, 0(%ecx)
1030 1:
1031   pop %ebp
1032   ret
1033 END(cloudabi_sys_thread_create)
1034
1035 ENTRY(cloudabi_sys_thread_exit)
1036   push %ebp
1037   mov %esp, %ebp
1038   mov 8(%ebp), %ecx
1039   mov %ecx, -16(%ebp)
1040   movl $0, -12(%ebp)
1041   mov 12(%ebp), %ecx
1042   mov %ecx, -8(%ebp)
1043   mov $47, %eax
1044   mov %ebp, %ecx
1045   sub $16, %ecx
1046   int $0x80
1047 END(cloudabi_sys_thread_exit)
1048
1049 ENTRY(cloudabi_sys_thread_yield)
1050   push %ebp
1051   mov %esp, %ebp
1052   mov $48, %eax
1053   mov %ebp, %ecx
1054   sub $16, %ecx
1055   int $0x80
1056   pop %ebp
1057   ret
1058 END(cloudabi_sys_thread_yield)