From faa0fdb1194172f578f973097d61e580bce528dc Mon Sep 17 00:00:00 2001 From: Matthieu Castet Date: Wed, 16 Jan 2013 14:02:50 +0100 Subject: arm syscall : for eabi call_default don't use stack In the default case, we don't need to use the stack, we can save r7 with ip register (that what does eglibc). This allow to fix vfork data corruption (see 3884bfe9661955543ce203c60f9225bbdf33f6bb), because vfork now don't use the stack. --- libc/arch-arm/syscalls/__brk.S | 5 ++--- libc/arch-arm/syscalls/__fcntl.S | 5 ++--- libc/arch-arm/syscalls/__fcntl64.S | 5 ++--- libc/arch-arm/syscalls/__fork.S | 5 ++--- libc/arch-arm/syscalls/__fstatfs64.S | 5 ++--- libc/arch-arm/syscalls/__getcpu.S | 5 ++--- libc/arch-arm/syscalls/__getcwd.S | 5 ++--- libc/arch-arm/syscalls/__getpriority.S | 5 ++--- libc/arch-arm/syscalls/__ioctl.S | 5 ++--- libc/arch-arm/syscalls/__open.S | 5 ++--- libc/arch-arm/syscalls/__openat.S | 5 ++--- libc/arch-arm/syscalls/__ptrace.S | 5 ++--- libc/arch-arm/syscalls/__reboot.S | 5 ++--- libc/arch-arm/syscalls/__rt_sigaction.S | 5 ++--- libc/arch-arm/syscalls/__rt_sigprocmask.S | 5 ++--- libc/arch-arm/syscalls/__rt_sigtimedwait.S | 5 ++--- libc/arch-arm/syscalls/__sched_getaffinity.S | 5 ++--- libc/arch-arm/syscalls/__set_tls.S | 5 ++--- libc/arch-arm/syscalls/__setresuid.S | 5 ++--- libc/arch-arm/syscalls/__setreuid.S | 5 ++--- libc/arch-arm/syscalls/__setuid.S | 5 ++--- libc/arch-arm/syscalls/__sigsuspend.S | 5 ++--- libc/arch-arm/syscalls/__statfs64.S | 5 ++--- libc/arch-arm/syscalls/__syslog.S | 5 ++--- libc/arch-arm/syscalls/__timer_create.S | 5 ++--- libc/arch-arm/syscalls/__timer_delete.S | 5 ++--- libc/arch-arm/syscalls/__timer_getoverrun.S | 5 ++--- libc/arch-arm/syscalls/__timer_gettime.S | 5 ++--- libc/arch-arm/syscalls/__timer_settime.S | 5 ++--- libc/arch-arm/syscalls/__wait4.S | 5 ++--- libc/arch-arm/syscalls/_exit.S | 5 ++--- libc/arch-arm/syscalls/_exit_thread.S | 5 ++--- libc/arch-arm/syscalls/accept.S | 5 ++--- libc/arch-arm/syscalls/access.S | 5 ++--- libc/arch-arm/syscalls/acct.S | 5 ++--- libc/arch-arm/syscalls/bind.S | 5 ++--- libc/arch-arm/syscalls/cacheflush.S | 5 ++--- libc/arch-arm/syscalls/capget.S | 5 ++--- libc/arch-arm/syscalls/capset.S | 5 ++--- libc/arch-arm/syscalls/chdir.S | 5 ++--- libc/arch-arm/syscalls/chmod.S | 5 ++--- libc/arch-arm/syscalls/chown.S | 5 ++--- libc/arch-arm/syscalls/chroot.S | 5 ++--- libc/arch-arm/syscalls/clock_getres.S | 5 ++--- libc/arch-arm/syscalls/clock_gettime.S | 5 ++--- libc/arch-arm/syscalls/clock_nanosleep.S | 5 ++--- libc/arch-arm/syscalls/clock_settime.S | 5 ++--- libc/arch-arm/syscalls/close.S | 5 ++--- libc/arch-arm/syscalls/connect.S | 5 ++--- libc/arch-arm/syscalls/delete_module.S | 5 ++--- libc/arch-arm/syscalls/dup.S | 5 ++--- libc/arch-arm/syscalls/dup2.S | 5 ++--- libc/arch-arm/syscalls/epoll_create.S | 5 ++--- libc/arch-arm/syscalls/epoll_ctl.S | 5 ++--- libc/arch-arm/syscalls/epoll_wait.S | 5 ++--- libc/arch-arm/syscalls/eventfd.S | 5 ++--- libc/arch-arm/syscalls/execve.S | 5 ++--- libc/arch-arm/syscalls/faccessat.S | 5 ++--- libc/arch-arm/syscalls/fchdir.S | 5 ++--- libc/arch-arm/syscalls/fchmod.S | 5 ++--- libc/arch-arm/syscalls/fchmodat.S | 5 ++--- libc/arch-arm/syscalls/fchown.S | 5 ++--- libc/arch-arm/syscalls/fdatasync.S | 5 ++--- libc/arch-arm/syscalls/fgetxattr.S | 5 ++--- libc/arch-arm/syscalls/flistxattr.S | 5 ++--- libc/arch-arm/syscalls/flock.S | 5 ++--- libc/arch-arm/syscalls/fremovexattr.S | 5 ++--- libc/arch-arm/syscalls/fstat.S | 5 ++--- libc/arch-arm/syscalls/fstatat.S | 5 ++--- libc/arch-arm/syscalls/fsync.S | 5 ++--- libc/arch-arm/syscalls/ftruncate.S | 5 ++--- libc/arch-arm/syscalls/ftruncate64.S | 5 ++--- libc/arch-arm/syscalls/getdents.S | 5 ++--- libc/arch-arm/syscalls/getegid.S | 5 ++--- libc/arch-arm/syscalls/geteuid.S | 5 ++--- libc/arch-arm/syscalls/getgid.S | 5 ++--- libc/arch-arm/syscalls/getgroups.S | 5 ++--- libc/arch-arm/syscalls/getitimer.S | 5 ++--- libc/arch-arm/syscalls/getpeername.S | 5 ++--- libc/arch-arm/syscalls/getpgid.S | 5 ++--- libc/arch-arm/syscalls/getpid.S | 5 ++--- libc/arch-arm/syscalls/getppid.S | 5 ++--- libc/arch-arm/syscalls/getresgid.S | 5 ++--- libc/arch-arm/syscalls/getresuid.S | 5 ++--- libc/arch-arm/syscalls/getrlimit.S | 5 ++--- libc/arch-arm/syscalls/getrusage.S | 5 ++--- libc/arch-arm/syscalls/getsid.S | 5 ++--- libc/arch-arm/syscalls/getsockname.S | 5 ++--- libc/arch-arm/syscalls/gettid.S | 5 ++--- libc/arch-arm/syscalls/gettimeofday.S | 5 ++--- libc/arch-arm/syscalls/getuid.S | 5 ++--- libc/arch-arm/syscalls/getxattr.S | 5 ++--- libc/arch-arm/syscalls/init_module.S | 5 ++--- libc/arch-arm/syscalls/inotify_add_watch.S | 5 ++--- libc/arch-arm/syscalls/inotify_init.S | 5 ++--- libc/arch-arm/syscalls/inotify_rm_watch.S | 5 ++--- libc/arch-arm/syscalls/ioprio_get.S | 5 ++--- libc/arch-arm/syscalls/ioprio_set.S | 5 ++--- libc/arch-arm/syscalls/klogctl.S | 5 ++--- libc/arch-arm/syscalls/lchown.S | 5 ++--- libc/arch-arm/syscalls/lgetxattr.S | 5 ++--- libc/arch-arm/syscalls/link.S | 5 ++--- libc/arch-arm/syscalls/listen.S | 5 ++--- libc/arch-arm/syscalls/listxattr.S | 5 ++--- libc/arch-arm/syscalls/llistxattr.S | 5 ++--- libc/arch-arm/syscalls/lremovexattr.S | 5 ++--- libc/arch-arm/syscalls/lseek.S | 5 ++--- libc/arch-arm/syscalls/lstat.S | 5 ++--- libc/arch-arm/syscalls/madvise.S | 5 ++--- libc/arch-arm/syscalls/mincore.S | 5 ++--- libc/arch-arm/syscalls/mkdir.S | 5 ++--- libc/arch-arm/syscalls/mkdirat.S | 5 ++--- libc/arch-arm/syscalls/mknod.S | 5 ++--- libc/arch-arm/syscalls/mlock.S | 5 ++--- libc/arch-arm/syscalls/mlockall.S | 5 ++--- libc/arch-arm/syscalls/mprotect.S | 5 ++--- libc/arch-arm/syscalls/mremap.S | 5 ++--- libc/arch-arm/syscalls/msync.S | 5 ++--- libc/arch-arm/syscalls/munlock.S | 5 ++--- libc/arch-arm/syscalls/munlockall.S | 5 ++--- libc/arch-arm/syscalls/munmap.S | 5 ++--- libc/arch-arm/syscalls/nanosleep.S | 5 ++--- libc/arch-arm/syscalls/pause.S | 5 ++--- libc/arch-arm/syscalls/personality.S | 5 ++--- libc/arch-arm/syscalls/pipe.S | 5 ++--- libc/arch-arm/syscalls/pipe2.S | 5 ++--- libc/arch-arm/syscalls/poll.S | 5 ++--- libc/arch-arm/syscalls/read.S | 5 ++--- libc/arch-arm/syscalls/readlink.S | 5 ++--- libc/arch-arm/syscalls/readv.S | 5 ++--- libc/arch-arm/syscalls/recvmsg.S | 5 ++--- libc/arch-arm/syscalls/removexattr.S | 5 ++--- libc/arch-arm/syscalls/rename.S | 5 ++--- libc/arch-arm/syscalls/renameat.S | 5 ++--- libc/arch-arm/syscalls/rmdir.S | 5 ++--- libc/arch-arm/syscalls/sched_get_priority_max.S | 5 ++--- libc/arch-arm/syscalls/sched_get_priority_min.S | 5 ++--- libc/arch-arm/syscalls/sched_getparam.S | 5 ++--- libc/arch-arm/syscalls/sched_getscheduler.S | 5 ++--- libc/arch-arm/syscalls/sched_rr_get_interval.S | 5 ++--- libc/arch-arm/syscalls/sched_setaffinity.S | 5 ++--- libc/arch-arm/syscalls/sched_setparam.S | 5 ++--- libc/arch-arm/syscalls/sched_setscheduler.S | 5 ++--- libc/arch-arm/syscalls/sched_yield.S | 5 ++--- libc/arch-arm/syscalls/sendfile.S | 5 ++--- libc/arch-arm/syscalls/sendmsg.S | 5 ++--- libc/arch-arm/syscalls/setgid.S | 5 ++--- libc/arch-arm/syscalls/setgroups.S | 5 ++--- libc/arch-arm/syscalls/setitimer.S | 5 ++--- libc/arch-arm/syscalls/setpgid.S | 5 ++--- libc/arch-arm/syscalls/setpriority.S | 5 ++--- libc/arch-arm/syscalls/setregid.S | 5 ++--- libc/arch-arm/syscalls/setresgid.S | 5 ++--- libc/arch-arm/syscalls/setrlimit.S | 5 ++--- libc/arch-arm/syscalls/setsid.S | 5 ++--- libc/arch-arm/syscalls/settimeofday.S | 5 ++--- libc/arch-arm/syscalls/shutdown.S | 5 ++--- libc/arch-arm/syscalls/sigaction.S | 5 ++--- libc/arch-arm/syscalls/sigaltstack.S | 5 ++--- libc/arch-arm/syscalls/signalfd4.S | 5 ++--- libc/arch-arm/syscalls/sigpending.S | 5 ++--- libc/arch-arm/syscalls/sigprocmask.S | 5 ++--- libc/arch-arm/syscalls/socket.S | 5 ++--- libc/arch-arm/syscalls/socketpair.S | 5 ++--- libc/arch-arm/syscalls/stat.S | 5 ++--- libc/arch-arm/syscalls/symlink.S | 5 ++--- libc/arch-arm/syscalls/sync.S | 5 ++--- libc/arch-arm/syscalls/sysinfo.S | 5 ++--- libc/arch-arm/syscalls/times.S | 5 ++--- libc/arch-arm/syscalls/truncate.S | 5 ++--- libc/arch-arm/syscalls/umask.S | 5 ++--- libc/arch-arm/syscalls/umount2.S | 5 ++--- libc/arch-arm/syscalls/uname.S | 5 ++--- libc/arch-arm/syscalls/unlink.S | 5 ++--- libc/arch-arm/syscalls/unlinkat.S | 5 ++--- libc/arch-arm/syscalls/unshare.S | 5 ++--- libc/arch-arm/syscalls/utimensat.S | 5 ++--- libc/arch-arm/syscalls/utimes.S | 5 ++--- libc/arch-arm/syscalls/vfork.S | 5 ++--- libc/arch-arm/syscalls/write.S | 5 ++--- libc/arch-arm/syscalls/writev.S | 5 ++--- libc/tools/gensyscalls.py | 5 ++--- 182 files changed, 364 insertions(+), 546 deletions(-) (limited to 'libc') diff --git a/libc/arch-arm/syscalls/__brk.S b/libc/arch-arm/syscalls/__brk.S index a0854a0..e4fcab0 100644 --- a/libc/arch-arm/syscalls/__brk.S +++ b/libc/arch-arm/syscalls/__brk.S @@ -3,11 +3,10 @@ #include ENTRY(__brk) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_brk swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/__fcntl.S b/libc/arch-arm/syscalls/__fcntl.S index 067ee9a..ee82ef1 100644 --- a/libc/arch-arm/syscalls/__fcntl.S +++ b/libc/arch-arm/syscalls/__fcntl.S @@ -3,11 +3,10 @@ #include ENTRY(__fcntl) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_fcntl swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/__fcntl64.S b/libc/arch-arm/syscalls/__fcntl64.S index 3d39567..96cc16b 100644 --- a/libc/arch-arm/syscalls/__fcntl64.S +++ b/libc/arch-arm/syscalls/__fcntl64.S @@ -3,11 +3,10 @@ #include ENTRY(__fcntl64) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_fcntl64 swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/__fork.S b/libc/arch-arm/syscalls/__fork.S index 6cf08ad..9df9702 100644 --- a/libc/arch-arm/syscalls/__fork.S +++ b/libc/arch-arm/syscalls/__fork.S @@ -3,11 +3,10 @@ #include ENTRY(__fork) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_fork swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/__fstatfs64.S b/libc/arch-arm/syscalls/__fstatfs64.S index e8aa2f4..6e90214 100644 --- a/libc/arch-arm/syscalls/__fstatfs64.S +++ b/libc/arch-arm/syscalls/__fstatfs64.S @@ -3,11 +3,10 @@ #include ENTRY(__fstatfs64) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_fstatfs64 swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/__getcpu.S b/libc/arch-arm/syscalls/__getcpu.S index 78271eb..7976b06 100644 --- a/libc/arch-arm/syscalls/__getcpu.S +++ b/libc/arch-arm/syscalls/__getcpu.S @@ -3,11 +3,10 @@ #include ENTRY(__getcpu) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_getcpu swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/__getcwd.S b/libc/arch-arm/syscalls/__getcwd.S index e09a484..6fc2d64 100644 --- a/libc/arch-arm/syscalls/__getcwd.S +++ b/libc/arch-arm/syscalls/__getcwd.S @@ -3,11 +3,10 @@ #include ENTRY(__getcwd) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_getcwd swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/__getpriority.S b/libc/arch-arm/syscalls/__getpriority.S index 30e335c..6fb2a43 100644 --- a/libc/arch-arm/syscalls/__getpriority.S +++ b/libc/arch-arm/syscalls/__getpriority.S @@ -3,11 +3,10 @@ #include ENTRY(__getpriority) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_getpriority swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/__ioctl.S b/libc/arch-arm/syscalls/__ioctl.S index 554809f..56fd607 100644 --- a/libc/arch-arm/syscalls/__ioctl.S +++ b/libc/arch-arm/syscalls/__ioctl.S @@ -3,11 +3,10 @@ #include ENTRY(__ioctl) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_ioctl swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/__open.S b/libc/arch-arm/syscalls/__open.S index be2f4bf..589d5ad 100644 --- a/libc/arch-arm/syscalls/__open.S +++ b/libc/arch-arm/syscalls/__open.S @@ -3,11 +3,10 @@ #include ENTRY(__open) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_open swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/__openat.S b/libc/arch-arm/syscalls/__openat.S index 4d91780..10c30d3 100644 --- a/libc/arch-arm/syscalls/__openat.S +++ b/libc/arch-arm/syscalls/__openat.S @@ -3,11 +3,10 @@ #include ENTRY(__openat) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_openat swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/__ptrace.S b/libc/arch-arm/syscalls/__ptrace.S index 04e0a30..72acd70 100644 --- a/libc/arch-arm/syscalls/__ptrace.S +++ b/libc/arch-arm/syscalls/__ptrace.S @@ -3,11 +3,10 @@ #include ENTRY(__ptrace) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_ptrace swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/__reboot.S b/libc/arch-arm/syscalls/__reboot.S index e75df45..07898a0 100644 --- a/libc/arch-arm/syscalls/__reboot.S +++ b/libc/arch-arm/syscalls/__reboot.S @@ -3,11 +3,10 @@ #include ENTRY(__reboot) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_reboot swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/__rt_sigaction.S b/libc/arch-arm/syscalls/__rt_sigaction.S index 57a3149..31d4c1e 100644 --- a/libc/arch-arm/syscalls/__rt_sigaction.S +++ b/libc/arch-arm/syscalls/__rt_sigaction.S @@ -3,11 +3,10 @@ #include ENTRY(__rt_sigaction) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_rt_sigaction swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/__rt_sigprocmask.S b/libc/arch-arm/syscalls/__rt_sigprocmask.S index 8220825..640a7ee 100644 --- a/libc/arch-arm/syscalls/__rt_sigprocmask.S +++ b/libc/arch-arm/syscalls/__rt_sigprocmask.S @@ -3,11 +3,10 @@ #include ENTRY(__rt_sigprocmask) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_rt_sigprocmask swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/__rt_sigtimedwait.S b/libc/arch-arm/syscalls/__rt_sigtimedwait.S index bce63ed..ad725af 100644 --- a/libc/arch-arm/syscalls/__rt_sigtimedwait.S +++ b/libc/arch-arm/syscalls/__rt_sigtimedwait.S @@ -3,11 +3,10 @@ #include ENTRY(__rt_sigtimedwait) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_rt_sigtimedwait swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/__sched_getaffinity.S b/libc/arch-arm/syscalls/__sched_getaffinity.S index bdd4517..bee1674 100644 --- a/libc/arch-arm/syscalls/__sched_getaffinity.S +++ b/libc/arch-arm/syscalls/__sched_getaffinity.S @@ -3,11 +3,10 @@ #include ENTRY(__sched_getaffinity) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_sched_getaffinity swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/__set_tls.S b/libc/arch-arm/syscalls/__set_tls.S index cf5d6b6..3039b35 100644 --- a/libc/arch-arm/syscalls/__set_tls.S +++ b/libc/arch-arm/syscalls/__set_tls.S @@ -3,11 +3,10 @@ #include ENTRY(__set_tls) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_ARM_set_tls swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/__setresuid.S b/libc/arch-arm/syscalls/__setresuid.S index d5053ba..1877bbf 100644 --- a/libc/arch-arm/syscalls/__setresuid.S +++ b/libc/arch-arm/syscalls/__setresuid.S @@ -3,11 +3,10 @@ #include ENTRY(__setresuid) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_setresuid32 swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/__setreuid.S b/libc/arch-arm/syscalls/__setreuid.S index 9cd51f6..2129cb2 100644 --- a/libc/arch-arm/syscalls/__setreuid.S +++ b/libc/arch-arm/syscalls/__setreuid.S @@ -3,11 +3,10 @@ #include ENTRY(__setreuid) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_setreuid32 swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/__setuid.S b/libc/arch-arm/syscalls/__setuid.S index 88dc58e..9df2f89 100644 --- a/libc/arch-arm/syscalls/__setuid.S +++ b/libc/arch-arm/syscalls/__setuid.S @@ -3,11 +3,10 @@ #include ENTRY(__setuid) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_setuid32 swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/__sigsuspend.S b/libc/arch-arm/syscalls/__sigsuspend.S index 1ececb7..8f1ff55 100644 --- a/libc/arch-arm/syscalls/__sigsuspend.S +++ b/libc/arch-arm/syscalls/__sigsuspend.S @@ -3,11 +3,10 @@ #include ENTRY(__sigsuspend) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_sigsuspend swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/__statfs64.S b/libc/arch-arm/syscalls/__statfs64.S index 4afef71..f8d63a3 100644 --- a/libc/arch-arm/syscalls/__statfs64.S +++ b/libc/arch-arm/syscalls/__statfs64.S @@ -3,11 +3,10 @@ #include ENTRY(__statfs64) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_statfs64 swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/__syslog.S b/libc/arch-arm/syscalls/__syslog.S index 6dbe745..8ad0271 100644 --- a/libc/arch-arm/syscalls/__syslog.S +++ b/libc/arch-arm/syscalls/__syslog.S @@ -3,11 +3,10 @@ #include ENTRY(__syslog) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_syslog swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/__timer_create.S b/libc/arch-arm/syscalls/__timer_create.S index c547137..fcb4e3f 100644 --- a/libc/arch-arm/syscalls/__timer_create.S +++ b/libc/arch-arm/syscalls/__timer_create.S @@ -3,11 +3,10 @@ #include ENTRY(__timer_create) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_timer_create swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/__timer_delete.S b/libc/arch-arm/syscalls/__timer_delete.S index ca2e0a3..de303fc 100644 --- a/libc/arch-arm/syscalls/__timer_delete.S +++ b/libc/arch-arm/syscalls/__timer_delete.S @@ -3,11 +3,10 @@ #include ENTRY(__timer_delete) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_timer_delete swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/__timer_getoverrun.S b/libc/arch-arm/syscalls/__timer_getoverrun.S index b0f18e7..a96b047 100644 --- a/libc/arch-arm/syscalls/__timer_getoverrun.S +++ b/libc/arch-arm/syscalls/__timer_getoverrun.S @@ -3,11 +3,10 @@ #include ENTRY(__timer_getoverrun) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_timer_getoverrun swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/__timer_gettime.S b/libc/arch-arm/syscalls/__timer_gettime.S index c172602..6e6bbf5 100644 --- a/libc/arch-arm/syscalls/__timer_gettime.S +++ b/libc/arch-arm/syscalls/__timer_gettime.S @@ -3,11 +3,10 @@ #include ENTRY(__timer_gettime) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_timer_gettime swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/__timer_settime.S b/libc/arch-arm/syscalls/__timer_settime.S index 8220440..bcbe298 100644 --- a/libc/arch-arm/syscalls/__timer_settime.S +++ b/libc/arch-arm/syscalls/__timer_settime.S @@ -3,11 +3,10 @@ #include ENTRY(__timer_settime) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_timer_settime swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/__wait4.S b/libc/arch-arm/syscalls/__wait4.S index fa34502..2a0e5c4 100644 --- a/libc/arch-arm/syscalls/__wait4.S +++ b/libc/arch-arm/syscalls/__wait4.S @@ -3,11 +3,10 @@ #include ENTRY(__wait4) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_wait4 swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/_exit.S b/libc/arch-arm/syscalls/_exit.S index 77487b5..ab444ce 100644 --- a/libc/arch-arm/syscalls/_exit.S +++ b/libc/arch-arm/syscalls/_exit.S @@ -3,11 +3,10 @@ #include ENTRY(_exit) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_exit_group swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/_exit_thread.S b/libc/arch-arm/syscalls/_exit_thread.S index bd16ff1..53a21fb 100644 --- a/libc/arch-arm/syscalls/_exit_thread.S +++ b/libc/arch-arm/syscalls/_exit_thread.S @@ -3,11 +3,10 @@ #include ENTRY(_exit_thread) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_exit swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/accept.S b/libc/arch-arm/syscalls/accept.S index 0dcfb0c..b1a2d72 100644 --- a/libc/arch-arm/syscalls/accept.S +++ b/libc/arch-arm/syscalls/accept.S @@ -3,11 +3,10 @@ #include ENTRY(accept) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_accept swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/access.S b/libc/arch-arm/syscalls/access.S index cf585a3..c0b0333 100644 --- a/libc/arch-arm/syscalls/access.S +++ b/libc/arch-arm/syscalls/access.S @@ -3,11 +3,10 @@ #include ENTRY(access) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_access swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/acct.S b/libc/arch-arm/syscalls/acct.S index 85346e4..5485be1 100644 --- a/libc/arch-arm/syscalls/acct.S +++ b/libc/arch-arm/syscalls/acct.S @@ -3,11 +3,10 @@ #include ENTRY(acct) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_acct swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/bind.S b/libc/arch-arm/syscalls/bind.S index 85d0471..1bb5843 100644 --- a/libc/arch-arm/syscalls/bind.S +++ b/libc/arch-arm/syscalls/bind.S @@ -3,11 +3,10 @@ #include ENTRY(bind) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_bind swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/cacheflush.S b/libc/arch-arm/syscalls/cacheflush.S index 05b2411..fd7f68d 100644 --- a/libc/arch-arm/syscalls/cacheflush.S +++ b/libc/arch-arm/syscalls/cacheflush.S @@ -3,11 +3,10 @@ #include ENTRY(cacheflush) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_ARM_cacheflush swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/capget.S b/libc/arch-arm/syscalls/capget.S index 0f3ba31..1f425a0 100644 --- a/libc/arch-arm/syscalls/capget.S +++ b/libc/arch-arm/syscalls/capget.S @@ -3,11 +3,10 @@ #include ENTRY(capget) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_capget swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/capset.S b/libc/arch-arm/syscalls/capset.S index 2254db2..13ebd5a 100644 --- a/libc/arch-arm/syscalls/capset.S +++ b/libc/arch-arm/syscalls/capset.S @@ -3,11 +3,10 @@ #include ENTRY(capset) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_capset swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/chdir.S b/libc/arch-arm/syscalls/chdir.S index 57d6b13..4965495 100644 --- a/libc/arch-arm/syscalls/chdir.S +++ b/libc/arch-arm/syscalls/chdir.S @@ -3,11 +3,10 @@ #include ENTRY(chdir) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_chdir swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/chmod.S b/libc/arch-arm/syscalls/chmod.S index 8909c6f..ed9d52f 100644 --- a/libc/arch-arm/syscalls/chmod.S +++ b/libc/arch-arm/syscalls/chmod.S @@ -3,11 +3,10 @@ #include ENTRY(chmod) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_chmod swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/chown.S b/libc/arch-arm/syscalls/chown.S index cbbd8a8..ff1cec2 100644 --- a/libc/arch-arm/syscalls/chown.S +++ b/libc/arch-arm/syscalls/chown.S @@ -3,11 +3,10 @@ #include ENTRY(chown) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_chown32 swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/chroot.S b/libc/arch-arm/syscalls/chroot.S index a679172..bc8e3fe 100644 --- a/libc/arch-arm/syscalls/chroot.S +++ b/libc/arch-arm/syscalls/chroot.S @@ -3,11 +3,10 @@ #include ENTRY(chroot) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_chroot swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/clock_getres.S b/libc/arch-arm/syscalls/clock_getres.S index 705f296..66cf9ec 100644 --- a/libc/arch-arm/syscalls/clock_getres.S +++ b/libc/arch-arm/syscalls/clock_getres.S @@ -3,11 +3,10 @@ #include ENTRY(clock_getres) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_clock_getres swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/clock_gettime.S b/libc/arch-arm/syscalls/clock_gettime.S index a9ab41f..4e42c82 100644 --- a/libc/arch-arm/syscalls/clock_gettime.S +++ b/libc/arch-arm/syscalls/clock_gettime.S @@ -3,11 +3,10 @@ #include ENTRY(clock_gettime) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_clock_gettime swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/clock_nanosleep.S b/libc/arch-arm/syscalls/clock_nanosleep.S index f8e7f73..6d530a2 100644 --- a/libc/arch-arm/syscalls/clock_nanosleep.S +++ b/libc/arch-arm/syscalls/clock_nanosleep.S @@ -3,11 +3,10 @@ #include ENTRY(clock_nanosleep) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_clock_nanosleep swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/clock_settime.S b/libc/arch-arm/syscalls/clock_settime.S index a996441..e9374b5 100644 --- a/libc/arch-arm/syscalls/clock_settime.S +++ b/libc/arch-arm/syscalls/clock_settime.S @@ -3,11 +3,10 @@ #include ENTRY(clock_settime) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_clock_settime swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/close.S b/libc/arch-arm/syscalls/close.S index 36d78a4..eb4cb62 100644 --- a/libc/arch-arm/syscalls/close.S +++ b/libc/arch-arm/syscalls/close.S @@ -3,11 +3,10 @@ #include ENTRY(close) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_close swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/connect.S b/libc/arch-arm/syscalls/connect.S index ea14c17..b97b4fe 100644 --- a/libc/arch-arm/syscalls/connect.S +++ b/libc/arch-arm/syscalls/connect.S @@ -3,11 +3,10 @@ #include ENTRY(connect) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_connect swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/delete_module.S b/libc/arch-arm/syscalls/delete_module.S index df8aae0..0994994 100644 --- a/libc/arch-arm/syscalls/delete_module.S +++ b/libc/arch-arm/syscalls/delete_module.S @@ -3,11 +3,10 @@ #include ENTRY(delete_module) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_delete_module swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/dup.S b/libc/arch-arm/syscalls/dup.S index b0c1cda..8854342 100644 --- a/libc/arch-arm/syscalls/dup.S +++ b/libc/arch-arm/syscalls/dup.S @@ -3,11 +3,10 @@ #include ENTRY(dup) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_dup swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/dup2.S b/libc/arch-arm/syscalls/dup2.S index ed346d9..0dcc57f 100644 --- a/libc/arch-arm/syscalls/dup2.S +++ b/libc/arch-arm/syscalls/dup2.S @@ -3,11 +3,10 @@ #include ENTRY(dup2) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_dup2 swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/epoll_create.S b/libc/arch-arm/syscalls/epoll_create.S index 1aab606..92a2781 100644 --- a/libc/arch-arm/syscalls/epoll_create.S +++ b/libc/arch-arm/syscalls/epoll_create.S @@ -3,11 +3,10 @@ #include ENTRY(epoll_create) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_epoll_create swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/epoll_ctl.S b/libc/arch-arm/syscalls/epoll_ctl.S index c0ecf06..b3c630f 100644 --- a/libc/arch-arm/syscalls/epoll_ctl.S +++ b/libc/arch-arm/syscalls/epoll_ctl.S @@ -3,11 +3,10 @@ #include ENTRY(epoll_ctl) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_epoll_ctl swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/epoll_wait.S b/libc/arch-arm/syscalls/epoll_wait.S index 3535001..3ccac91 100644 --- a/libc/arch-arm/syscalls/epoll_wait.S +++ b/libc/arch-arm/syscalls/epoll_wait.S @@ -3,11 +3,10 @@ #include ENTRY(epoll_wait) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_epoll_wait swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/eventfd.S b/libc/arch-arm/syscalls/eventfd.S index 857b6c0..754f019 100644 --- a/libc/arch-arm/syscalls/eventfd.S +++ b/libc/arch-arm/syscalls/eventfd.S @@ -3,11 +3,10 @@ #include ENTRY(eventfd) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_eventfd2 swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/execve.S b/libc/arch-arm/syscalls/execve.S index 1a66167..49e5b13 100644 --- a/libc/arch-arm/syscalls/execve.S +++ b/libc/arch-arm/syscalls/execve.S @@ -3,11 +3,10 @@ #include ENTRY(execve) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_execve swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/faccessat.S b/libc/arch-arm/syscalls/faccessat.S index a2f176f..5ade517 100644 --- a/libc/arch-arm/syscalls/faccessat.S +++ b/libc/arch-arm/syscalls/faccessat.S @@ -3,11 +3,10 @@ #include ENTRY(faccessat) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_faccessat swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/fchdir.S b/libc/arch-arm/syscalls/fchdir.S index 7d80cf0..96a047d 100644 --- a/libc/arch-arm/syscalls/fchdir.S +++ b/libc/arch-arm/syscalls/fchdir.S @@ -3,11 +3,10 @@ #include ENTRY(fchdir) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_fchdir swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/fchmod.S b/libc/arch-arm/syscalls/fchmod.S index bc8e643..b096a8c 100644 --- a/libc/arch-arm/syscalls/fchmod.S +++ b/libc/arch-arm/syscalls/fchmod.S @@ -3,11 +3,10 @@ #include ENTRY(fchmod) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_fchmod swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/fchmodat.S b/libc/arch-arm/syscalls/fchmodat.S index ac782e5..8c87598 100644 --- a/libc/arch-arm/syscalls/fchmodat.S +++ b/libc/arch-arm/syscalls/fchmodat.S @@ -3,11 +3,10 @@ #include ENTRY(fchmodat) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_fchmodat swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/fchown.S b/libc/arch-arm/syscalls/fchown.S index 22d7fd2..2f7e92b 100644 --- a/libc/arch-arm/syscalls/fchown.S +++ b/libc/arch-arm/syscalls/fchown.S @@ -3,11 +3,10 @@ #include ENTRY(fchown) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_fchown32 swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/fdatasync.S b/libc/arch-arm/syscalls/fdatasync.S index d41e823..31818c8 100644 --- a/libc/arch-arm/syscalls/fdatasync.S +++ b/libc/arch-arm/syscalls/fdatasync.S @@ -3,11 +3,10 @@ #include ENTRY(fdatasync) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_fdatasync swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/fgetxattr.S b/libc/arch-arm/syscalls/fgetxattr.S index 32b8ef8..6f3eb3d 100644 --- a/libc/arch-arm/syscalls/fgetxattr.S +++ b/libc/arch-arm/syscalls/fgetxattr.S @@ -3,11 +3,10 @@ #include ENTRY(fgetxattr) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_fgetxattr swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/flistxattr.S b/libc/arch-arm/syscalls/flistxattr.S index 0785e77..38e856d 100644 --- a/libc/arch-arm/syscalls/flistxattr.S +++ b/libc/arch-arm/syscalls/flistxattr.S @@ -3,11 +3,10 @@ #include ENTRY(flistxattr) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_flistxattr swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/flock.S b/libc/arch-arm/syscalls/flock.S index c0d2844..3732bfe 100644 --- a/libc/arch-arm/syscalls/flock.S +++ b/libc/arch-arm/syscalls/flock.S @@ -3,11 +3,10 @@ #include ENTRY(flock) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_flock swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/fremovexattr.S b/libc/arch-arm/syscalls/fremovexattr.S index ae97d13..45cf803 100644 --- a/libc/arch-arm/syscalls/fremovexattr.S +++ b/libc/arch-arm/syscalls/fremovexattr.S @@ -3,11 +3,10 @@ #include ENTRY(fremovexattr) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_fremovexattr swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/fstat.S b/libc/arch-arm/syscalls/fstat.S index e75649f..d314213 100644 --- a/libc/arch-arm/syscalls/fstat.S +++ b/libc/arch-arm/syscalls/fstat.S @@ -3,11 +3,10 @@ #include ENTRY(fstat) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_fstat64 swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/fstatat.S b/libc/arch-arm/syscalls/fstatat.S index 065ef9f..8cf1a57 100644 --- a/libc/arch-arm/syscalls/fstatat.S +++ b/libc/arch-arm/syscalls/fstatat.S @@ -3,11 +3,10 @@ #include ENTRY(fstatat) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_fstatat64 swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/fsync.S b/libc/arch-arm/syscalls/fsync.S index f0de9ca..52cfa53 100644 --- a/libc/arch-arm/syscalls/fsync.S +++ b/libc/arch-arm/syscalls/fsync.S @@ -3,11 +3,10 @@ #include ENTRY(fsync) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_fsync swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/ftruncate.S b/libc/arch-arm/syscalls/ftruncate.S index 2e4a308..14cd87d 100644 --- a/libc/arch-arm/syscalls/ftruncate.S +++ b/libc/arch-arm/syscalls/ftruncate.S @@ -3,11 +3,10 @@ #include ENTRY(ftruncate) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_ftruncate swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/ftruncate64.S b/libc/arch-arm/syscalls/ftruncate64.S index 7c7b80b..0e1b42b 100644 --- a/libc/arch-arm/syscalls/ftruncate64.S +++ b/libc/arch-arm/syscalls/ftruncate64.S @@ -3,11 +3,10 @@ #include ENTRY(ftruncate64) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_ftruncate64 swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/getdents.S b/libc/arch-arm/syscalls/getdents.S index 82b6e4c..e6c3028 100644 --- a/libc/arch-arm/syscalls/getdents.S +++ b/libc/arch-arm/syscalls/getdents.S @@ -3,11 +3,10 @@ #include ENTRY(getdents) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_getdents64 swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/getegid.S b/libc/arch-arm/syscalls/getegid.S index 27ea272..22794d1 100644 --- a/libc/arch-arm/syscalls/getegid.S +++ b/libc/arch-arm/syscalls/getegid.S @@ -3,11 +3,10 @@ #include ENTRY(getegid) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_getegid32 swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/geteuid.S b/libc/arch-arm/syscalls/geteuid.S index d4c9cd1..cfb318f 100644 --- a/libc/arch-arm/syscalls/geteuid.S +++ b/libc/arch-arm/syscalls/geteuid.S @@ -3,11 +3,10 @@ #include ENTRY(geteuid) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_geteuid32 swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/getgid.S b/libc/arch-arm/syscalls/getgid.S index 9a40fe6..085061e 100644 --- a/libc/arch-arm/syscalls/getgid.S +++ b/libc/arch-arm/syscalls/getgid.S @@ -3,11 +3,10 @@ #include ENTRY(getgid) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_getgid32 swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/getgroups.S b/libc/arch-arm/syscalls/getgroups.S index 2995cc8..c426d87 100644 --- a/libc/arch-arm/syscalls/getgroups.S +++ b/libc/arch-arm/syscalls/getgroups.S @@ -3,11 +3,10 @@ #include ENTRY(getgroups) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_getgroups32 swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/getitimer.S b/libc/arch-arm/syscalls/getitimer.S index a3f1423..5d832d9 100644 --- a/libc/arch-arm/syscalls/getitimer.S +++ b/libc/arch-arm/syscalls/getitimer.S @@ -3,11 +3,10 @@ #include ENTRY(getitimer) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_getitimer swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/getpeername.S b/libc/arch-arm/syscalls/getpeername.S index f90c344..ced69f7 100644 --- a/libc/arch-arm/syscalls/getpeername.S +++ b/libc/arch-arm/syscalls/getpeername.S @@ -3,11 +3,10 @@ #include ENTRY(getpeername) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_getpeername swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/getpgid.S b/libc/arch-arm/syscalls/getpgid.S index 0fc57a4..d599f1e 100644 --- a/libc/arch-arm/syscalls/getpgid.S +++ b/libc/arch-arm/syscalls/getpgid.S @@ -3,11 +3,10 @@ #include ENTRY(getpgid) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_getpgid swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/getpid.S b/libc/arch-arm/syscalls/getpid.S index 440ae9b..ef19d25 100644 --- a/libc/arch-arm/syscalls/getpid.S +++ b/libc/arch-arm/syscalls/getpid.S @@ -3,11 +3,10 @@ #include ENTRY(getpid) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_getpid swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/getppid.S b/libc/arch-arm/syscalls/getppid.S index 3eb1b86..1fe30d4 100644 --- a/libc/arch-arm/syscalls/getppid.S +++ b/libc/arch-arm/syscalls/getppid.S @@ -3,11 +3,10 @@ #include ENTRY(getppid) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_getppid swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/getresgid.S b/libc/arch-arm/syscalls/getresgid.S index a022341..e8d2129 100644 --- a/libc/arch-arm/syscalls/getresgid.S +++ b/libc/arch-arm/syscalls/getresgid.S @@ -3,11 +3,10 @@ #include ENTRY(getresgid) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_getresgid32 swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/getresuid.S b/libc/arch-arm/syscalls/getresuid.S index 23112a6..cdfe0f7 100644 --- a/libc/arch-arm/syscalls/getresuid.S +++ b/libc/arch-arm/syscalls/getresuid.S @@ -3,11 +3,10 @@ #include ENTRY(getresuid) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_getresuid32 swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/getrlimit.S b/libc/arch-arm/syscalls/getrlimit.S index 8b1c089..3acbf95 100644 --- a/libc/arch-arm/syscalls/getrlimit.S +++ b/libc/arch-arm/syscalls/getrlimit.S @@ -3,11 +3,10 @@ #include ENTRY(getrlimit) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_ugetrlimit swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/getrusage.S b/libc/arch-arm/syscalls/getrusage.S index 74fa20b..e17fc4a 100644 --- a/libc/arch-arm/syscalls/getrusage.S +++ b/libc/arch-arm/syscalls/getrusage.S @@ -3,11 +3,10 @@ #include ENTRY(getrusage) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_getrusage swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/getsid.S b/libc/arch-arm/syscalls/getsid.S index 856d41a..06e6d67 100644 --- a/libc/arch-arm/syscalls/getsid.S +++ b/libc/arch-arm/syscalls/getsid.S @@ -3,11 +3,10 @@ #include ENTRY(getsid) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_getsid swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/getsockname.S b/libc/arch-arm/syscalls/getsockname.S index 99470e2..458814f 100644 --- a/libc/arch-arm/syscalls/getsockname.S +++ b/libc/arch-arm/syscalls/getsockname.S @@ -3,11 +3,10 @@ #include ENTRY(getsockname) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_getsockname swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/gettid.S b/libc/arch-arm/syscalls/gettid.S index f5b15be..f35c7ea 100644 --- a/libc/arch-arm/syscalls/gettid.S +++ b/libc/arch-arm/syscalls/gettid.S @@ -3,11 +3,10 @@ #include ENTRY(gettid) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_gettid swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/gettimeofday.S b/libc/arch-arm/syscalls/gettimeofday.S index 9b47daf..113413e 100644 --- a/libc/arch-arm/syscalls/gettimeofday.S +++ b/libc/arch-arm/syscalls/gettimeofday.S @@ -3,11 +3,10 @@ #include ENTRY(gettimeofday) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_gettimeofday swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/getuid.S b/libc/arch-arm/syscalls/getuid.S index 053dc31..20ed7f9 100644 --- a/libc/arch-arm/syscalls/getuid.S +++ b/libc/arch-arm/syscalls/getuid.S @@ -3,11 +3,10 @@ #include ENTRY(getuid) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_getuid32 swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/getxattr.S b/libc/arch-arm/syscalls/getxattr.S index 18532ce..0a7cbef 100644 --- a/libc/arch-arm/syscalls/getxattr.S +++ b/libc/arch-arm/syscalls/getxattr.S @@ -3,11 +3,10 @@ #include ENTRY(getxattr) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_getxattr swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/init_module.S b/libc/arch-arm/syscalls/init_module.S index 73beb46..de41a7e 100644 --- a/libc/arch-arm/syscalls/init_module.S +++ b/libc/arch-arm/syscalls/init_module.S @@ -3,11 +3,10 @@ #include ENTRY(init_module) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_init_module swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/inotify_add_watch.S b/libc/arch-arm/syscalls/inotify_add_watch.S index da4a296..aa8fcb7 100644 --- a/libc/arch-arm/syscalls/inotify_add_watch.S +++ b/libc/arch-arm/syscalls/inotify_add_watch.S @@ -3,11 +3,10 @@ #include ENTRY(inotify_add_watch) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_inotify_add_watch swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/inotify_init.S b/libc/arch-arm/syscalls/inotify_init.S index bac124c..56d4b93 100644 --- a/libc/arch-arm/syscalls/inotify_init.S +++ b/libc/arch-arm/syscalls/inotify_init.S @@ -3,11 +3,10 @@ #include ENTRY(inotify_init) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_inotify_init swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/inotify_rm_watch.S b/libc/arch-arm/syscalls/inotify_rm_watch.S index f576480..4315061 100644 --- a/libc/arch-arm/syscalls/inotify_rm_watch.S +++ b/libc/arch-arm/syscalls/inotify_rm_watch.S @@ -3,11 +3,10 @@ #include ENTRY(inotify_rm_watch) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_inotify_rm_watch swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/ioprio_get.S b/libc/arch-arm/syscalls/ioprio_get.S index 13739dc..d3bd796 100644 --- a/libc/arch-arm/syscalls/ioprio_get.S +++ b/libc/arch-arm/syscalls/ioprio_get.S @@ -3,11 +3,10 @@ #include ENTRY(ioprio_get) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_ioprio_get swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/ioprio_set.S b/libc/arch-arm/syscalls/ioprio_set.S index 7e40ee5..c42d305 100644 --- a/libc/arch-arm/syscalls/ioprio_set.S +++ b/libc/arch-arm/syscalls/ioprio_set.S @@ -3,11 +3,10 @@ #include ENTRY(ioprio_set) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_ioprio_set swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/klogctl.S b/libc/arch-arm/syscalls/klogctl.S index 5434b30..1356815 100644 --- a/libc/arch-arm/syscalls/klogctl.S +++ b/libc/arch-arm/syscalls/klogctl.S @@ -3,11 +3,10 @@ #include ENTRY(klogctl) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_syslog swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/lchown.S b/libc/arch-arm/syscalls/lchown.S index 789e5af..56902a3 100644 --- a/libc/arch-arm/syscalls/lchown.S +++ b/libc/arch-arm/syscalls/lchown.S @@ -3,11 +3,10 @@ #include ENTRY(lchown) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_lchown32 swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/lgetxattr.S b/libc/arch-arm/syscalls/lgetxattr.S index 61fc098..cc30d63 100644 --- a/libc/arch-arm/syscalls/lgetxattr.S +++ b/libc/arch-arm/syscalls/lgetxattr.S @@ -3,11 +3,10 @@ #include ENTRY(lgetxattr) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_lgetxattr swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/link.S b/libc/arch-arm/syscalls/link.S index ccf0a1d..dab8fa6 100644 --- a/libc/arch-arm/syscalls/link.S +++ b/libc/arch-arm/syscalls/link.S @@ -3,11 +3,10 @@ #include ENTRY(link) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_link swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/listen.S b/libc/arch-arm/syscalls/listen.S index bb7f7a4..fac3702 100644 --- a/libc/arch-arm/syscalls/listen.S +++ b/libc/arch-arm/syscalls/listen.S @@ -3,11 +3,10 @@ #include ENTRY(listen) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_listen swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/listxattr.S b/libc/arch-arm/syscalls/listxattr.S index 6bbdb6a..8c7fc9b 100644 --- a/libc/arch-arm/syscalls/listxattr.S +++ b/libc/arch-arm/syscalls/listxattr.S @@ -3,11 +3,10 @@ #include ENTRY(listxattr) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_listxattr swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/llistxattr.S b/libc/arch-arm/syscalls/llistxattr.S index 89682df..9cade18 100644 --- a/libc/arch-arm/syscalls/llistxattr.S +++ b/libc/arch-arm/syscalls/llistxattr.S @@ -3,11 +3,10 @@ #include ENTRY(llistxattr) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_llistxattr swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/lremovexattr.S b/libc/arch-arm/syscalls/lremovexattr.S index 62f6722..d4a7b82 100644 --- a/libc/arch-arm/syscalls/lremovexattr.S +++ b/libc/arch-arm/syscalls/lremovexattr.S @@ -3,11 +3,10 @@ #include ENTRY(lremovexattr) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_lremovexattr swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/lseek.S b/libc/arch-arm/syscalls/lseek.S index 2cd0853..a452856 100644 --- a/libc/arch-arm/syscalls/lseek.S +++ b/libc/arch-arm/syscalls/lseek.S @@ -3,11 +3,10 @@ #include ENTRY(lseek) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_lseek swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/lstat.S b/libc/arch-arm/syscalls/lstat.S index dbecefe..69f2146 100644 --- a/libc/arch-arm/syscalls/lstat.S +++ b/libc/arch-arm/syscalls/lstat.S @@ -3,11 +3,10 @@ #include ENTRY(lstat) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_lstat64 swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/madvise.S b/libc/arch-arm/syscalls/madvise.S index 024476f..02944a2 100644 --- a/libc/arch-arm/syscalls/madvise.S +++ b/libc/arch-arm/syscalls/madvise.S @@ -3,11 +3,10 @@ #include ENTRY(madvise) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_madvise swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/mincore.S b/libc/arch-arm/syscalls/mincore.S index 7a2a378..5ffdc11 100644 --- a/libc/arch-arm/syscalls/mincore.S +++ b/libc/arch-arm/syscalls/mincore.S @@ -3,11 +3,10 @@ #include ENTRY(mincore) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_mincore swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/mkdir.S b/libc/arch-arm/syscalls/mkdir.S index e51beab..c2aa080 100644 --- a/libc/arch-arm/syscalls/mkdir.S +++ b/libc/arch-arm/syscalls/mkdir.S @@ -3,11 +3,10 @@ #include ENTRY(mkdir) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_mkdir swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/mkdirat.S b/libc/arch-arm/syscalls/mkdirat.S index 52f0be3..421c70a 100644 --- a/libc/arch-arm/syscalls/mkdirat.S +++ b/libc/arch-arm/syscalls/mkdirat.S @@ -3,11 +3,10 @@ #include ENTRY(mkdirat) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_mkdirat swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/mknod.S b/libc/arch-arm/syscalls/mknod.S index ac6d976..4aca2c5 100644 --- a/libc/arch-arm/syscalls/mknod.S +++ b/libc/arch-arm/syscalls/mknod.S @@ -3,11 +3,10 @@ #include ENTRY(mknod) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_mknod swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/mlock.S b/libc/arch-arm/syscalls/mlock.S index ad140d1..5c8e74d 100644 --- a/libc/arch-arm/syscalls/mlock.S +++ b/libc/arch-arm/syscalls/mlock.S @@ -3,11 +3,10 @@ #include ENTRY(mlock) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_mlock swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/mlockall.S b/libc/arch-arm/syscalls/mlockall.S index 45c782e..a89545a 100644 --- a/libc/arch-arm/syscalls/mlockall.S +++ b/libc/arch-arm/syscalls/mlockall.S @@ -3,11 +3,10 @@ #include ENTRY(mlockall) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_mlockall swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/mprotect.S b/libc/arch-arm/syscalls/mprotect.S index 39ae353..06238bf 100644 --- a/libc/arch-arm/syscalls/mprotect.S +++ b/libc/arch-arm/syscalls/mprotect.S @@ -3,11 +3,10 @@ #include ENTRY(mprotect) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_mprotect swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/mremap.S b/libc/arch-arm/syscalls/mremap.S index 918f3b7..29b308b 100644 --- a/libc/arch-arm/syscalls/mremap.S +++ b/libc/arch-arm/syscalls/mremap.S @@ -3,11 +3,10 @@ #include ENTRY(mremap) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_mremap swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/msync.S b/libc/arch-arm/syscalls/msync.S index 2a5922c..af8fc0c 100644 --- a/libc/arch-arm/syscalls/msync.S +++ b/libc/arch-arm/syscalls/msync.S @@ -3,11 +3,10 @@ #include ENTRY(msync) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_msync swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/munlock.S b/libc/arch-arm/syscalls/munlock.S index 5a02aaf..42df37e 100644 --- a/libc/arch-arm/syscalls/munlock.S +++ b/libc/arch-arm/syscalls/munlock.S @@ -3,11 +3,10 @@ #include ENTRY(munlock) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_munlock swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/munlockall.S b/libc/arch-arm/syscalls/munlockall.S index 8106965..c0fca33 100644 --- a/libc/arch-arm/syscalls/munlockall.S +++ b/libc/arch-arm/syscalls/munlockall.S @@ -3,11 +3,10 @@ #include ENTRY(munlockall) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_munlockall swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/munmap.S b/libc/arch-arm/syscalls/munmap.S index 6bb8dd8..9d7b60f 100644 --- a/libc/arch-arm/syscalls/munmap.S +++ b/libc/arch-arm/syscalls/munmap.S @@ -3,11 +3,10 @@ #include ENTRY(munmap) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_munmap swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/nanosleep.S b/libc/arch-arm/syscalls/nanosleep.S index af36ced..7f4cda6 100644 --- a/libc/arch-arm/syscalls/nanosleep.S +++ b/libc/arch-arm/syscalls/nanosleep.S @@ -3,11 +3,10 @@ #include ENTRY(nanosleep) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_nanosleep swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/pause.S b/libc/arch-arm/syscalls/pause.S index e64f4f3..1238f4b 100644 --- a/libc/arch-arm/syscalls/pause.S +++ b/libc/arch-arm/syscalls/pause.S @@ -3,11 +3,10 @@ #include ENTRY(pause) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_pause swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/personality.S b/libc/arch-arm/syscalls/personality.S index 17ac686..f338d71 100644 --- a/libc/arch-arm/syscalls/personality.S +++ b/libc/arch-arm/syscalls/personality.S @@ -3,11 +3,10 @@ #include ENTRY(personality) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_personality swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/pipe.S b/libc/arch-arm/syscalls/pipe.S index 3968703..ec0efb1 100644 --- a/libc/arch-arm/syscalls/pipe.S +++ b/libc/arch-arm/syscalls/pipe.S @@ -3,11 +3,10 @@ #include ENTRY(pipe) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_pipe swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/pipe2.S b/libc/arch-arm/syscalls/pipe2.S index da2ecba..f79c8f5 100644 --- a/libc/arch-arm/syscalls/pipe2.S +++ b/libc/arch-arm/syscalls/pipe2.S @@ -3,11 +3,10 @@ #include ENTRY(pipe2) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_pipe2 swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/poll.S b/libc/arch-arm/syscalls/poll.S index 4d345ea..d9831ab 100644 --- a/libc/arch-arm/syscalls/poll.S +++ b/libc/arch-arm/syscalls/poll.S @@ -3,11 +3,10 @@ #include ENTRY(poll) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_poll swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/read.S b/libc/arch-arm/syscalls/read.S index c062388..ab0583a 100644 --- a/libc/arch-arm/syscalls/read.S +++ b/libc/arch-arm/syscalls/read.S @@ -3,11 +3,10 @@ #include ENTRY(read) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_read swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/readlink.S b/libc/arch-arm/syscalls/readlink.S index 7602e61..90b0ea6 100644 --- a/libc/arch-arm/syscalls/readlink.S +++ b/libc/arch-arm/syscalls/readlink.S @@ -3,11 +3,10 @@ #include ENTRY(readlink) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_readlink swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/readv.S b/libc/arch-arm/syscalls/readv.S index e717e61..9f8b8db 100644 --- a/libc/arch-arm/syscalls/readv.S +++ b/libc/arch-arm/syscalls/readv.S @@ -3,11 +3,10 @@ #include ENTRY(readv) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_readv swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/recvmsg.S b/libc/arch-arm/syscalls/recvmsg.S index 5c168dc..00746a1 100644 --- a/libc/arch-arm/syscalls/recvmsg.S +++ b/libc/arch-arm/syscalls/recvmsg.S @@ -3,11 +3,10 @@ #include ENTRY(recvmsg) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_recvmsg swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/removexattr.S b/libc/arch-arm/syscalls/removexattr.S index 1a44caf..82fb9e0 100644 --- a/libc/arch-arm/syscalls/removexattr.S +++ b/libc/arch-arm/syscalls/removexattr.S @@ -3,11 +3,10 @@ #include ENTRY(removexattr) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_removexattr swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/rename.S b/libc/arch-arm/syscalls/rename.S index 930ddb6..dfe0b0e 100644 --- a/libc/arch-arm/syscalls/rename.S +++ b/libc/arch-arm/syscalls/rename.S @@ -3,11 +3,10 @@ #include ENTRY(rename) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_rename swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/renameat.S b/libc/arch-arm/syscalls/renameat.S index a13c4ee..aa42b78 100644 --- a/libc/arch-arm/syscalls/renameat.S +++ b/libc/arch-arm/syscalls/renameat.S @@ -3,11 +3,10 @@ #include ENTRY(renameat) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_renameat swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/rmdir.S b/libc/arch-arm/syscalls/rmdir.S index 09a956f..c2d5c5a 100644 --- a/libc/arch-arm/syscalls/rmdir.S +++ b/libc/arch-arm/syscalls/rmdir.S @@ -3,11 +3,10 @@ #include ENTRY(rmdir) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_rmdir swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/sched_get_priority_max.S b/libc/arch-arm/syscalls/sched_get_priority_max.S index 2dea3b7..703ddeb 100644 --- a/libc/arch-arm/syscalls/sched_get_priority_max.S +++ b/libc/arch-arm/syscalls/sched_get_priority_max.S @@ -3,11 +3,10 @@ #include ENTRY(sched_get_priority_max) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_sched_get_priority_max swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/sched_get_priority_min.S b/libc/arch-arm/syscalls/sched_get_priority_min.S index de8b878..deea8ae 100644 --- a/libc/arch-arm/syscalls/sched_get_priority_min.S +++ b/libc/arch-arm/syscalls/sched_get_priority_min.S @@ -3,11 +3,10 @@ #include ENTRY(sched_get_priority_min) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_sched_get_priority_min swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/sched_getparam.S b/libc/arch-arm/syscalls/sched_getparam.S index 6434217..194d4a2 100644 --- a/libc/arch-arm/syscalls/sched_getparam.S +++ b/libc/arch-arm/syscalls/sched_getparam.S @@ -3,11 +3,10 @@ #include ENTRY(sched_getparam) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_sched_getparam swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/sched_getscheduler.S b/libc/arch-arm/syscalls/sched_getscheduler.S index 8e45ce6..fd3cec5 100644 --- a/libc/arch-arm/syscalls/sched_getscheduler.S +++ b/libc/arch-arm/syscalls/sched_getscheduler.S @@ -3,11 +3,10 @@ #include ENTRY(sched_getscheduler) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_sched_getscheduler swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/sched_rr_get_interval.S b/libc/arch-arm/syscalls/sched_rr_get_interval.S index e88d26e..21a5788 100644 --- a/libc/arch-arm/syscalls/sched_rr_get_interval.S +++ b/libc/arch-arm/syscalls/sched_rr_get_interval.S @@ -3,11 +3,10 @@ #include ENTRY(sched_rr_get_interval) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_sched_rr_get_interval swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/sched_setaffinity.S b/libc/arch-arm/syscalls/sched_setaffinity.S index b9dd299..c980ed0 100644 --- a/libc/arch-arm/syscalls/sched_setaffinity.S +++ b/libc/arch-arm/syscalls/sched_setaffinity.S @@ -3,11 +3,10 @@ #include ENTRY(sched_setaffinity) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_sched_setaffinity swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/sched_setparam.S b/libc/arch-arm/syscalls/sched_setparam.S index 73d6ab6..993078d 100644 --- a/libc/arch-arm/syscalls/sched_setparam.S +++ b/libc/arch-arm/syscalls/sched_setparam.S @@ -3,11 +3,10 @@ #include ENTRY(sched_setparam) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_sched_setparam swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/sched_setscheduler.S b/libc/arch-arm/syscalls/sched_setscheduler.S index 33c28ab..d0ac1de 100644 --- a/libc/arch-arm/syscalls/sched_setscheduler.S +++ b/libc/arch-arm/syscalls/sched_setscheduler.S @@ -3,11 +3,10 @@ #include ENTRY(sched_setscheduler) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_sched_setscheduler swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/sched_yield.S b/libc/arch-arm/syscalls/sched_yield.S index 71628b3..00bdfbd 100644 --- a/libc/arch-arm/syscalls/sched_yield.S +++ b/libc/arch-arm/syscalls/sched_yield.S @@ -3,11 +3,10 @@ #include ENTRY(sched_yield) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_sched_yield swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/sendfile.S b/libc/arch-arm/syscalls/sendfile.S index 2790b4b..9e4c70c 100644 --- a/libc/arch-arm/syscalls/sendfile.S +++ b/libc/arch-arm/syscalls/sendfile.S @@ -3,11 +3,10 @@ #include ENTRY(sendfile) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_sendfile swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/sendmsg.S b/libc/arch-arm/syscalls/sendmsg.S index 99b5479..1b54aee 100644 --- a/libc/arch-arm/syscalls/sendmsg.S +++ b/libc/arch-arm/syscalls/sendmsg.S @@ -3,11 +3,10 @@ #include ENTRY(sendmsg) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_sendmsg swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/setgid.S b/libc/arch-arm/syscalls/setgid.S index f28687d..09045ad 100644 --- a/libc/arch-arm/syscalls/setgid.S +++ b/libc/arch-arm/syscalls/setgid.S @@ -3,11 +3,10 @@ #include ENTRY(setgid) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_setgid32 swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/setgroups.S b/libc/arch-arm/syscalls/setgroups.S index d2c932f..e4c36b5 100644 --- a/libc/arch-arm/syscalls/setgroups.S +++ b/libc/arch-arm/syscalls/setgroups.S @@ -3,11 +3,10 @@ #include ENTRY(setgroups) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_setgroups32 swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/setitimer.S b/libc/arch-arm/syscalls/setitimer.S index c6b5064..dfb7a46 100644 --- a/libc/arch-arm/syscalls/setitimer.S +++ b/libc/arch-arm/syscalls/setitimer.S @@ -3,11 +3,10 @@ #include ENTRY(setitimer) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_setitimer swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/setpgid.S b/libc/arch-arm/syscalls/setpgid.S index 39e1e03..c558063 100644 --- a/libc/arch-arm/syscalls/setpgid.S +++ b/libc/arch-arm/syscalls/setpgid.S @@ -3,11 +3,10 @@ #include ENTRY(setpgid) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_setpgid swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/setpriority.S b/libc/arch-arm/syscalls/setpriority.S index 5cb84a8..683da34 100644 --- a/libc/arch-arm/syscalls/setpriority.S +++ b/libc/arch-arm/syscalls/setpriority.S @@ -3,11 +3,10 @@ #include ENTRY(setpriority) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_setpriority swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/setregid.S b/libc/arch-arm/syscalls/setregid.S index bc79e9e..2062d05 100644 --- a/libc/arch-arm/syscalls/setregid.S +++ b/libc/arch-arm/syscalls/setregid.S @@ -3,11 +3,10 @@ #include ENTRY(setregid) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_setregid32 swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/setresgid.S b/libc/arch-arm/syscalls/setresgid.S index 711626e..089c7a7 100644 --- a/libc/arch-arm/syscalls/setresgid.S +++ b/libc/arch-arm/syscalls/setresgid.S @@ -3,11 +3,10 @@ #include ENTRY(setresgid) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_setresgid32 swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/setrlimit.S b/libc/arch-arm/syscalls/setrlimit.S index 0fe2467..02b8db4 100644 --- a/libc/arch-arm/syscalls/setrlimit.S +++ b/libc/arch-arm/syscalls/setrlimit.S @@ -3,11 +3,10 @@ #include ENTRY(setrlimit) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_setrlimit swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/setsid.S b/libc/arch-arm/syscalls/setsid.S index f11b6fb..d82c347 100644 --- a/libc/arch-arm/syscalls/setsid.S +++ b/libc/arch-arm/syscalls/setsid.S @@ -3,11 +3,10 @@ #include ENTRY(setsid) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_setsid swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/settimeofday.S b/libc/arch-arm/syscalls/settimeofday.S index 2741e05..44f5e66 100644 --- a/libc/arch-arm/syscalls/settimeofday.S +++ b/libc/arch-arm/syscalls/settimeofday.S @@ -3,11 +3,10 @@ #include ENTRY(settimeofday) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_settimeofday swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/shutdown.S b/libc/arch-arm/syscalls/shutdown.S index 0802631..cc96f56 100644 --- a/libc/arch-arm/syscalls/shutdown.S +++ b/libc/arch-arm/syscalls/shutdown.S @@ -3,11 +3,10 @@ #include ENTRY(shutdown) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_shutdown swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/sigaction.S b/libc/arch-arm/syscalls/sigaction.S index 04a8b94..699f55d 100644 --- a/libc/arch-arm/syscalls/sigaction.S +++ b/libc/arch-arm/syscalls/sigaction.S @@ -3,11 +3,10 @@ #include ENTRY(sigaction) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_sigaction swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/sigaltstack.S b/libc/arch-arm/syscalls/sigaltstack.S index b541a87..0f34eab 100644 --- a/libc/arch-arm/syscalls/sigaltstack.S +++ b/libc/arch-arm/syscalls/sigaltstack.S @@ -3,11 +3,10 @@ #include ENTRY(sigaltstack) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_sigaltstack swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/signalfd4.S b/libc/arch-arm/syscalls/signalfd4.S index 1ec7055..6f07fbe 100644 --- a/libc/arch-arm/syscalls/signalfd4.S +++ b/libc/arch-arm/syscalls/signalfd4.S @@ -3,11 +3,10 @@ #include ENTRY(signalfd4) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_signalfd4 swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/sigpending.S b/libc/arch-arm/syscalls/sigpending.S index 4c7d919..b541288 100644 --- a/libc/arch-arm/syscalls/sigpending.S +++ b/libc/arch-arm/syscalls/sigpending.S @@ -3,11 +3,10 @@ #include ENTRY(sigpending) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_sigpending swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/sigprocmask.S b/libc/arch-arm/syscalls/sigprocmask.S index 7c59a6b..d169474 100644 --- a/libc/arch-arm/syscalls/sigprocmask.S +++ b/libc/arch-arm/syscalls/sigprocmask.S @@ -3,11 +3,10 @@ #include ENTRY(sigprocmask) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_sigprocmask swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/socket.S b/libc/arch-arm/syscalls/socket.S index e28d252..1003bd4 100644 --- a/libc/arch-arm/syscalls/socket.S +++ b/libc/arch-arm/syscalls/socket.S @@ -3,11 +3,10 @@ #include ENTRY(socket) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_socket swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/socketpair.S b/libc/arch-arm/syscalls/socketpair.S index e699000..65bef68 100644 --- a/libc/arch-arm/syscalls/socketpair.S +++ b/libc/arch-arm/syscalls/socketpair.S @@ -3,11 +3,10 @@ #include ENTRY(socketpair) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_socketpair swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/stat.S b/libc/arch-arm/syscalls/stat.S index a4669a6..17b63cc 100644 --- a/libc/arch-arm/syscalls/stat.S +++ b/libc/arch-arm/syscalls/stat.S @@ -3,11 +3,10 @@ #include ENTRY(stat) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_stat64 swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/symlink.S b/libc/arch-arm/syscalls/symlink.S index 14a753f..ac569af 100644 --- a/libc/arch-arm/syscalls/symlink.S +++ b/libc/arch-arm/syscalls/symlink.S @@ -3,11 +3,10 @@ #include ENTRY(symlink) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_symlink swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/sync.S b/libc/arch-arm/syscalls/sync.S index 68c0c0f..ef6cb16 100644 --- a/libc/arch-arm/syscalls/sync.S +++ b/libc/arch-arm/syscalls/sync.S @@ -3,11 +3,10 @@ #include ENTRY(sync) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_sync swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/sysinfo.S b/libc/arch-arm/syscalls/sysinfo.S index 2a2fb59..a891735 100644 --- a/libc/arch-arm/syscalls/sysinfo.S +++ b/libc/arch-arm/syscalls/sysinfo.S @@ -3,11 +3,10 @@ #include ENTRY(sysinfo) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_sysinfo swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/times.S b/libc/arch-arm/syscalls/times.S index aacb4ca..051f34d 100644 --- a/libc/arch-arm/syscalls/times.S +++ b/libc/arch-arm/syscalls/times.S @@ -3,11 +3,10 @@ #include ENTRY(times) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_times swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/truncate.S b/libc/arch-arm/syscalls/truncate.S index 8c0b24f..3bb68cd 100644 --- a/libc/arch-arm/syscalls/truncate.S +++ b/libc/arch-arm/syscalls/truncate.S @@ -3,11 +3,10 @@ #include ENTRY(truncate) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_truncate swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/umask.S b/libc/arch-arm/syscalls/umask.S index a7bc20b..78e43e0 100644 --- a/libc/arch-arm/syscalls/umask.S +++ b/libc/arch-arm/syscalls/umask.S @@ -3,11 +3,10 @@ #include ENTRY(umask) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_umask swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/umount2.S b/libc/arch-arm/syscalls/umount2.S index 04b28f4..605359e 100644 --- a/libc/arch-arm/syscalls/umount2.S +++ b/libc/arch-arm/syscalls/umount2.S @@ -3,11 +3,10 @@ #include ENTRY(umount2) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_umount2 swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/uname.S b/libc/arch-arm/syscalls/uname.S index 4a6f0f4..db0860b 100644 --- a/libc/arch-arm/syscalls/uname.S +++ b/libc/arch-arm/syscalls/uname.S @@ -3,11 +3,10 @@ #include ENTRY(uname) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_uname swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/unlink.S b/libc/arch-arm/syscalls/unlink.S index 87fa79e..8ef33df 100644 --- a/libc/arch-arm/syscalls/unlink.S +++ b/libc/arch-arm/syscalls/unlink.S @@ -3,11 +3,10 @@ #include ENTRY(unlink) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_unlink swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/unlinkat.S b/libc/arch-arm/syscalls/unlinkat.S index 3beae6c..eb822e4 100644 --- a/libc/arch-arm/syscalls/unlinkat.S +++ b/libc/arch-arm/syscalls/unlinkat.S @@ -3,11 +3,10 @@ #include ENTRY(unlinkat) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_unlinkat swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/unshare.S b/libc/arch-arm/syscalls/unshare.S index 0a92b21..ec77f3a 100644 --- a/libc/arch-arm/syscalls/unshare.S +++ b/libc/arch-arm/syscalls/unshare.S @@ -3,11 +3,10 @@ #include ENTRY(unshare) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_unshare swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/utimensat.S b/libc/arch-arm/syscalls/utimensat.S index ceae7fa..976a667 100644 --- a/libc/arch-arm/syscalls/utimensat.S +++ b/libc/arch-arm/syscalls/utimensat.S @@ -3,11 +3,10 @@ #include ENTRY(utimensat) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_utimensat swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/utimes.S b/libc/arch-arm/syscalls/utimes.S index a2d58a3..8966626 100644 --- a/libc/arch-arm/syscalls/utimes.S +++ b/libc/arch-arm/syscalls/utimes.S @@ -3,11 +3,10 @@ #include ENTRY(utimes) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_utimes swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/vfork.S b/libc/arch-arm/syscalls/vfork.S index 3bd2668..89cbda2 100644 --- a/libc/arch-arm/syscalls/vfork.S +++ b/libc/arch-arm/syscalls/vfork.S @@ -3,11 +3,10 @@ #include ENTRY(vfork) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_vfork swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/write.S b/libc/arch-arm/syscalls/write.S index 826e82c..c257915 100644 --- a/libc/arch-arm/syscalls/write.S +++ b/libc/arch-arm/syscalls/write.S @@ -3,11 +3,10 @@ #include ENTRY(write) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_write swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/arch-arm/syscalls/writev.S b/libc/arch-arm/syscalls/writev.S index 16a6df9..521e10c 100644 --- a/libc/arch-arm/syscalls/writev.S +++ b/libc/arch-arm/syscalls/writev.S @@ -3,11 +3,10 @@ #include ENTRY(writev) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_writev swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno diff --git a/libc/tools/gensyscalls.py b/libc/tools/gensyscalls.py index 21d2f1d..0226acd 100755 --- a/libc/tools/gensyscalls.py +++ b/libc/tools/gensyscalls.py @@ -111,11 +111,10 @@ arm_call_long = arm_header + """\ """ + arm_footer arm_eabi_call_default = arm_header + """\ - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =%(idname)s swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno -- cgit v1.1