Index: head/sys/contrib/cloudabi/cloudabi_vdso_armv6.S =================================================================== --- head/sys/contrib/cloudabi/cloudabi_vdso_armv6.S (revision 305986) +++ head/sys/contrib/cloudabi/cloudabi_vdso_armv6.S (revision 305987) @@ -1,489 +1,451 @@ // Copyright (c) 2016 Nuxi (https://nuxi.nl/) and contributors. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: // 1. Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // 2. Redistributions in binary form must reproduce the above copyright // notice, this list of conditions and the following disclaimer in the // documentation and/or other materials provided with the distribution. // // THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE // ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // // This file is automatically generated. Do not edit. // // Source: https://github.com/NuxiNL/cloudabi #define ENTRY(name) \ .text; \ .p2align 2; \ .global name; \ .type name, %function; \ name: #define END(name) .size name, . - name ENTRY(cloudabi_sys_clock_res_get) str r1, [sp, #-4] mov ip, #0 swi 0 - ldr r2, [sp, #-4] - bcs 1f - str r0, [r2, 0] - str r1, [r2, 4] - mov r0, $0 -1: + ldrcc r2, [sp, #-4] + strcc r0, [r2, 0] + strcc r1, [r2, 4] + movcc r0, $0 bx lr END(cloudabi_sys_clock_res_get) ENTRY(cloudabi_sys_clock_time_get) mov ip, #1 swi 0 - bcs 1f - ldr r2, [sp, #0] - str r0, [r2, 0] - str r1, [r2, 4] - mov r0, $0 -1: + ldrcc r2, [sp, #0] + strcc r0, [r2, 0] + strcc r1, [r2, 4] + movcc r0, $0 bx lr END(cloudabi_sys_clock_time_get) ENTRY(cloudabi_sys_condvar_signal) mov ip, #2 swi 0 bx lr END(cloudabi_sys_condvar_signal) ENTRY(cloudabi_sys_fd_close) mov ip, #3 swi 0 bx lr END(cloudabi_sys_fd_close) ENTRY(cloudabi_sys_fd_create1) str r1, [sp, #-4] mov ip, #4 swi 0 - ldr r2, [sp, #-4] - bcs 1f - str r0, [r2] - mov r0, $0 -1: + ldrcc r2, [sp, #-4] + strcc r0, [r2] + movcc r0, $0 bx lr END(cloudabi_sys_fd_create1) ENTRY(cloudabi_sys_fd_create2) str r1, [sp, #-4] str r2, [sp, #-8] mov ip, #5 swi 0 - ldr r2, [sp, #-4] - ldr r3, [sp, #-8] - bcs 1f - str r0, [r2] - str r1, [r3] - mov r0, $0 -1: + ldrcc r2, [sp, #-4] + ldrcc r3, [sp, #-8] + strcc r0, [r2] + strcc r1, [r3] + movcc r0, $0 bx lr END(cloudabi_sys_fd_create2) ENTRY(cloudabi_sys_fd_datasync) mov ip, #6 swi 0 bx lr END(cloudabi_sys_fd_datasync) ENTRY(cloudabi_sys_fd_dup) str r1, [sp, #-4] mov ip, #7 swi 0 - ldr r2, [sp, #-4] - bcs 1f - str r0, [r2] - mov r0, $0 -1: + ldrcc r2, [sp, #-4] + strcc r0, [r2] + movcc r0, $0 bx lr END(cloudabi_sys_fd_dup) ENTRY(cloudabi_sys_fd_pread) mov ip, #8 swi 0 - bcs 1f - ldr r2, [sp, #8] - str r0, [r2] - mov r0, $0 -1: + ldrcc r2, [sp, #8] + strcc r0, [r2] + movcc r0, $0 bx lr END(cloudabi_sys_fd_pread) ENTRY(cloudabi_sys_fd_pwrite) mov ip, #9 swi 0 - bcs 1f - ldr r2, [sp, #8] - str r0, [r2] - mov r0, $0 -1: + ldrcc r2, [sp, #8] + strcc r0, [r2] + movcc r0, $0 bx lr END(cloudabi_sys_fd_pwrite) ENTRY(cloudabi_sys_fd_read) str r3, [sp, #-4] mov ip, #10 swi 0 - ldr r2, [sp, #-4] - bcs 1f - str r0, [r2] - mov r0, $0 -1: + ldrcc r2, [sp, #-4] + strcc r0, [r2] + movcc r0, $0 bx lr END(cloudabi_sys_fd_read) ENTRY(cloudabi_sys_fd_replace) mov ip, #11 swi 0 bx lr END(cloudabi_sys_fd_replace) ENTRY(cloudabi_sys_fd_seek) mov ip, #12 swi 0 - bcs 1f - ldr r2, [sp, #4] - str r0, [r2, 0] - str r1, [r2, 4] - mov r0, $0 -1: + ldrcc r2, [sp, #4] + strcc r0, [r2, 0] + strcc r1, [r2, 4] + movcc r0, $0 bx lr END(cloudabi_sys_fd_seek) ENTRY(cloudabi_sys_fd_stat_get) mov ip, #13 swi 0 bx lr END(cloudabi_sys_fd_stat_get) ENTRY(cloudabi_sys_fd_stat_put) mov ip, #14 swi 0 bx lr END(cloudabi_sys_fd_stat_put) ENTRY(cloudabi_sys_fd_sync) mov ip, #15 swi 0 bx lr END(cloudabi_sys_fd_sync) ENTRY(cloudabi_sys_fd_write) str r3, [sp, #-4] mov ip, #16 swi 0 - ldr r2, [sp, #-4] - bcs 1f - str r0, [r2] - mov r0, $0 -1: + ldrcc r2, [sp, #-4] + strcc r0, [r2] + movcc r0, $0 bx lr END(cloudabi_sys_fd_write) ENTRY(cloudabi_sys_file_advise) mov ip, #17 swi 0 bx lr END(cloudabi_sys_file_advise) ENTRY(cloudabi_sys_file_allocate) mov ip, #18 swi 0 bx lr END(cloudabi_sys_file_allocate) ENTRY(cloudabi_sys_file_create) mov ip, #19 swi 0 bx lr END(cloudabi_sys_file_create) ENTRY(cloudabi_sys_file_link) mov ip, #20 swi 0 bx lr END(cloudabi_sys_file_link) ENTRY(cloudabi_sys_file_open) mov ip, #21 swi 0 - bcs 1f - ldr r2, [sp, #8] - str r0, [r2] - mov r0, $0 -1: + ldrcc r2, [sp, #8] + strcc r0, [r2] + movcc r0, $0 bx lr END(cloudabi_sys_file_open) ENTRY(cloudabi_sys_file_readdir) mov ip, #22 swi 0 - bcs 1f - ldr r2, [sp, #8] - str r0, [r2] - mov r0, $0 -1: + ldrcc r2, [sp, #8] + strcc r0, [r2] + movcc r0, $0 bx lr END(cloudabi_sys_file_readdir) ENTRY(cloudabi_sys_file_readlink) mov ip, #23 swi 0 - bcs 1f - ldr r2, [sp, #4] - str r0, [r2] - mov r0, $0 -1: + ldrcc r2, [sp, #4] + strcc r0, [r2] + movcc r0, $0 bx lr END(cloudabi_sys_file_readlink) ENTRY(cloudabi_sys_file_rename) mov ip, #24 swi 0 bx lr END(cloudabi_sys_file_rename) ENTRY(cloudabi_sys_file_stat_fget) mov ip, #25 swi 0 bx lr END(cloudabi_sys_file_stat_fget) ENTRY(cloudabi_sys_file_stat_fput) mov ip, #26 swi 0 bx lr END(cloudabi_sys_file_stat_fput) ENTRY(cloudabi_sys_file_stat_get) mov ip, #27 swi 0 bx lr END(cloudabi_sys_file_stat_get) ENTRY(cloudabi_sys_file_stat_put) mov ip, #28 swi 0 bx lr END(cloudabi_sys_file_stat_put) ENTRY(cloudabi_sys_file_symlink) mov ip, #29 swi 0 bx lr END(cloudabi_sys_file_symlink) ENTRY(cloudabi_sys_file_unlink) mov ip, #30 swi 0 bx lr END(cloudabi_sys_file_unlink) ENTRY(cloudabi_sys_lock_unlock) mov ip, #31 swi 0 bx lr END(cloudabi_sys_lock_unlock) ENTRY(cloudabi_sys_mem_advise) mov ip, #32 swi 0 bx lr END(cloudabi_sys_mem_advise) ENTRY(cloudabi_sys_mem_lock) mov ip, #33 swi 0 bx lr END(cloudabi_sys_mem_lock) ENTRY(cloudabi_sys_mem_map) mov ip, #34 swi 0 - bcs 1f - ldr r2, [sp, #16] - str r0, [r2] - mov r0, $0 -1: + ldrcc r2, [sp, #16] + strcc r0, [r2] + movcc r0, $0 bx lr END(cloudabi_sys_mem_map) ENTRY(cloudabi_sys_mem_protect) mov ip, #35 swi 0 bx lr END(cloudabi_sys_mem_protect) ENTRY(cloudabi_sys_mem_sync) mov ip, #36 swi 0 bx lr END(cloudabi_sys_mem_sync) ENTRY(cloudabi_sys_mem_unlock) mov ip, #37 swi 0 bx lr END(cloudabi_sys_mem_unlock) ENTRY(cloudabi_sys_mem_unmap) mov ip, #38 swi 0 bx lr END(cloudabi_sys_mem_unmap) ENTRY(cloudabi_sys_poll) str r3, [sp, #-4] mov ip, #39 swi 0 - ldr r2, [sp, #-4] - bcs 1f - str r0, [r2] - mov r0, $0 -1: + ldrcc r2, [sp, #-4] + strcc r0, [r2] + movcc r0, $0 bx lr END(cloudabi_sys_poll) ENTRY(cloudabi_sys_poll_fd) mov ip, #40 swi 0 - bcs 1f - ldr r2, [sp, #8] - str r0, [r2] - mov r0, $0 -1: + ldrcc r2, [sp, #8] + strcc r0, [r2] + movcc r0, $0 bx lr END(cloudabi_sys_poll_fd) ENTRY(cloudabi_sys_proc_exec) mov ip, #41 swi 0 bx lr END(cloudabi_sys_proc_exec) ENTRY(cloudabi_sys_proc_exit) mov ip, #42 swi 0 END(cloudabi_sys_proc_exit) ENTRY(cloudabi_sys_proc_fork) str r0, [sp, #-4] str r1, [sp, #-8] mov ip, #43 swi 0 - ldr r2, [sp, #-4] - ldr r3, [sp, #-8] - bcs 1f - str r0, [r2] - str r1, [r3] - mov r0, $0 -1: + ldrcc r2, [sp, #-4] + ldrcc r3, [sp, #-8] + strcc r0, [r2] + strcc r1, [r3] + movcc r0, $0 bx lr END(cloudabi_sys_proc_fork) ENTRY(cloudabi_sys_proc_raise) mov ip, #44 swi 0 bx lr END(cloudabi_sys_proc_raise) ENTRY(cloudabi_sys_random_get) mov ip, #45 swi 0 bx lr END(cloudabi_sys_random_get) ENTRY(cloudabi_sys_sock_accept) str r2, [sp, #-4] mov ip, #46 swi 0 - ldr r2, [sp, #-4] - bcs 1f - str r0, [r2] - mov r0, $0 -1: + ldrcc r2, [sp, #-4] + strcc r0, [r2] + movcc r0, $0 bx lr END(cloudabi_sys_sock_accept) ENTRY(cloudabi_sys_sock_bind) mov ip, #47 swi 0 bx lr END(cloudabi_sys_sock_bind) ENTRY(cloudabi_sys_sock_connect) mov ip, #48 swi 0 bx lr END(cloudabi_sys_sock_connect) ENTRY(cloudabi_sys_sock_listen) mov ip, #49 swi 0 bx lr END(cloudabi_sys_sock_listen) ENTRY(cloudabi_sys_sock_recv) mov ip, #50 swi 0 bx lr END(cloudabi_sys_sock_recv) ENTRY(cloudabi_sys_sock_send) mov ip, #51 swi 0 bx lr END(cloudabi_sys_sock_send) ENTRY(cloudabi_sys_sock_shutdown) mov ip, #52 swi 0 bx lr END(cloudabi_sys_sock_shutdown) ENTRY(cloudabi_sys_sock_stat_get) mov ip, #53 swi 0 bx lr END(cloudabi_sys_sock_stat_get) ENTRY(cloudabi_sys_thread_create) str r1, [sp, #-4] mov ip, #54 swi 0 - ldr r2, [sp, #-4] - bcs 1f - str r0, [r2] - mov r0, $0 -1: + ldrcc r2, [sp, #-4] + strcc r0, [r2] + movcc r0, $0 bx lr END(cloudabi_sys_thread_create) ENTRY(cloudabi_sys_thread_exit) mov ip, #55 swi 0 END(cloudabi_sys_thread_exit) ENTRY(cloudabi_sys_thread_yield) mov ip, #56 swi 0 bx lr END(cloudabi_sys_thread_yield) Index: head/sys/contrib/cloudabi/cloudabi_vdso_i686.S =================================================================== --- head/sys/contrib/cloudabi/cloudabi_vdso_i686.S (revision 305986) +++ head/sys/contrib/cloudabi/cloudabi_vdso_i686.S (revision 305987) @@ -1,477 +1,477 @@ // Copyright (c) 2016 Nuxi (https://nuxi.nl/) and contributors. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: // 1. Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // 2. Redistributions in binary form must reproduce the above copyright // notice, this list of conditions and the following disclaimer in the // documentation and/or other materials provided with the distribution. // // THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE // ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // // This file is automatically generated. Do not edit. // // Source: https://github.com/NuxiNL/cloudabi #define ENTRY(name) \ .text; \ .p2align 2, 0x90; \ .global name; \ .type name, @function; \ - name: +name: #define END(name) .size name, . - name ENTRY(cloudabi_sys_clock_res_get) mov $0, %eax int $0x80 jc 1f - mov 0x8(%esp), %ecx + mov 8(%esp), %ecx mov %eax, 0(%ecx) mov %edx, 4(%ecx) xor %eax, %eax 1: ret END(cloudabi_sys_clock_res_get) ENTRY(cloudabi_sys_clock_time_get) mov $1, %eax int $0x80 jc 1f - mov 0x10(%esp), %ecx + mov 16(%esp), %ecx mov %eax, 0(%ecx) mov %edx, 4(%ecx) xor %eax, %eax 1: ret END(cloudabi_sys_clock_time_get) ENTRY(cloudabi_sys_condvar_signal) mov $2, %eax int $0x80 ret END(cloudabi_sys_condvar_signal) ENTRY(cloudabi_sys_fd_close) mov $3, %eax int $0x80 ret END(cloudabi_sys_fd_close) ENTRY(cloudabi_sys_fd_create1) mov $4, %eax int $0x80 jc 1f - mov 0x8(%esp), %ecx + mov 8(%esp), %ecx mov %eax, (%ecx) xor %eax, %eax 1: ret END(cloudabi_sys_fd_create1) ENTRY(cloudabi_sys_fd_create2) mov $5, %eax int $0x80 jc 1f - mov 0x8(%esp), %ecx + mov 8(%esp), %ecx mov %eax, (%ecx) - mov 0xc(%esp), %ecx + mov 12(%esp), %ecx mov %edx, (%ecx) xor %eax, %eax 1: ret END(cloudabi_sys_fd_create2) ENTRY(cloudabi_sys_fd_datasync) mov $6, %eax int $0x80 ret END(cloudabi_sys_fd_datasync) ENTRY(cloudabi_sys_fd_dup) mov $7, %eax int $0x80 jc 1f - mov 0x8(%esp), %ecx + mov 8(%esp), %ecx mov %eax, (%ecx) xor %eax, %eax 1: ret END(cloudabi_sys_fd_dup) ENTRY(cloudabi_sys_fd_pread) mov $8, %eax int $0x80 jc 1f - mov 0x18(%esp), %ecx + mov 24(%esp), %ecx mov %eax, (%ecx) xor %eax, %eax 1: ret END(cloudabi_sys_fd_pread) ENTRY(cloudabi_sys_fd_pwrite) mov $9, %eax int $0x80 jc 1f - mov 0x18(%esp), %ecx + mov 24(%esp), %ecx mov %eax, (%ecx) xor %eax, %eax 1: ret END(cloudabi_sys_fd_pwrite) ENTRY(cloudabi_sys_fd_read) mov $10, %eax int $0x80 jc 1f - mov 0x10(%esp), %ecx + mov 16(%esp), %ecx mov %eax, (%ecx) xor %eax, %eax 1: ret END(cloudabi_sys_fd_read) ENTRY(cloudabi_sys_fd_replace) mov $11, %eax int $0x80 ret END(cloudabi_sys_fd_replace) ENTRY(cloudabi_sys_fd_seek) mov $12, %eax int $0x80 jc 1f - mov 0x14(%esp), %ecx + mov 20(%esp), %ecx mov %eax, 0(%ecx) mov %edx, 4(%ecx) xor %eax, %eax 1: ret END(cloudabi_sys_fd_seek) ENTRY(cloudabi_sys_fd_stat_get) mov $13, %eax int $0x80 ret END(cloudabi_sys_fd_stat_get) ENTRY(cloudabi_sys_fd_stat_put) mov $14, %eax int $0x80 ret END(cloudabi_sys_fd_stat_put) ENTRY(cloudabi_sys_fd_sync) mov $15, %eax int $0x80 ret END(cloudabi_sys_fd_sync) ENTRY(cloudabi_sys_fd_write) mov $16, %eax int $0x80 jc 1f - mov 0x10(%esp), %ecx + mov 16(%esp), %ecx mov %eax, (%ecx) xor %eax, %eax 1: ret END(cloudabi_sys_fd_write) ENTRY(cloudabi_sys_file_advise) mov $17, %eax int $0x80 ret END(cloudabi_sys_file_advise) ENTRY(cloudabi_sys_file_allocate) mov $18, %eax int $0x80 ret END(cloudabi_sys_file_allocate) ENTRY(cloudabi_sys_file_create) mov $19, %eax int $0x80 ret END(cloudabi_sys_file_create) ENTRY(cloudabi_sys_file_link) mov $20, %eax int $0x80 ret END(cloudabi_sys_file_link) ENTRY(cloudabi_sys_file_open) mov $21, %eax int $0x80 jc 1f - mov 0x1c(%esp), %ecx + mov 28(%esp), %ecx mov %eax, (%ecx) xor %eax, %eax 1: ret END(cloudabi_sys_file_open) ENTRY(cloudabi_sys_file_readdir) mov $22, %eax int $0x80 jc 1f - mov 0x18(%esp), %ecx + mov 24(%esp), %ecx mov %eax, (%ecx) xor %eax, %eax 1: ret END(cloudabi_sys_file_readdir) ENTRY(cloudabi_sys_file_readlink) mov $23, %eax int $0x80 jc 1f - mov 0x18(%esp), %ecx + mov 24(%esp), %ecx mov %eax, (%ecx) xor %eax, %eax 1: ret END(cloudabi_sys_file_readlink) ENTRY(cloudabi_sys_file_rename) mov $24, %eax int $0x80 ret END(cloudabi_sys_file_rename) ENTRY(cloudabi_sys_file_stat_fget) mov $25, %eax int $0x80 ret END(cloudabi_sys_file_stat_fget) ENTRY(cloudabi_sys_file_stat_fput) mov $26, %eax int $0x80 ret END(cloudabi_sys_file_stat_fput) ENTRY(cloudabi_sys_file_stat_get) mov $27, %eax int $0x80 ret END(cloudabi_sys_file_stat_get) ENTRY(cloudabi_sys_file_stat_put) mov $28, %eax int $0x80 ret END(cloudabi_sys_file_stat_put) ENTRY(cloudabi_sys_file_symlink) mov $29, %eax int $0x80 ret END(cloudabi_sys_file_symlink) ENTRY(cloudabi_sys_file_unlink) mov $30, %eax int $0x80 ret END(cloudabi_sys_file_unlink) ENTRY(cloudabi_sys_lock_unlock) mov $31, %eax int $0x80 ret END(cloudabi_sys_lock_unlock) ENTRY(cloudabi_sys_mem_advise) mov $32, %eax int $0x80 ret END(cloudabi_sys_mem_advise) ENTRY(cloudabi_sys_mem_lock) mov $33, %eax int $0x80 ret END(cloudabi_sys_mem_lock) ENTRY(cloudabi_sys_mem_map) mov $34, %eax int $0x80 jc 1f - mov 0x20(%esp), %ecx + mov 32(%esp), %ecx mov %eax, (%ecx) xor %eax, %eax 1: ret END(cloudabi_sys_mem_map) ENTRY(cloudabi_sys_mem_protect) mov $35, %eax int $0x80 ret END(cloudabi_sys_mem_protect) ENTRY(cloudabi_sys_mem_sync) mov $36, %eax int $0x80 ret END(cloudabi_sys_mem_sync) ENTRY(cloudabi_sys_mem_unlock) mov $37, %eax int $0x80 ret END(cloudabi_sys_mem_unlock) ENTRY(cloudabi_sys_mem_unmap) mov $38, %eax int $0x80 ret END(cloudabi_sys_mem_unmap) ENTRY(cloudabi_sys_poll) mov $39, %eax int $0x80 jc 1f - mov 0x10(%esp), %ecx + mov 16(%esp), %ecx mov %eax, (%ecx) xor %eax, %eax 1: ret END(cloudabi_sys_poll) ENTRY(cloudabi_sys_poll_fd) mov $40, %eax int $0x80 jc 1f - mov 0x1c(%esp), %ecx + mov 28(%esp), %ecx mov %eax, (%ecx) xor %eax, %eax 1: ret END(cloudabi_sys_poll_fd) ENTRY(cloudabi_sys_proc_exec) mov $41, %eax int $0x80 ret END(cloudabi_sys_proc_exec) ENTRY(cloudabi_sys_proc_exit) mov $42, %eax int $0x80 END(cloudabi_sys_proc_exit) ENTRY(cloudabi_sys_proc_fork) mov $43, %eax int $0x80 jc 1f - mov 0x4(%esp), %ecx + mov 4(%esp), %ecx mov %eax, (%ecx) - mov 0x8(%esp), %ecx + mov 8(%esp), %ecx mov %edx, (%ecx) xor %eax, %eax 1: ret END(cloudabi_sys_proc_fork) ENTRY(cloudabi_sys_proc_raise) mov $44, %eax int $0x80 ret END(cloudabi_sys_proc_raise) ENTRY(cloudabi_sys_random_get) mov $45, %eax int $0x80 ret END(cloudabi_sys_random_get) ENTRY(cloudabi_sys_sock_accept) mov $46, %eax int $0x80 jc 1f - mov 0xc(%esp), %ecx + mov 12(%esp), %ecx mov %eax, (%ecx) xor %eax, %eax 1: ret END(cloudabi_sys_sock_accept) ENTRY(cloudabi_sys_sock_bind) mov $47, %eax int $0x80 ret END(cloudabi_sys_sock_bind) ENTRY(cloudabi_sys_sock_connect) mov $48, %eax int $0x80 ret END(cloudabi_sys_sock_connect) ENTRY(cloudabi_sys_sock_listen) mov $49, %eax int $0x80 ret END(cloudabi_sys_sock_listen) ENTRY(cloudabi_sys_sock_recv) mov $50, %eax int $0x80 ret END(cloudabi_sys_sock_recv) ENTRY(cloudabi_sys_sock_send) mov $51, %eax int $0x80 ret END(cloudabi_sys_sock_send) ENTRY(cloudabi_sys_sock_shutdown) mov $52, %eax int $0x80 ret END(cloudabi_sys_sock_shutdown) ENTRY(cloudabi_sys_sock_stat_get) mov $53, %eax int $0x80 ret END(cloudabi_sys_sock_stat_get) ENTRY(cloudabi_sys_thread_create) mov $54, %eax int $0x80 jc 1f - mov 0x8(%esp), %ecx + mov 8(%esp), %ecx mov %eax, (%ecx) xor %eax, %eax 1: ret END(cloudabi_sys_thread_create) ENTRY(cloudabi_sys_thread_exit) mov $55, %eax int $0x80 END(cloudabi_sys_thread_exit) ENTRY(cloudabi_sys_thread_yield) mov $56, %eax int $0x80 ret END(cloudabi_sys_thread_yield)