OSDN Git Service

arm syscall : for eabi call_default don't use stack
authorMatthieu Castet <matthieu.castet@gmail.com>
Wed, 16 Jan 2013 13:02:50 +0000 (14:02 +0100)
committerMatthieu Castet <matthieu.castet@gmail.com>
Wed, 16 Jan 2013 13:53:37 +0000 (14:53 +0100)
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.

182 files changed:
libc/arch-arm/syscalls/__brk.S
libc/arch-arm/syscalls/__fcntl.S
libc/arch-arm/syscalls/__fcntl64.S
libc/arch-arm/syscalls/__fork.S
libc/arch-arm/syscalls/__fstatfs64.S
libc/arch-arm/syscalls/__getcpu.S
libc/arch-arm/syscalls/__getcwd.S
libc/arch-arm/syscalls/__getpriority.S
libc/arch-arm/syscalls/__ioctl.S
libc/arch-arm/syscalls/__open.S
libc/arch-arm/syscalls/__openat.S
libc/arch-arm/syscalls/__ptrace.S
libc/arch-arm/syscalls/__reboot.S
libc/arch-arm/syscalls/__rt_sigaction.S
libc/arch-arm/syscalls/__rt_sigprocmask.S
libc/arch-arm/syscalls/__rt_sigtimedwait.S
libc/arch-arm/syscalls/__sched_getaffinity.S
libc/arch-arm/syscalls/__set_tls.S
libc/arch-arm/syscalls/__setresuid.S
libc/arch-arm/syscalls/__setreuid.S
libc/arch-arm/syscalls/__setuid.S
libc/arch-arm/syscalls/__sigsuspend.S
libc/arch-arm/syscalls/__statfs64.S
libc/arch-arm/syscalls/__syslog.S
libc/arch-arm/syscalls/__timer_create.S
libc/arch-arm/syscalls/__timer_delete.S
libc/arch-arm/syscalls/__timer_getoverrun.S
libc/arch-arm/syscalls/__timer_gettime.S
libc/arch-arm/syscalls/__timer_settime.S
libc/arch-arm/syscalls/__wait4.S
libc/arch-arm/syscalls/_exit.S
libc/arch-arm/syscalls/_exit_thread.S
libc/arch-arm/syscalls/accept.S
libc/arch-arm/syscalls/access.S
libc/arch-arm/syscalls/acct.S
libc/arch-arm/syscalls/bind.S
libc/arch-arm/syscalls/cacheflush.S
libc/arch-arm/syscalls/capget.S
libc/arch-arm/syscalls/capset.S
libc/arch-arm/syscalls/chdir.S
libc/arch-arm/syscalls/chmod.S
libc/arch-arm/syscalls/chown.S
libc/arch-arm/syscalls/chroot.S
libc/arch-arm/syscalls/clock_getres.S
libc/arch-arm/syscalls/clock_gettime.S
libc/arch-arm/syscalls/clock_nanosleep.S
libc/arch-arm/syscalls/clock_settime.S
libc/arch-arm/syscalls/close.S
libc/arch-arm/syscalls/connect.S
libc/arch-arm/syscalls/delete_module.S
libc/arch-arm/syscalls/dup.S
libc/arch-arm/syscalls/dup2.S
libc/arch-arm/syscalls/epoll_create.S
libc/arch-arm/syscalls/epoll_ctl.S
libc/arch-arm/syscalls/epoll_wait.S
libc/arch-arm/syscalls/eventfd.S
libc/arch-arm/syscalls/execve.S
libc/arch-arm/syscalls/faccessat.S
libc/arch-arm/syscalls/fchdir.S
libc/arch-arm/syscalls/fchmod.S
libc/arch-arm/syscalls/fchmodat.S
libc/arch-arm/syscalls/fchown.S
libc/arch-arm/syscalls/fdatasync.S
libc/arch-arm/syscalls/fgetxattr.S
libc/arch-arm/syscalls/flistxattr.S
libc/arch-arm/syscalls/flock.S
libc/arch-arm/syscalls/fremovexattr.S
libc/arch-arm/syscalls/fstat.S
libc/arch-arm/syscalls/fstatat.S
libc/arch-arm/syscalls/fsync.S
libc/arch-arm/syscalls/ftruncate.S
libc/arch-arm/syscalls/ftruncate64.S
libc/arch-arm/syscalls/getdents.S
libc/arch-arm/syscalls/getegid.S
libc/arch-arm/syscalls/geteuid.S
libc/arch-arm/syscalls/getgid.S
libc/arch-arm/syscalls/getgroups.S
libc/arch-arm/syscalls/getitimer.S
libc/arch-arm/syscalls/getpeername.S
libc/arch-arm/syscalls/getpgid.S
libc/arch-arm/syscalls/getpid.S
libc/arch-arm/syscalls/getppid.S
libc/arch-arm/syscalls/getresgid.S
libc/arch-arm/syscalls/getresuid.S
libc/arch-arm/syscalls/getrlimit.S
libc/arch-arm/syscalls/getrusage.S
libc/arch-arm/syscalls/getsid.S
libc/arch-arm/syscalls/getsockname.S
libc/arch-arm/syscalls/gettid.S
libc/arch-arm/syscalls/gettimeofday.S
libc/arch-arm/syscalls/getuid.S
libc/arch-arm/syscalls/getxattr.S
libc/arch-arm/syscalls/init_module.S
libc/arch-arm/syscalls/inotify_add_watch.S
libc/arch-arm/syscalls/inotify_init.S
libc/arch-arm/syscalls/inotify_rm_watch.S
libc/arch-arm/syscalls/ioprio_get.S
libc/arch-arm/syscalls/ioprio_set.S
libc/arch-arm/syscalls/klogctl.S
libc/arch-arm/syscalls/lchown.S
libc/arch-arm/syscalls/lgetxattr.S
libc/arch-arm/syscalls/link.S
libc/arch-arm/syscalls/listen.S
libc/arch-arm/syscalls/listxattr.S
libc/arch-arm/syscalls/llistxattr.S
libc/arch-arm/syscalls/lremovexattr.S
libc/arch-arm/syscalls/lseek.S
libc/arch-arm/syscalls/lstat.S
libc/arch-arm/syscalls/madvise.S
libc/arch-arm/syscalls/mincore.S
libc/arch-arm/syscalls/mkdir.S
libc/arch-arm/syscalls/mkdirat.S
libc/arch-arm/syscalls/mknod.S
libc/arch-arm/syscalls/mlock.S
libc/arch-arm/syscalls/mlockall.S
libc/arch-arm/syscalls/mprotect.S
libc/arch-arm/syscalls/mremap.S
libc/arch-arm/syscalls/msync.S
libc/arch-arm/syscalls/munlock.S
libc/arch-arm/syscalls/munlockall.S
libc/arch-arm/syscalls/munmap.S
libc/arch-arm/syscalls/nanosleep.S
libc/arch-arm/syscalls/pause.S
libc/arch-arm/syscalls/personality.S
libc/arch-arm/syscalls/pipe.S
libc/arch-arm/syscalls/pipe2.S
libc/arch-arm/syscalls/poll.S
libc/arch-arm/syscalls/read.S
libc/arch-arm/syscalls/readlink.S
libc/arch-arm/syscalls/readv.S
libc/arch-arm/syscalls/recvmsg.S
libc/arch-arm/syscalls/removexattr.S
libc/arch-arm/syscalls/rename.S
libc/arch-arm/syscalls/renameat.S
libc/arch-arm/syscalls/rmdir.S
libc/arch-arm/syscalls/sched_get_priority_max.S
libc/arch-arm/syscalls/sched_get_priority_min.S
libc/arch-arm/syscalls/sched_getparam.S
libc/arch-arm/syscalls/sched_getscheduler.S
libc/arch-arm/syscalls/sched_rr_get_interval.S
libc/arch-arm/syscalls/sched_setaffinity.S
libc/arch-arm/syscalls/sched_setparam.S
libc/arch-arm/syscalls/sched_setscheduler.S
libc/arch-arm/syscalls/sched_yield.S
libc/arch-arm/syscalls/sendfile.S
libc/arch-arm/syscalls/sendmsg.S
libc/arch-arm/syscalls/setgid.S
libc/arch-arm/syscalls/setgroups.S
libc/arch-arm/syscalls/setitimer.S
libc/arch-arm/syscalls/setpgid.S
libc/arch-arm/syscalls/setpriority.S
libc/arch-arm/syscalls/setregid.S
libc/arch-arm/syscalls/setresgid.S
libc/arch-arm/syscalls/setrlimit.S
libc/arch-arm/syscalls/setsid.S
libc/arch-arm/syscalls/settimeofday.S
libc/arch-arm/syscalls/shutdown.S
libc/arch-arm/syscalls/sigaction.S
libc/arch-arm/syscalls/sigaltstack.S
libc/arch-arm/syscalls/signalfd4.S
libc/arch-arm/syscalls/sigpending.S
libc/arch-arm/syscalls/sigprocmask.S
libc/arch-arm/syscalls/socket.S
libc/arch-arm/syscalls/socketpair.S
libc/arch-arm/syscalls/stat.S
libc/arch-arm/syscalls/symlink.S
libc/arch-arm/syscalls/sync.S
libc/arch-arm/syscalls/sysinfo.S
libc/arch-arm/syscalls/times.S
libc/arch-arm/syscalls/truncate.S
libc/arch-arm/syscalls/umask.S
libc/arch-arm/syscalls/umount2.S
libc/arch-arm/syscalls/uname.S
libc/arch-arm/syscalls/unlink.S
libc/arch-arm/syscalls/unlinkat.S
libc/arch-arm/syscalls/unshare.S
libc/arch-arm/syscalls/utimensat.S
libc/arch-arm/syscalls/utimes.S
libc/arch-arm/syscalls/vfork.S
libc/arch-arm/syscalls/write.S
libc/arch-arm/syscalls/writev.S
libc/tools/gensyscalls.py

