xref: /freebsd-13-stable/sys/contrib/cloudabi/cloudabi_vdso_i686_on_64bit.S (revision c2c014f24c10f90d85126ac5fbd4d8524de32b1c)
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; \
33name:
34
35#define END(name) .size name, . - name
36
37ENTRY(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)
531:
54  pop %ebp
55  ret
56END(cloudabi_sys_clock_res_get)
57
58ENTRY(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)
781:
79  pop %ebp
80  ret
81END(cloudabi_sys_clock_time_get)
82
83ENTRY(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
99END(cloudabi_sys_condvar_signal)
100
101ENTRY(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
112END(cloudabi_sys_fd_close)
113
114ENTRY(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)
1281:
129  pop %ebp
130  ret
131END(cloudabi_sys_fd_create1)
132
133ENTRY(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)
1501:
151  pop %ebp
152  ret
153END(cloudabi_sys_fd_create2)
154
155ENTRY(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
166END(cloudabi_sys_fd_datasync)
167
168ENTRY(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)
1821:
183  pop %ebp
184  ret
185END(cloudabi_sys_fd_dup)
186
187ENTRY(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)
2111:
212  pop %ebp
213  ret
214END(cloudabi_sys_fd_pread)
215
216ENTRY(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)
2401:
241  pop %ebp
242  ret
243END(cloudabi_sys_fd_pwrite)
244
245ENTRY(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)
2651:
266  pop %ebp
267  ret
268END(cloudabi_sys_fd_read)
269
270ENTRY(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
283END(cloudabi_sys_fd_replace)
284
285ENTRY(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)
3071:
308  pop %ebp
309  ret
310END(cloudabi_sys_fd_seek)
311
312ENTRY(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
326END(cloudabi_sys_fd_stat_get)
327
328ENTRY(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
344END(cloudabi_sys_fd_stat_put)
345
346ENTRY(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
357END(cloudabi_sys_fd_sync)
358
359ENTRY(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)
3791:
380  pop %ebp
381  ret
382END(cloudabi_sys_fd_write)
383
384ENTRY(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
405END(cloudabi_sys_file_advise)
406
407ENTRY(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
426END(cloudabi_sys_file_allocate)
427
428ENTRY(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
447END(cloudabi_sys_file_create)
448
449ENTRY(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
476END(cloudabi_sys_file_link)
477
478ENTRY(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)
5051:
506  pop %ebp
507  ret
508END(cloudabi_sys_file_open)
509
510ENTRY(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)
5341:
535  pop %ebp
536  ret
537END(cloudabi_sys_file_readdir)
538
539ENTRY(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)
5651:
566  pop %ebp
567  ret
568END(cloudabi_sys_file_readlink)
569
570ENTRY(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
595END(cloudabi_sys_file_rename)
596
597ENTRY(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
611END(cloudabi_sys_file_stat_fget)
612
613ENTRY(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
629END(cloudabi_sys_file_stat_fput)
630
631ENTRY(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
653END(cloudabi_sys_file_stat_get)
654
655ENTRY(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
679END(cloudabi_sys_file_stat_put)
680
681ENTRY(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
704END(cloudabi_sys_file_symlink)
705
706ENTRY(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
725END(cloudabi_sys_file_unlink)
726
727ENTRY(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
741END(cloudabi_sys_lock_unlock)
742
743ENTRY(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
760END(cloudabi_sys_mem_advise)
761
762ENTRY(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)
7901:
791  pop %ebp
792  ret
793END(cloudabi_sys_mem_map)
794
795ENTRY(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
812END(cloudabi_sys_mem_protect)
813
814ENTRY(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
831END(cloudabi_sys_mem_sync)
832
833ENTRY(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
848END(cloudabi_sys_mem_unmap)
849
850ENTRY(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)
8711:
872  pop %ebp
873  ret
874END(cloudabi_sys_poll)
875
876ENTRY(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
899END(cloudabi_sys_proc_exec)
900
901ENTRY(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
910END(cloudabi_sys_proc_exit)
911
912ENTRY(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)
9271:
928  pop %ebp
929  ret
930END(cloudabi_sys_proc_fork)
931
932ENTRY(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
943END(cloudabi_sys_proc_raise)
944
945ENTRY(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
960END(cloudabi_sys_random_get)
961
962ENTRY(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
979END(cloudabi_sys_sock_recv)
980
981ENTRY(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
998END(cloudabi_sys_sock_send)
999
1000ENTRY(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
1013END(cloudabi_sys_sock_shutdown)
1014
1015ENTRY(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)
10301:
1031  pop %ebp
1032  ret
1033END(cloudabi_sys_thread_create)
1034
1035ENTRY(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
1047END(cloudabi_sys_thread_exit)
1048
1049ENTRY(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
1058END(cloudabi_sys_thread_yield)
1059