Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Nov 2017 20:46:21 +0000 (UTC)
From:      Ed Schouten <ed@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r326075 - head/sys/contrib/cloudabi
Message-ID:  <201711212046.vALKkLXi068899@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ed
Date: Tue Nov 21 20:46:21 2017
New Revision: 326075
URL: https://svnweb.freebsd.org/changeset/base/326075

Log:
  Import the latest CloudABI definitions, v0.18.
  
  In addition to some small style fixes to the ARMv6 vDSO, this release
  includes a new vDSO that can be used for the execution of ARMv6/ARMv7
  code on 64-bit platforms.
  
  Just like for i686 on x86-64, this new vDSO is responsible for padding
  arguments and return values to 64-bit values, so that the kernel can
  easily forward system calls to the native system calls.
  
  Obtained from:	https://github.com/NuxiNL/cloudabi

Added:
  head/sys/contrib/cloudabi/cloudabi_vdso_armv6_on_64bit.S   (contents, props changed)
Modified:
  head/sys/contrib/cloudabi/cloudabi_vdso_armv6.S

Modified: head/sys/contrib/cloudabi/cloudabi_vdso_armv6.S
==============================================================================
--- head/sys/contrib/cloudabi/cloudabi_vdso_armv6.S	Tue Nov 21 20:31:54 2017	(r326074)
+++ head/sys/contrib/cloudabi/cloudabi_vdso_armv6.S	Tue Nov 21 20:46:21 2017	(r326075)
@@ -39,9 +39,9 @@ ENTRY(cloudabi_sys_clock_res_get)
   mov ip, #0
   swi 0
   ldrcc r2, [sp, #-4]
-  strcc r0, [r2, 0]
-  strcc r1, [r2, 4]
-  movcc r0, $0
+  strcc r0, [r2, #0]
+  strcc r1, [r2, #4]
+  movcc r0, #0
   bx lr
 END(cloudabi_sys_clock_res_get)
 
@@ -49,9 +49,9 @@ ENTRY(cloudabi_sys_clock_time_get)
   mov ip, #1
   swi 0
   ldrcc r2, [sp, #0]
-  strcc r0, [r2, 0]
-  strcc r1, [r2, 4]
-  movcc r0, $0
+  strcc r0, [r2, #0]
+  strcc r1, [r2, #4]
+  movcc r0, #0
   bx lr
 END(cloudabi_sys_clock_time_get)
 
@@ -73,7 +73,7 @@ ENTRY(cloudabi_sys_fd_create1)
   swi 0
   ldrcc r2, [sp, #-4]
   strcc r0, [r2]
-  movcc r0, $0
+  movcc r0, #0
   bx lr
 END(cloudabi_sys_fd_create1)
 
@@ -86,7 +86,7 @@ ENTRY(cloudabi_sys_fd_create2)
   ldrcc r3, [sp, #-8]
   strcc r0, [r2]
   strcc r1, [r3]
-  movcc r0, $0
+  movcc r0, #0
   bx lr
 END(cloudabi_sys_fd_create2)
 
@@ -102,7 +102,7 @@ ENTRY(cloudabi_sys_fd_dup)
   swi 0
   ldrcc r2, [sp, #-4]
   strcc r0, [r2]
-  movcc r0, $0
+  movcc r0, #0
   bx lr
 END(cloudabi_sys_fd_dup)
 
@@ -111,7 +111,7 @@ ENTRY(cloudabi_sys_fd_pread)
   swi 0
   ldrcc r2, [sp, #8]
   strcc r0, [r2]
-  movcc r0, $0
+  movcc r0, #0
   bx lr
 END(cloudabi_sys_fd_pread)
 
@@ -120,7 +120,7 @@ ENTRY(cloudabi_sys_fd_pwrite)
   swi 0
   ldrcc r2, [sp, #8]
   strcc r0, [r2]
-  movcc r0, $0
+  movcc r0, #0
   bx lr
 END(cloudabi_sys_fd_pwrite)
 
@@ -130,7 +130,7 @@ ENTRY(cloudabi_sys_fd_read)
   swi 0
   ldrcc r2, [sp, #-4]
   strcc r0, [r2]
-  movcc r0, $0
+  movcc r0, #0
   bx lr
 END(cloudabi_sys_fd_read)
 
@@ -144,9 +144,9 @@ ENTRY(cloudabi_sys_fd_seek)
   mov ip, #12
   swi 0
   ldrcc r2, [sp, #4]
-  strcc r0, [r2, 0]
-  strcc r1, [r2, 4]
-  movcc r0, $0
+  strcc r0, [r2, #0]
+  strcc r1, [r2, #4]
+  movcc r0, #0
   bx lr
 END(cloudabi_sys_fd_seek)
 
@@ -174,7 +174,7 @@ ENTRY(cloudabi_sys_fd_write)
   swi 0
   ldrcc r2, [sp, #-4]
   strcc r0, [r2]
-  movcc r0, $0
+  movcc r0, #0
   bx lr
 END(cloudabi_sys_fd_write)
 
@@ -207,7 +207,7 @@ ENTRY(cloudabi_sys_file_open)
   swi 0
   ldrcc r2, [sp, #8]
   strcc r0, [r2]
-  movcc r0, $0
+  movcc r0, #0
   bx lr
 END(cloudabi_sys_file_open)
 
@@ -216,7 +216,7 @@ ENTRY(cloudabi_sys_file_readdir)
   swi 0
   ldrcc r2, [sp, #8]
   strcc r0, [r2]
-  movcc r0, $0
+  movcc r0, #0
   bx lr
 END(cloudabi_sys_file_readdir)
 
@@ -225,7 +225,7 @@ ENTRY(cloudabi_sys_file_readlink)
   swi 0
   ldrcc r2, [sp, #4]
   strcc r0, [r2]
-  movcc r0, $0
+  movcc r0, #0
   bx lr
 END(cloudabi_sys_file_readlink)
 
@@ -288,7 +288,7 @@ ENTRY(cloudabi_sys_mem_map)
   swi 0
   ldrcc r2, [sp, #16]
   strcc r0, [r2]
-  movcc r0, $0
+  movcc r0, #0
   bx lr
 END(cloudabi_sys_mem_map)
 
@@ -316,7 +316,7 @@ ENTRY(cloudabi_sys_poll)
   swi 0
   ldrcc r2, [sp, #-4]
   strcc r0, [r2]
-  movcc r0, $0
+  movcc r0, #0
   bx lr
 END(cloudabi_sys_poll)
 
@@ -340,7 +340,7 @@ ENTRY(cloudabi_sys_proc_fork)
   ldrcc r3, [sp, #-8]
   strcc r0, [r2]
   strcc r1, [r3]
-  movcc r0, $0
+  movcc r0, #0
   bx lr
 END(cloudabi_sys_proc_fork)
 
@@ -380,7 +380,7 @@ ENTRY(cloudabi_sys_thread_create)
   swi 0
   ldrcc r2, [sp, #-4]
   strcc r0, [r2]
-  movcc r0, $0
+  movcc r0, #0
   bx lr
 END(cloudabi_sys_thread_create)
 

Added: head/sys/contrib/cloudabi/cloudabi_vdso_armv6_on_64bit.S
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sys/contrib/cloudabi/cloudabi_vdso_armv6_on_64bit.S	Tue Nov 21 20:46:21 2017	(r326075)
@@ -0,0 +1,732 @@
+// 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 r0, [sp, #-16]
+  str r1, [sp, #-20]
+  mov r0, #0
+  sub r2, sp, #16
+  swi 0
+  ldrcc r1, [sp, #-20]
+  ldrcc r2, [sp, #-16]
+  strcc r2, [r1, #0]
+  ldrcc r2, [sp, #-12]
+  strcc r2, [r1, #4]
+  bx lr
+END(cloudabi_sys_clock_res_get)
+
+ENTRY(cloudabi_sys_clock_time_get)
+  str r0, [sp, #-16]
+  str r2, [sp, #-8]
+  str r3, [sp, #-4]
+  mov r0, #1
+  sub r2, sp, #16
+  swi 0
+  ldrcc r1, [sp, #0]
+  ldrcc r2, [sp, #-16]
+  strcc r2, [r1, #0]
+  ldrcc r2, [sp, #-12]
+  strcc r2, [r1, #4]
+  bx lr
+END(cloudabi_sys_clock_time_get)
+
+ENTRY(cloudabi_sys_condvar_signal)
+  str r0, [sp, #-24]
+  mov r0, #0
+  str r0, [sp, #-20]
+  str r1, [sp, #-16]
+  str r2, [sp, #-8]
+  mov r0, #2
+  sub r2, sp, #24
+  swi 0
+  bx lr
+END(cloudabi_sys_condvar_signal)
+
+ENTRY(cloudabi_sys_fd_close)
+  str r0, [sp, #-16]
+  mov r0, #3
+  sub r2, sp, #16
+  swi 0
+  bx lr
+END(cloudabi_sys_fd_close)
+
+ENTRY(cloudabi_sys_fd_create1)
+  str r0, [sp, #-16]
+  str r1, [sp, #-20]
+  mov r0, #4
+  sub r2, sp, #16
+  swi 0
+  ldrcc r1, [sp, #-20]
+  ldrcc r2, [sp, #-16]
+  strcc r2, [r1, #0]
+  bx lr
+END(cloudabi_sys_fd_create1)
+
+ENTRY(cloudabi_sys_fd_create2)
+  str r0, [sp, #-16]
+  str r1, [sp, #-20]
+  str r2, [sp, #-24]
+  mov r0, #5
+  sub r2, sp, #16
+  swi 0
+  ldrcc r1, [sp, #-20]
+  ldrcc r2, [sp, #-16]
+  strcc r2, [r1, #0]
+  ldrcc r1, [sp, #-24]
+  ldrcc r2, [sp, #-8]
+  strcc r2, [r1, #0]
+  bx lr
+END(cloudabi_sys_fd_create2)
+
+ENTRY(cloudabi_sys_fd_datasync)
+  str r0, [sp, #-16]
+  mov r0, #6
+  sub r2, sp, #16
+  swi 0
+  bx lr
+END(cloudabi_sys_fd_datasync)
+
+ENTRY(cloudabi_sys_fd_dup)
+  str r0, [sp, #-16]
+  str r1, [sp, #-20]
+  mov r0, #7
+  sub r2, sp, #16
+  swi 0
+  ldrcc r1, [sp, #-20]
+  ldrcc r2, [sp, #-16]
+  strcc r2, [r1, #0]
+  bx lr
+END(cloudabi_sys_fd_dup)
+
+ENTRY(cloudabi_sys_fd_pread)
+  str r0, [sp, #-32]
+  str r1, [sp, #-24]
+  mov r0, #0
+  str r0, [sp, #-20]
+  str r2, [sp, #-16]
+  str r0, [sp, #-12]
+  ldr r1, [sp, #0]
+  str r1, [sp, #-8]
+  ldr r1, [sp, #4]
+  str r1, [sp, #-4]
+  mov r0, #8
+  sub r2, sp, #32
+  swi 0
+  ldrcc r1, [sp, #8]
+  ldrcc r2, [sp, #-32]
+  strcc r2, [r1, #0]
+  bx lr
+END(cloudabi_sys_fd_pread)
+
+ENTRY(cloudabi_sys_fd_pwrite)
+  str r0, [sp, #-32]
+  str r1, [sp, #-24]
+  mov r0, #0
+  str r0, [sp, #-20]
+  str r2, [sp, #-16]
+  str r0, [sp, #-12]
+  ldr r1, [sp, #0]
+  str r1, [sp, #-8]
+  ldr r1, [sp, #4]
+  str r1, [sp, #-4]
+  mov r0, #9
+  sub r2, sp, #32
+  swi 0
+  ldrcc r1, [sp, #8]
+  ldrcc r2, [sp, #-32]
+  strcc r2, [r1, #0]
+  bx lr
+END(cloudabi_sys_fd_pwrite)
+
+ENTRY(cloudabi_sys_fd_read)
+  str r0, [sp, #-24]
+  str r1, [sp, #-16]
+  mov r0, #0
+  str r0, [sp, #-12]
+  str r2, [sp, #-8]
+  str r0, [sp, #-4]
+  str r3, [sp, #-28]
+  mov r0, #10
+  sub r2, sp, #24
+  swi 0
+  ldrcc r1, [sp, #-28]
+  ldrcc r2, [sp, #-24]
+  strcc r2, [r1, #0]
+  bx lr
+END(cloudabi_sys_fd_read)
+
+ENTRY(cloudabi_sys_fd_replace)
+  str r0, [sp, #-16]
+  str r1, [sp, #-8]
+  mov r0, #11
+  sub r2, sp, #16
+  swi 0
+  bx lr
+END(cloudabi_sys_fd_replace)
+
+ENTRY(cloudabi_sys_fd_seek)
+  str r0, [sp, #-24]
+  str r2, [sp, #-16]
+  str r3, [sp, #-12]
+  ldr r1, [sp, #0]
+  str r1, [sp, #-8]
+  mov r0, #12
+  sub r2, sp, #24
+  swi 0
+  ldrcc r1, [sp, #4]
+  ldrcc r2, [sp, #-24]
+  strcc r2, [r1, #0]
+  ldrcc r2, [sp, #-20]
+  strcc r2, [r1, #4]
+  bx lr
+END(cloudabi_sys_fd_seek)
+
+ENTRY(cloudabi_sys_fd_stat_get)
+  str r0, [sp, #-16]
+  str r1, [sp, #-8]
+  mov r0, #0
+  str r0, [sp, #-4]
+  mov r0, #13
+  sub r2, sp, #16
+  swi 0
+  bx lr
+END(cloudabi_sys_fd_stat_get)
+
+ENTRY(cloudabi_sys_fd_stat_put)
+  str r0, [sp, #-24]
+  str r1, [sp, #-16]
+  mov r0, #0
+  str r0, [sp, #-12]
+  str r2, [sp, #-8]
+  mov r0, #14
+  sub r2, sp, #24
+  swi 0
+  bx lr
+END(cloudabi_sys_fd_stat_put)
+
+ENTRY(cloudabi_sys_fd_sync)
+  str r0, [sp, #-16]
+  mov r0, #15
+  sub r2, sp, #16
+  swi 0
+  bx lr
+END(cloudabi_sys_fd_sync)
+
+ENTRY(cloudabi_sys_fd_write)
+  str r0, [sp, #-24]
+  str r1, [sp, #-16]
+  mov r0, #0
+  str r0, [sp, #-12]
+  str r2, [sp, #-8]
+  str r0, [sp, #-4]
+  str r3, [sp, #-28]
+  mov r0, #16
+  sub r2, sp, #24
+  swi 0
+  ldrcc r1, [sp, #-28]
+  ldrcc r2, [sp, #-24]
+  strcc r2, [r1, #0]
+  bx lr
+END(cloudabi_sys_fd_write)
+
+ENTRY(cloudabi_sys_file_advise)
+  str r0, [sp, #-32]
+  str r2, [sp, #-24]
+  str r3, [sp, #-20]
+  ldr r1, [sp, #0]
+  str r1, [sp, #-16]
+  ldr r1, [sp, #4]
+  str r1, [sp, #-12]
+  ldr r1, [sp, #8]
+  str r1, [sp, #-8]
+  mov r0, #17
+  sub r2, sp, #32
+  swi 0
+  bx lr
+END(cloudabi_sys_file_advise)
+
+ENTRY(cloudabi_sys_file_allocate)
+  str r0, [sp, #-24]
+  str r2, [sp, #-16]
+  str r3, [sp, #-12]
+  ldr r1, [sp, #0]
+  str r1, [sp, #-8]
+  ldr r1, [sp, #4]
+  str r1, [sp, #-4]
+  mov r0, #18
+  sub r2, sp, #24
+  swi 0
+  bx lr
+END(cloudabi_sys_file_allocate)
+
+ENTRY(cloudabi_sys_file_create)
+  str r0, [sp, #-32]
+  str r1, [sp, #-24]
+  mov r0, #0
+  str r0, [sp, #-20]
+  str r2, [sp, #-16]
+  str r0, [sp, #-12]
+  str r3, [sp, #-8]
+  mov r0, #19
+  sub r2, sp, #32
+  swi 0
+  bx lr
+END(cloudabi_sys_file_create)
+
+ENTRY(cloudabi_sys_file_link)
+  str r0, [sp, #-48]
+  str r1, [sp, #-44]
+  str r2, [sp, #-40]
+  mov r0, #0
+  str r0, [sp, #-36]
+  str r3, [sp, #-32]
+  str r0, [sp, #-28]
+  ldr r1, [sp, #0]
+  str r1, [sp, #-24]
+  ldr r1, [sp, #4]
+  str r1, [sp, #-16]
+  str r0, [sp, #-12]
+  ldr r1, [sp, #8]
+  str r1, [sp, #-8]
+  str r0, [sp, #-4]
+  mov r0, #20
+  sub r2, sp, #48
+  swi 0
+  bx lr
+END(cloudabi_sys_file_link)
+
+ENTRY(cloudabi_sys_file_open)
+  str r0, [sp, #-40]
+  str r1, [sp, #-36]
+  str r2, [sp, #-32]
+  mov r0, #0
+  str r0, [sp, #-28]
+  str r3, [sp, #-24]
+  str r0, [sp, #-20]
+  ldr r1, [sp, #0]
+  str r1, [sp, #-16]
+  ldr r1, [sp, #4]
+  str r1, [sp, #-8]
+  str r0, [sp, #-4]
+  mov r0, #21
+  sub r2, sp, #40
+  swi 0
+  ldrcc r1, [sp, #8]
+  ldrcc r2, [sp, #-40]
+  strcc r2, [r1, #0]
+  bx lr
+END(cloudabi_sys_file_open)
+
+ENTRY(cloudabi_sys_file_readdir)
+  str r0, [sp, #-32]
+  str r1, [sp, #-24]
+  mov r0, #0
+  str r0, [sp, #-20]
+  str r2, [sp, #-16]
+  str r0, [sp, #-12]
+  ldr r1, [sp, #0]
+  str r1, [sp, #-8]
+  ldr r1, [sp, #4]
+  str r1, [sp, #-4]
+  mov r0, #22
+  sub r2, sp, #32
+  swi 0
+  ldrcc r1, [sp, #8]
+  ldrcc r2, [sp, #-32]
+  strcc r2, [r1, #0]
+  bx lr
+END(cloudabi_sys_file_readdir)
+
+ENTRY(cloudabi_sys_file_readlink)
+  str r0, [sp, #-40]
+  str r1, [sp, #-32]
+  mov r0, #0
+  str r0, [sp, #-28]
+  str r2, [sp, #-24]
+  str r0, [sp, #-20]
+  str r3, [sp, #-16]
+  str r0, [sp, #-12]
+  ldr r1, [sp, #0]
+  str r1, [sp, #-8]
+  str r0, [sp, #-4]
+  mov r0, #23
+  sub r2, sp, #40
+  swi 0
+  ldrcc r1, [sp, #4]
+  ldrcc r2, [sp, #-40]
+  strcc r2, [r1, #0]
+  bx lr
+END(cloudabi_sys_file_readlink)
+
+ENTRY(cloudabi_sys_file_rename)
+  str r0, [sp, #-48]
+  str r1, [sp, #-40]
+  mov r0, #0
+  str r0, [sp, #-36]
+  str r2, [sp, #-32]
+  str r0, [sp, #-28]
+  str r3, [sp, #-24]
+  ldr r1, [sp, #0]
+  str r1, [sp, #-16]
+  str r0, [sp, #-12]
+  ldr r1, [sp, #4]
+  str r1, [sp, #-8]
+  str r0, [sp, #-4]
+  mov r0, #24
+  sub r2, sp, #48
+  swi 0
+  bx lr
+END(cloudabi_sys_file_rename)
+
+ENTRY(cloudabi_sys_file_stat_fget)
+  str r0, [sp, #-16]
+  str r1, [sp, #-8]
+  mov r0, #0
+  str r0, [sp, #-4]
+  mov r0, #25
+  sub r2, sp, #16
+  swi 0
+  bx lr
+END(cloudabi_sys_file_stat_fget)
+
+ENTRY(cloudabi_sys_file_stat_fput)
+  str r0, [sp, #-24]
+  str r1, [sp, #-16]
+  mov r0, #0
+  str r0, [sp, #-12]
+  str r2, [sp, #-8]
+  mov r0, #26
+  sub r2, sp, #24
+  swi 0
+  bx lr
+END(cloudabi_sys_file_stat_fput)
+
+ENTRY(cloudabi_sys_file_stat_get)
+  str r0, [sp, #-32]
+  str r1, [sp, #-28]
+  str r2, [sp, #-24]
+  mov r0, #0
+  str r0, [sp, #-20]
+  str r3, [sp, #-16]
+  str r0, [sp, #-12]
+  ldr r1, [sp, #0]
+  str r1, [sp, #-8]
+  str r0, [sp, #-4]
+  mov r0, #27
+  sub r2, sp, #32
+  swi 0
+  bx lr
+END(cloudabi_sys_file_stat_get)
+
+ENTRY(cloudabi_sys_file_stat_put)
+  str r0, [sp, #-40]
+  str r1, [sp, #-36]
+  str r2, [sp, #-32]
+  mov r0, #0
+  str r0, [sp, #-28]
+  str r3, [sp, #-24]
+  str r0, [sp, #-20]
+  ldr r1, [sp, #0]
+  str r1, [sp, #-16]
+  str r0, [sp, #-12]
+  ldr r1, [sp, #4]
+  str r1, [sp, #-8]
+  mov r0, #28
+  sub r2, sp, #40
+  swi 0
+  bx lr
+END(cloudabi_sys_file_stat_put)
+
+ENTRY(cloudabi_sys_file_symlink)
+  str r0, [sp, #-40]
+  mov r0, #0
+  str r0, [sp, #-36]
+  str r1, [sp, #-32]
+  str r0, [sp, #-28]
+  str r2, [sp, #-24]
+  str r3, [sp, #-16]
+  str r0, [sp, #-12]
+  ldr r1, [sp, #0]
+  str r1, [sp, #-8]
+  str r0, [sp, #-4]
+  mov r0, #29
+  sub r2, sp, #40
+  swi 0
+  bx lr
+END(cloudabi_sys_file_symlink)
+
+ENTRY(cloudabi_sys_file_unlink)
+  str r0, [sp, #-32]
+  str r1, [sp, #-24]
+  mov r0, #0
+  str r0, [sp, #-20]
+  str r2, [sp, #-16]
+  str r0, [sp, #-12]
+  str r3, [sp, #-8]
+  mov r0, #30
+  sub r2, sp, #32
+  swi 0
+  bx lr
+END(cloudabi_sys_file_unlink)
+
+ENTRY(cloudabi_sys_lock_unlock)
+  str r0, [sp, #-16]
+  mov r0, #0
+  str r0, [sp, #-12]
+  str r1, [sp, #-8]
+  mov r0, #31
+  sub r2, sp, #16
+  swi 0
+  bx lr
+END(cloudabi_sys_lock_unlock)
+
+ENTRY(cloudabi_sys_mem_advise)
+  str r0, [sp, #-24]
+  mov r0, #0
+  str r0, [sp, #-20]
+  str r1, [sp, #-16]
+  str r0, [sp, #-12]
+  str r2, [sp, #-8]
+  mov r0, #32
+  sub r2, sp, #24
+  swi 0
+  bx lr
+END(cloudabi_sys_mem_advise)
+
+ENTRY(cloudabi_sys_mem_map)
+  str r0, [sp, #-48]
+  mov r0, #0
+  str r0, [sp, #-44]
+  str r1, [sp, #-40]
+  str r0, [sp, #-36]
+  str r2, [sp, #-32]
+  str r3, [sp, #-24]
+  ldr r1, [sp, #0]
+  str r1, [sp, #-16]
+  ldr r1, [sp, #8]
+  str r1, [sp, #-8]
+  ldr r1, [sp, #12]
+  str r1, [sp, #-4]
+  mov r0, #33
+  sub r2, sp, #48
+  swi 0
+  ldrcc r1, [sp, #16]
+  ldrcc r2, [sp, #-48]
+  strcc r2, [r1, #0]
+  bx lr
+END(cloudabi_sys_mem_map)
+
+ENTRY(cloudabi_sys_mem_protect)
+  str r0, [sp, #-24]
+  mov r0, #0
+  str r0, [sp, #-20]
+  str r1, [sp, #-16]
+  str r0, [sp, #-12]
+  str r2, [sp, #-8]
+  mov r0, #34
+  sub r2, sp, #24
+  swi 0
+  bx lr
+END(cloudabi_sys_mem_protect)
+
+ENTRY(cloudabi_sys_mem_sync)
+  str r0, [sp, #-24]
+  mov r0, #0
+  str r0, [sp, #-20]
+  str r1, [sp, #-16]
+  str r0, [sp, #-12]
+  str r2, [sp, #-8]
+  mov r0, #35
+  sub r2, sp, #24
+  swi 0
+  bx lr
+END(cloudabi_sys_mem_sync)
+
+ENTRY(cloudabi_sys_mem_unmap)
+  str r0, [sp, #-16]
+  mov r0, #0
+  str r0, [sp, #-12]
+  str r1, [sp, #-8]
+  str r0, [sp, #-4]
+  mov r0, #36
+  sub r2, sp, #16
+  swi 0
+  bx lr
+END(cloudabi_sys_mem_unmap)
+
+ENTRY(cloudabi_sys_poll)
+  str r0, [sp, #-24]
+  mov r0, #0
+  str r0, [sp, #-20]
+  str r1, [sp, #-16]
+  str r0, [sp, #-12]
+  str r2, [sp, #-8]
+  str r0, [sp, #-4]
+  str r3, [sp, #-28]
+  mov r0, #37
+  sub r2, sp, #24
+  swi 0
+  ldrcc r1, [sp, #-28]
+  ldrcc r2, [sp, #-24]
+  strcc r2, [r1, #0]
+  bx lr
+END(cloudabi_sys_poll)
+
+ENTRY(cloudabi_sys_proc_exec)
+  str r0, [sp, #-40]
+  str r1, [sp, #-32]
+  mov r0, #0
+  str r0, [sp, #-28]
+  str r2, [sp, #-24]
+  str r0, [sp, #-20]
+  str r3, [sp, #-16]
+  str r0, [sp, #-12]
+  ldr r1, [sp, #0]
+  str r1, [sp, #-8]
+  str r0, [sp, #-4]
+  mov r0, #38
+  sub r2, sp, #40
+  swi 0
+  bx lr
+END(cloudabi_sys_proc_exec)
+
+ENTRY(cloudabi_sys_proc_exit)
+  str r0, [sp, #-16]
+  mov r0, #39
+  sub r2, sp, #16
+  swi 0
+END(cloudabi_sys_proc_exit)
+
+ENTRY(cloudabi_sys_proc_fork)
+  str r0, [sp, #-20]
+  str r1, [sp, #-24]
+  mov r0, #40
+  sub r2, sp, #16
+  swi 0
+  ldrcc r1, [sp, #-20]
+  ldrcc r2, [sp, #-16]
+  strcc r2, [r1, #0]
+  ldrcc r1, [sp, #-24]
+  ldrcc r2, [sp, #-8]
+  strcc r2, [r1, #0]
+  bx lr
+END(cloudabi_sys_proc_fork)
+
+ENTRY(cloudabi_sys_proc_raise)
+  str r0, [sp, #-16]
+  mov r0, #41
+  sub r2, sp, #16
+  swi 0
+  bx lr
+END(cloudabi_sys_proc_raise)
+
+ENTRY(cloudabi_sys_random_get)
+  str r0, [sp, #-16]
+  mov r0, #0
+  str r0, [sp, #-12]
+  str r1, [sp, #-8]
+  str r0, [sp, #-4]
+  mov r0, #42
+  sub r2, sp, #16
+  swi 0
+  bx lr
+END(cloudabi_sys_random_get)
+
+ENTRY(cloudabi_sys_sock_recv)
+  str r0, [sp, #-24]
+  str r1, [sp, #-16]
+  mov r0, #0
+  str r0, [sp, #-12]
+  str r2, [sp, #-8]
+  str r0, [sp, #-4]
+  mov r0, #43
+  sub r2, sp, #24
+  swi 0
+  bx lr
+END(cloudabi_sys_sock_recv)
+
+ENTRY(cloudabi_sys_sock_send)
+  str r0, [sp, #-24]
+  str r1, [sp, #-16]
+  mov r0, #0
+  str r0, [sp, #-12]
+  str r2, [sp, #-8]
+  str r0, [sp, #-4]
+  mov r0, #44
+  sub r2, sp, #24
+  swi 0
+  bx lr
+END(cloudabi_sys_sock_send)
+
+ENTRY(cloudabi_sys_sock_shutdown)
+  str r0, [sp, #-16]
+  str r1, [sp, #-8]
+  mov r0, #45
+  sub r2, sp, #16
+  swi 0
+  bx lr
+END(cloudabi_sys_sock_shutdown)
+
+ENTRY(cloudabi_sys_thread_create)
+  str r0, [sp, #-16]
+  mov r0, #0
+  str r0, [sp, #-12]
+  str r1, [sp, #-20]
+  mov r0, #46
+  sub r2, sp, #16
+  swi 0
+  ldrcc r1, [sp, #-20]
+  ldrcc r2, [sp, #-16]
+  strcc r2, [r1, #0]
+  bx lr
+END(cloudabi_sys_thread_create)
+
+ENTRY(cloudabi_sys_thread_exit)
+  str r0, [sp, #-16]
+  mov r0, #0
+  str r0, [sp, #-12]
+  str r1, [sp, #-8]
+  mov r0, #47
+  sub r2, sp, #16
+  swi 0
+END(cloudabi_sys_thread_exit)
+
+ENTRY(cloudabi_sys_thread_yield)
+  mov r0, #48
+  sub r2, sp, #16
+  swi 0
+  bx lr
+END(cloudabi_sys_thread_yield)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201711212046.vALKkLXi068899>