index a0854a0..e4fcab0 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 067ee9a..ee82ef1 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 3d39567..96cc16b 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 6cf08ad..9df9702 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index e8aa2f4..6e90214 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 78271eb..7976b06 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index e09a484..6fc2d64 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 30e335c..6fb2a43 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 554809f..56fd607 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index be2f4bf..589d5ad 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 4d91780..10c30d3 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 04e0a30..72acd70 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index e75df45..07898a0 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 57a3149..31d4c1e 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 8220825..640a7ee 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index bce63ed..ad725af 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index bdd4517..bee1674 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index cf5d6b6..3039b35 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index d5053ba..1877bbf 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 9cd51f6..2129cb2 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 88dc58e..9df2f89 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 1ececb7..8f1ff55 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 4afef71..f8d63a3 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 6dbe745..8ad0271 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index c547137..fcb4e3f 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index ca2e0a3..de303fc 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index b0f18e7..a96b047 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index c172602..6e6bbf5 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 8220440..bcbe298 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index fa34502..2a0e5c4 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 77487b5..ab444ce 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index bd16ff1..53a21fb 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 0dcfb0c..b1a2d72 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index cf585a3..c0b0333 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 85346e4..5485be1 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 85d0471..1bb5843 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 05b2411..fd7f68d 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 0f3ba31..1f425a0 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 2254db2..13ebd5a 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 57d6b13..4965495 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 8909c6f..ed9d52f 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index cbbd8a8..ff1cec2 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index a679172..bc8e3fe 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 705f296..66cf9ec 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index a9ab41f..4e42c82 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index f8e7f73..6d530a2 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index a996441..e9374b5 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 36d78a4..eb4cb62 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index ea14c17..b97b4fe 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index df8aae0..0994994 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index b0c1cda..8854342 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index ed346d9..0dcc57f 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 1aab606..92a2781 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index c0ecf06..b3c630f 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 3535001..3ccac91 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 857b6c0..754f019 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 1a66167..49e5b13 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index a2f176f..5ade517 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 7d80cf0..96a047d 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index bc8e643..b096a8c 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index ac782e5..8c87598 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 22d7fd2..2f7e92b 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index d41e823..31818c8 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 32b8ef8..6f3eb3d 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 0785e77..38e856d 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index c0d2844..3732bfe 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index ae97d13..45cf803 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index e75649f..d314213 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 065ef9f..8cf1a57 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index f0de9ca..52cfa53 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 2e4a308..14cd87d 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 7c7b80b..0e1b42b 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 82b6e4c..e6c3028 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 27ea272..22794d1 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index d4c9cd1..cfb318f 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 9a40fe6..085061e 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 2995cc8..c426d87 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index a3f1423..5d832d9 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index f90c344..ced69f7 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 0fc57a4..d599f1e 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 440ae9b..ef19d25 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 3eb1b86..1fe30d4 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index a022341..e8d2129 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 23112a6..cdfe0f7 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 8b1c089..3acbf95 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 74fa20b..e17fc4a 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 856d41a..06e6d67 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 99470e2..458814f 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index f5b15be..f35c7ea 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 9b47daf..113413e 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 053dc31..20ed7f9 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 18532ce..0a7cbef 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 73beb46..de41a7e 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index da4a296..aa8fcb7 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index bac124c..56d4b93 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index f576480..4315061 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 13739dc..d3bd796 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 7e40ee5..c42d305 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 5434b30..1356815 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 789e5af..56902a3 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 61fc098..cc30d63 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index ccf0a1d..dab8fa6 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index bb7f7a4..fac3702 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 6bbdb6a..8c7fc9b 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 89682df..9cade18 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 62f6722..d4a7b82 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 2cd0853..a452856 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index dbecefe..69f2146 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 024476f..02944a2 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 7a2a378..5ffdc11 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index e51beab..c2aa080 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 52f0be3..421c70a 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index ac6d976..4aca2c5 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index ad140d1..5c8e74d 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 45c782e..a89545a 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 39ae353..06238bf 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 918f3b7..29b308b 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 2a5922c..af8fc0c 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 5a02aaf..42df37e 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 8106965..c0fca33 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 6bb8dd8..9d7b60f 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index af36ced..7f4cda6 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index e64f4f3..1238f4b 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 17ac686..f338d71 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 3968703..ec0efb1 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index da2ecba..f79c8f5 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 4d345ea..d9831ab 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index c062388..ab0583a 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 7602e61..90b0ea6 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index e717e61..9f8b8db 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 5c168dc..00746a1 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 1a44caf..82fb9e0 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 930ddb6..dfe0b0e 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index a13c4ee..aa42b78 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 09a956f..c2d5c5a 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 2dea3b7..703ddeb 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index de8b878..deea8ae 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 6434217..194d4a2 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 8e45ce6..fd3cec5 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index e88d26e..21a5788 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index b9dd299..c980ed0 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 73d6ab6..993078d 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 33c28ab..d0ac1de 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 71628b3..00bdfbd 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 2790b4b..9e4c70c 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 99b5479..1b54aee 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index f28687d..09045ad 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index d2c932f..e4c36b5 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index c6b5064..dfb7a46 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 39e1e03..c558063 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 5cb84a8..683da34 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index bc79e9e..2062d05 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 711626e..089c7a7 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 0fe2467..02b8db4 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index f11b6fb..d82c347 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 2741e05..44f5e66 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 0802631..cc96f56 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 04a8b94..699f55d 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index b541a87..0f34eab 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 1ec7055..6f07fbe 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 4c7d919..b541288 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 7c59a6b..d169474 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index e28d252..1003bd4 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index e699000..65bef68 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index a4669a6..17b63cc 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 14a753f..ac569af 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 68c0c0f..ef6cb16 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 2a2fb59..a891735 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index aacb4ca..051f34d 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 8c0b24f..3bb68cd 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index a7bc20b..78e43e0 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 04b28f4..605359e 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 4a6f0f4..db0860b 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 87fa79e..8ef33df 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 3beae6c..eb822e4 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 0a92b21..ec77f3a 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index ceae7fa..976a667 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index a2d58a3..8966626 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 3bd2668..89cbda2 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 826e82c..c257915 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 16a6df9..521e10c 100644 (file)
@@ -3,11 +3,10 @@
 #include <sys/linux-syscalls.h>
 
 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
index 21d2f1d..0226acd 100755 (executable)
@@ -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