]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/contrib/cloudabi/cloudabi_vdso_i686_on_64bit.S
MFhead @ r304815
[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_lock)
763   push %ebp
764   mov %esp, %ebp
765   mov 8(%ebp), %ecx
766   mov %ecx, -16(%ebp)
767   movl $0, -12(%ebp)
768   mov 12(%ebp), %ecx
769   mov %ecx, -8(%ebp)
770   movl $0, -4(%ebp)
771   mov $33, %eax
772   mov %ebp, %ecx
773   sub $16, %ecx
774   int $0x80
775   pop %ebp
776   ret
777 END(cloudabi_sys_mem_lock)
778
779 ENTRY(cloudabi_sys_mem_map)
780   push %ebp
781   mov %esp, %ebp
782   mov 8(%ebp), %ecx
783   mov %ecx, -48(%ebp)
784   movl $0, -44(%ebp)
785   mov 12(%ebp), %ecx
786   mov %ecx, -40(%ebp)
787   movl $0, -36(%ebp)
788   mov 16(%ebp), %ecx
789   mov %ecx, -32(%ebp)
790   mov 20(%ebp), %ecx
791   mov %ecx, -24(%ebp)
792   mov 24(%ebp), %ecx
793   mov %ecx, -16(%ebp)
794   mov 28(%ebp), %ecx
795   mov %ecx, -8(%ebp)
796   mov 32(%ebp), %ecx
797   mov %ecx, -4(%ebp)
798   mov $34, %eax
799   mov %ebp, %ecx
800   sub $48, %ecx
801   int $0x80
802   test %eax, %eax
803   jnz 1f
804   mov 36(%ebp), %ecx
805   mov -48(%ebp), %edx
806   mov %edx, 0(%ecx)
807 1:
808   pop %ebp
809   ret
810 END(cloudabi_sys_mem_map)
811
812 ENTRY(cloudabi_sys_mem_protect)
813   push %ebp
814   mov %esp, %ebp
815   mov 8(%ebp), %ecx
816   mov %ecx, -24(%ebp)
817   movl $0, -20(%ebp)
818   mov 12(%ebp), %ecx
819   mov %ecx, -16(%ebp)
820   movl $0, -12(%ebp)
821   mov 16(%ebp), %ecx
822   mov %ecx, -8(%ebp)
823   mov $35, %eax
824   mov %ebp, %ecx
825   sub $24, %ecx
826   int $0x80
827   pop %ebp
828   ret
829 END(cloudabi_sys_mem_protect)
830
831 ENTRY(cloudabi_sys_mem_sync)
832   push %ebp
833   mov %esp, %ebp
834   mov 8(%ebp), %ecx
835   mov %ecx, -24(%ebp)
836   movl $0, -20(%ebp)
837   mov 12(%ebp), %ecx
838   mov %ecx, -16(%ebp)
839   movl $0, -12(%ebp)
840   mov 16(%ebp), %ecx
841   mov %ecx, -8(%ebp)
842   mov $36, %eax
843   mov %ebp, %ecx
844   sub $24, %ecx
845   int $0x80
846   pop %ebp
847   ret
848 END(cloudabi_sys_mem_sync)
849
850 ENTRY(cloudabi_sys_mem_unlock)
851   push %ebp
852   mov %esp, %ebp
853   mov 8(%ebp), %ecx
854   mov %ecx, -16(%ebp)
855   movl $0, -12(%ebp)
856   mov 12(%ebp), %ecx
857   mov %ecx, -8(%ebp)
858   movl $0, -4(%ebp)
859   mov $37, %eax
860   mov %ebp, %ecx
861   sub $16, %ecx
862   int $0x80
863   pop %ebp
864   ret
865 END(cloudabi_sys_mem_unlock)
866
867 ENTRY(cloudabi_sys_mem_unmap)
868   push %ebp
869   mov %esp, %ebp
870   mov 8(%ebp), %ecx
871   mov %ecx, -16(%ebp)
872   movl $0, -12(%ebp)
873   mov 12(%ebp), %ecx
874   mov %ecx, -8(%ebp)
875   movl $0, -4(%ebp)
876   mov $38, %eax
877   mov %ebp, %ecx
878   sub $16, %ecx
879   int $0x80
880   pop %ebp
881   ret
882 END(cloudabi_sys_mem_unmap)
883
884 ENTRY(cloudabi_sys_poll)
885   push %ebp
886   mov %esp, %ebp
887   mov 8(%ebp), %ecx
888   mov %ecx, -24(%ebp)
889   movl $0, -20(%ebp)
890   mov 12(%ebp), %ecx
891   mov %ecx, -16(%ebp)
892   movl $0, -12(%ebp)
893   mov 16(%ebp), %ecx
894   mov %ecx, -8(%ebp)
895   movl $0, -4(%ebp)
896   mov $39, %eax
897   mov %ebp, %ecx
898   sub $24, %ecx
899   int $0x80
900   test %eax, %eax
901   jnz 1f
902   mov 20(%ebp), %ecx
903   mov -24(%ebp), %edx
904   mov %edx, 0(%ecx)
905 1:
906   pop %ebp
907   ret
908 END(cloudabi_sys_poll)
909
910 ENTRY(cloudabi_sys_poll_fd)
911   push %ebp
912   mov %esp, %ebp
913   mov 8(%ebp), %ecx
914   mov %ecx, -48(%ebp)
915   mov 12(%ebp), %ecx
916   mov %ecx, -40(%ebp)
917   movl $0, -36(%ebp)
918   mov 16(%ebp), %ecx
919   mov %ecx, -32(%ebp)
920   movl $0, -28(%ebp)
921   mov 20(%ebp), %ecx
922   mov %ecx, -24(%ebp)
923   movl $0, -20(%ebp)
924   mov 24(%ebp), %ecx
925   mov %ecx, -16(%ebp)
926   movl $0, -12(%ebp)
927   mov 28(%ebp), %ecx
928   mov %ecx, -8(%ebp)
929   movl $0, -4(%ebp)
930   mov $40, %eax
931   mov %ebp, %ecx
932   sub $48, %ecx
933   int $0x80
934   test %eax, %eax
935   jnz 1f
936   mov 32(%ebp), %ecx
937   mov -48(%ebp), %edx
938   mov %edx, 0(%ecx)
939 1:
940   pop %ebp
941   ret
942 END(cloudabi_sys_poll_fd)
943
944 ENTRY(cloudabi_sys_proc_exec)
945   push %ebp
946   mov %esp, %ebp
947   mov 8(%ebp), %ecx
948   mov %ecx, -40(%ebp)
949   mov 12(%ebp), %ecx
950   mov %ecx, -32(%ebp)
951   movl $0, -28(%ebp)
952   mov 16(%ebp), %ecx
953   mov %ecx, -24(%ebp)
954   movl $0, -20(%ebp)
955   mov 20(%ebp), %ecx
956   mov %ecx, -16(%ebp)
957   movl $0, -12(%ebp)
958   mov 24(%ebp), %ecx
959   mov %ecx, -8(%ebp)
960   movl $0, -4(%ebp)
961   mov $41, %eax
962   mov %ebp, %ecx
963   sub $40, %ecx
964   int $0x80
965   pop %ebp
966   ret
967 END(cloudabi_sys_proc_exec)
968
969 ENTRY(cloudabi_sys_proc_exit)
970   push %ebp
971   mov %esp, %ebp
972   mov 8(%ebp), %ecx
973   mov %ecx, -16(%ebp)
974   mov $42, %eax
975   mov %ebp, %ecx
976   sub $16, %ecx
977   int $0x80
978 END(cloudabi_sys_proc_exit)
979
980 ENTRY(cloudabi_sys_proc_fork)
981   push %ebp
982   mov %esp, %ebp
983   mov $43, %eax
984   mov %ebp, %ecx
985   sub $16, %ecx
986   int $0x80
987   test %eax, %eax
988   jnz 1f
989   mov 8(%ebp), %ecx
990   mov -16(%ebp), %edx
991   mov %edx, 0(%ecx)
992   mov 12(%ebp), %ecx
993   mov -8(%ebp), %edx
994   mov %edx, 0(%ecx)
995 1:
996   pop %ebp
997   ret
998 END(cloudabi_sys_proc_fork)
999
1000 ENTRY(cloudabi_sys_proc_raise)
1001   push %ebp
1002   mov %esp, %ebp
1003   mov 8(%ebp), %ecx
1004   mov %ecx, -16(%ebp)
1005   mov $44, %eax
1006   mov %ebp, %ecx
1007   sub $16, %ecx
1008   int $0x80
1009   pop %ebp
1010   ret
1011 END(cloudabi_sys_proc_raise)
1012
1013 ENTRY(cloudabi_sys_random_get)
1014   push %ebp
1015   mov %esp, %ebp
1016   mov 8(%ebp), %ecx
1017   mov %ecx, -16(%ebp)
1018   movl $0, -12(%ebp)
1019   mov 12(%ebp), %ecx
1020   mov %ecx, -8(%ebp)
1021   movl $0, -4(%ebp)
1022   mov $45, %eax
1023   mov %ebp, %ecx
1024   sub $16, %ecx
1025   int $0x80
1026   pop %ebp
1027   ret
1028 END(cloudabi_sys_random_get)
1029
1030 ENTRY(cloudabi_sys_sock_accept)
1031   push %ebp
1032   mov %esp, %ebp
1033   mov 8(%ebp), %ecx
1034   mov %ecx, -16(%ebp)
1035   mov 12(%ebp), %ecx
1036   mov %ecx, -8(%ebp)
1037   movl $0, -4(%ebp)
1038   mov $46, %eax
1039   mov %ebp, %ecx
1040   sub $16, %ecx
1041   int $0x80
1042   test %eax, %eax
1043   jnz 1f
1044   mov 16(%ebp), %ecx
1045   mov -16(%ebp), %edx
1046   mov %edx, 0(%ecx)
1047 1:
1048   pop %ebp
1049   ret
1050 END(cloudabi_sys_sock_accept)
1051
1052 ENTRY(cloudabi_sys_sock_bind)
1053   push %ebp
1054   mov %esp, %ebp
1055   mov 8(%ebp), %ecx
1056   mov %ecx, -32(%ebp)
1057   mov 12(%ebp), %ecx
1058   mov %ecx, -24(%ebp)
1059   mov 16(%ebp), %ecx
1060   mov %ecx, -16(%ebp)
1061   movl $0, -12(%ebp)
1062   mov 20(%ebp), %ecx
1063   mov %ecx, -8(%ebp)
1064   movl $0, -4(%ebp)
1065   mov $47, %eax
1066   mov %ebp, %ecx
1067   sub $32, %ecx
1068   int $0x80
1069   pop %ebp
1070   ret
1071 END(cloudabi_sys_sock_bind)
1072
1073 ENTRY(cloudabi_sys_sock_connect)
1074   push %ebp
1075   mov %esp, %ebp
1076   mov 8(%ebp), %ecx
1077   mov %ecx, -32(%ebp)
1078   mov 12(%ebp), %ecx
1079   mov %ecx, -24(%ebp)
1080   mov 16(%ebp), %ecx
1081   mov %ecx, -16(%ebp)
1082   movl $0, -12(%ebp)
1083   mov 20(%ebp), %ecx
1084   mov %ecx, -8(%ebp)
1085   movl $0, -4(%ebp)
1086   mov $48, %eax
1087   mov %ebp, %ecx
1088   sub $32, %ecx
1089   int $0x80
1090   pop %ebp
1091   ret
1092 END(cloudabi_sys_sock_connect)
1093
1094 ENTRY(cloudabi_sys_sock_listen)
1095   push %ebp
1096   mov %esp, %ebp
1097   mov 8(%ebp), %ecx
1098   mov %ecx, -16(%ebp)
1099   mov 12(%ebp), %ecx
1100   mov %ecx, -8(%ebp)
1101   mov $49, %eax
1102   mov %ebp, %ecx
1103   sub $16, %ecx
1104   int $0x80
1105   pop %ebp
1106   ret
1107 END(cloudabi_sys_sock_listen)
1108
1109 ENTRY(cloudabi_sys_sock_recv)
1110   push %ebp
1111   mov %esp, %ebp
1112   mov 8(%ebp), %ecx
1113   mov %ecx, -24(%ebp)
1114   mov 12(%ebp), %ecx
1115   mov %ecx, -16(%ebp)
1116   movl $0, -12(%ebp)
1117   mov 16(%ebp), %ecx
1118   mov %ecx, -8(%ebp)
1119   movl $0, -4(%ebp)
1120   mov $50, %eax
1121   mov %ebp, %ecx
1122   sub $24, %ecx
1123   int $0x80
1124   pop %ebp
1125   ret
1126 END(cloudabi_sys_sock_recv)
1127
1128 ENTRY(cloudabi_sys_sock_send)
1129   push %ebp
1130   mov %esp, %ebp
1131   mov 8(%ebp), %ecx
1132   mov %ecx, -24(%ebp)
1133   mov 12(%ebp), %ecx
1134   mov %ecx, -16(%ebp)
1135   movl $0, -12(%ebp)
1136   mov 16(%ebp), %ecx
1137   mov %ecx, -8(%ebp)
1138   movl $0, -4(%ebp)
1139   mov $51, %eax
1140   mov %ebp, %ecx
1141   sub $24, %ecx
1142   int $0x80
1143   pop %ebp
1144   ret
1145 END(cloudabi_sys_sock_send)
1146
1147 ENTRY(cloudabi_sys_sock_shutdown)
1148   push %ebp
1149   mov %esp, %ebp
1150   mov 8(%ebp), %ecx
1151   mov %ecx, -16(%ebp)
1152   mov 12(%ebp), %ecx
1153   mov %ecx, -8(%ebp)
1154   mov $52, %eax
1155   mov %ebp, %ecx
1156   sub $16, %ecx
1157   int $0x80
1158   pop %ebp
1159   ret
1160 END(cloudabi_sys_sock_shutdown)
1161
1162 ENTRY(cloudabi_sys_sock_stat_get)
1163   push %ebp
1164   mov %esp, %ebp
1165   mov 8(%ebp), %ecx
1166   mov %ecx, -24(%ebp)
1167   mov 12(%ebp), %ecx
1168   mov %ecx, -16(%ebp)
1169   movl $0, -12(%ebp)
1170   mov 16(%ebp), %ecx
1171   mov %ecx, -8(%ebp)
1172   mov $53, %eax
1173   mov %ebp, %ecx
1174   sub $24, %ecx
1175   int $0x80
1176   pop %ebp
1177   ret
1178 END(cloudabi_sys_sock_stat_get)
1179
1180 ENTRY(cloudabi_sys_thread_create)
1181   push %ebp
1182   mov %esp, %ebp
1183   mov 8(%ebp), %ecx
1184   mov %ecx, -16(%ebp)
1185   movl $0, -12(%ebp)
1186   mov $54, %eax
1187   mov %ebp, %ecx
1188   sub $16, %ecx
1189   int $0x80
1190   test %eax, %eax
1191   jnz 1f
1192   mov 12(%ebp), %ecx
1193   mov -16(%ebp), %edx
1194   mov %edx, 0(%ecx)
1195 1:
1196   pop %ebp
1197   ret
1198 END(cloudabi_sys_thread_create)
1199
1200 ENTRY(cloudabi_sys_thread_exit)
1201   push %ebp
1202   mov %esp, %ebp
1203   mov 8(%ebp), %ecx
1204   mov %ecx, -16(%ebp)
1205   movl $0, -12(%ebp)
1206   mov 12(%ebp), %ecx
1207   mov %ecx, -8(%ebp)
1208   mov $55, %eax
1209   mov %ebp, %ecx
1210   sub $16, %ecx
1211   int $0x80
1212 END(cloudabi_sys_thread_exit)
1213
1214 ENTRY(cloudabi_sys_thread_yield)
1215   push %ebp
1216   mov %esp, %ebp
1217   mov $56, %eax
1218   mov %ebp, %ecx
1219   sub $16, %ecx
1220   int $0x80
1221   pop %ebp
1222   ret
1223 END(cloudabi_sys_thread_yield)