diff options
28 files changed, 28 insertions, 0 deletions
diff --git a/libc/arch-arm/bionic/__bionic_clone.S b/libc/arch-arm/bionic/__bionic_clone.S index 7b76f5e..72f4892 100644 --- a/libc/arch-arm/bionic/__bionic_clone.S +++ b/libc/arch-arm/bionic/__bionic_clone.S @@ -31,6 +31,7 @@ // pid_t __bionic_clone(int flags, void* child_stack, pid_t* parent_tid, void* tls, pid_t* child_tid, int (*fn)(void*), void* arg); ENTRY(__bionic_clone) mov ip, sp + .save {r4, r5, r6, r7} # save registers to parent stack stmfd sp!, {r4, r5, r6, r7} .cfi_def_cfa_offset 16 diff --git a/libc/arch-arm/bionic/abort_arm.S b/libc/arch-arm/bionic/abort_arm.S index 1aaf21a..2fc2913 100644 --- a/libc/arch-arm/bionic/abort_arm.S +++ b/libc/arch-arm/bionic/abort_arm.S @@ -36,6 +36,7 @@ * sequence when the crash happens. */ ENTRY(abort) + .save {r3, r14} stmfd sp!, {r3, r14} .cfi_def_cfa_offset 8 .cfi_rel_offset r3, 0 diff --git a/libc/arch-arm/bionic/memcmp.S b/libc/arch-arm/bionic/memcmp.S index 0dc3af0..921f8ef 100644 --- a/libc/arch-arm/bionic/memcmp.S +++ b/libc/arch-arm/bionic/memcmp.S @@ -108,6 +108,7 @@ ENTRY(memcmp) #endif /* save registers */ + .save {r4, lr} stmfd sp!, {r4, lr} .cfi_def_cfa_offset 8 .cfi_rel_offset r4, 0 diff --git a/libc/arch-arm/bionic/memcmp16.S b/libc/arch-arm/bionic/memcmp16.S index afbb1b0..26a1bf3 100644 --- a/libc/arch-arm/bionic/memcmp16.S +++ b/libc/arch-arm/bionic/memcmp16.S @@ -75,6 +75,7 @@ ENTRY(__memcmp16) /* save registers */ + .save {r4, lr} 0: stmfd sp!, {r4, lr} .cfi_def_cfa_offset 8 .cfi_rel_offset r4, 0 diff --git a/libc/arch-arm/bionic/syscall.S b/libc/arch-arm/bionic/syscall.S index 8647718..5a6627b 100644 --- a/libc/arch-arm/bionic/syscall.S +++ b/libc/arch-arm/bionic/syscall.S @@ -30,6 +30,7 @@ ENTRY(syscall) mov ip, sp + .save {r4, r5, r6, r7} stmfd sp!, {r4, r5, r6, r7} .cfi_def_cfa_offset 16 .cfi_rel_offset r4, 0 diff --git a/libc/arch-arm/syscalls/__epoll_pwait.S b/libc/arch-arm/syscalls/__epoll_pwait.S index b2d8d48..a90254a 100644 --- a/libc/arch-arm/syscalls/__epoll_pwait.S +++ b/libc/arch-arm/syscalls/__epoll_pwait.S @@ -4,6 +4,7 @@ ENTRY(__epoll_pwait) mov ip, sp + .save {r4, r5, r6, r7} stmfd sp!, {r4, r5, r6, r7} .cfi_def_cfa_offset 16 .cfi_rel_offset r4, 0 diff --git a/libc/arch-arm/syscalls/__llseek.S b/libc/arch-arm/syscalls/__llseek.S index ec307d2..1a3e4c7 100644 --- a/libc/arch-arm/syscalls/__llseek.S +++ b/libc/arch-arm/syscalls/__llseek.S @@ -4,6 +4,7 @@ ENTRY(__llseek) mov ip, sp + .save {r4, r5, r6, r7} stmfd sp!, {r4, r5, r6, r7} .cfi_def_cfa_offset 16 .cfi_rel_offset r4, 0 diff --git a/libc/arch-arm/syscalls/__mmap2.S b/libc/arch-arm/syscalls/__mmap2.S index 8a17997..7d989e9 100644 --- a/libc/arch-arm/syscalls/__mmap2.S +++ b/libc/arch-arm/syscalls/__mmap2.S @@ -4,6 +4,7 @@ ENTRY(__mmap2) mov ip, sp + .save {r4, r5, r6, r7} stmfd sp!, {r4, r5, r6, r7} .cfi_def_cfa_offset 16 .cfi_rel_offset r4, 0 diff --git a/libc/arch-arm/syscalls/__ppoll.S b/libc/arch-arm/syscalls/__ppoll.S index d9fb3d9..7cdbe51 100644 --- a/libc/arch-arm/syscalls/__ppoll.S +++ b/libc/arch-arm/syscalls/__ppoll.S @@ -4,6 +4,7 @@ ENTRY(__ppoll) mov ip, sp + .save {r4, r5, r6, r7} stmfd sp!, {r4, r5, r6, r7} .cfi_def_cfa_offset 16 .cfi_rel_offset r4, 0 diff --git a/libc/arch-arm/syscalls/__pselect6.S b/libc/arch-arm/syscalls/__pselect6.S index 05fea54..4c5b513 100644 --- a/libc/arch-arm/syscalls/__pselect6.S +++ b/libc/arch-arm/syscalls/__pselect6.S @@ -4,6 +4,7 @@ ENTRY(__pselect6) mov ip, sp + .save {r4, r5, r6, r7} stmfd sp!, {r4, r5, r6, r7} .cfi_def_cfa_offset 16 .cfi_rel_offset r4, 0 diff --git a/libc/arch-arm/syscalls/__waitid.S b/libc/arch-arm/syscalls/__waitid.S index e5e1f54..ad9ad16 100644 --- a/libc/arch-arm/syscalls/__waitid.S +++ b/libc/arch-arm/syscalls/__waitid.S @@ -4,6 +4,7 @@ ENTRY(__waitid) mov ip, sp + .save {r4, r5, r6, r7} stmfd sp!, {r4, r5, r6, r7} .cfi_def_cfa_offset 16 .cfi_rel_offset r4, 0 diff --git a/libc/arch-arm/syscalls/fchownat.S b/libc/arch-arm/syscalls/fchownat.S index ea8193f..4397a22 100644 --- a/libc/arch-arm/syscalls/fchownat.S +++ b/libc/arch-arm/syscalls/fchownat.S @@ -4,6 +4,7 @@ ENTRY(fchownat) mov ip, sp + .save {r4, r5, r6, r7} stmfd sp!, {r4, r5, r6, r7} .cfi_def_cfa_offset 16 .cfi_rel_offset r4, 0 diff --git a/libc/arch-arm/syscalls/fsetxattr.S b/libc/arch-arm/syscalls/fsetxattr.S index 64b8d03..39b97f9 100644 --- a/libc/arch-arm/syscalls/fsetxattr.S +++ b/libc/arch-arm/syscalls/fsetxattr.S @@ -4,6 +4,7 @@ ENTRY(fsetxattr) mov ip, sp + .save {r4, r5, r6, r7} stmfd sp!, {r4, r5, r6, r7} .cfi_def_cfa_offset 16 .cfi_rel_offset r4, 0 diff --git a/libc/arch-arm/syscalls/futex.S b/libc/arch-arm/syscalls/futex.S index 1646ca2..45e6fa6 100644 --- a/libc/arch-arm/syscalls/futex.S +++ b/libc/arch-arm/syscalls/futex.S @@ -4,6 +4,7 @@ ENTRY(futex) mov ip, sp + .save {r4, r5, r6, r7} stmfd sp!, {r4, r5, r6, r7} .cfi_def_cfa_offset 16 .cfi_rel_offset r4, 0 diff --git a/libc/arch-arm/syscalls/getsockopt.S b/libc/arch-arm/syscalls/getsockopt.S index 2ded34f..735efbb 100644 --- a/libc/arch-arm/syscalls/getsockopt.S +++ b/libc/arch-arm/syscalls/getsockopt.S @@ -4,6 +4,7 @@ ENTRY(getsockopt) mov ip, sp + .save {r4, r5, r6, r7} stmfd sp!, {r4, r5, r6, r7} .cfi_def_cfa_offset 16 .cfi_rel_offset r4, 0 diff --git a/libc/arch-arm/syscalls/linkat.S b/libc/arch-arm/syscalls/linkat.S index 27f1e00..c612d02 100644 --- a/libc/arch-arm/syscalls/linkat.S +++ b/libc/arch-arm/syscalls/linkat.S @@ -4,6 +4,7 @@ ENTRY(linkat) mov ip, sp + .save {r4, r5, r6, r7} stmfd sp!, {r4, r5, r6, r7} .cfi_def_cfa_offset 16 .cfi_rel_offset r4, 0 diff --git a/libc/arch-arm/syscalls/lsetxattr.S b/libc/arch-arm/syscalls/lsetxattr.S index fb3f75f..67639f6 100644 --- a/libc/arch-arm/syscalls/lsetxattr.S +++ b/libc/arch-arm/syscalls/lsetxattr.S @@ -4,6 +4,7 @@ ENTRY(lsetxattr) mov ip, sp + .save {r4, r5, r6, r7} stmfd sp!, {r4, r5, r6, r7} .cfi_def_cfa_offset 16 .cfi_rel_offset r4, 0 diff --git a/libc/arch-arm/syscalls/mount.S b/libc/arch-arm/syscalls/mount.S index d56682c..b184114 100644 --- a/libc/arch-arm/syscalls/mount.S +++ b/libc/arch-arm/syscalls/mount.S @@ -4,6 +4,7 @@ ENTRY(mount) mov ip, sp + .save {r4, r5, r6, r7} stmfd sp!, {r4, r5, r6, r7} .cfi_def_cfa_offset 16 .cfi_rel_offset r4, 0 diff --git a/libc/arch-arm/syscalls/perf_event_open.S b/libc/arch-arm/syscalls/perf_event_open.S index 2821ac5..e0cf91e 100644 --- a/libc/arch-arm/syscalls/perf_event_open.S +++ b/libc/arch-arm/syscalls/perf_event_open.S @@ -4,6 +4,7 @@ ENTRY(perf_event_open) mov ip, sp + .save {r4, r5, r6, r7} stmfd sp!, {r4, r5, r6, r7} .cfi_def_cfa_offset 16 .cfi_rel_offset r4, 0 diff --git a/libc/arch-arm/syscalls/prctl.S b/libc/arch-arm/syscalls/prctl.S index 615a2fa..40acb61 100644 --- a/libc/arch-arm/syscalls/prctl.S +++ b/libc/arch-arm/syscalls/prctl.S @@ -4,6 +4,7 @@ ENTRY(prctl) mov ip, sp + .save {r4, r5, r6, r7} stmfd sp!, {r4, r5, r6, r7} .cfi_def_cfa_offset 16 .cfi_rel_offset r4, 0 diff --git a/libc/arch-arm/syscalls/pread64.S b/libc/arch-arm/syscalls/pread64.S index 0bfb6d0..a33018c 100644 --- a/libc/arch-arm/syscalls/pread64.S +++ b/libc/arch-arm/syscalls/pread64.S @@ -4,6 +4,7 @@ ENTRY(pread64) mov ip, sp + .save {r4, r5, r6, r7} stmfd sp!, {r4, r5, r6, r7} .cfi_def_cfa_offset 16 .cfi_rel_offset r4, 0 diff --git a/libc/arch-arm/syscalls/pwrite64.S b/libc/arch-arm/syscalls/pwrite64.S index 03247b1..5ae9921 100644 --- a/libc/arch-arm/syscalls/pwrite64.S +++ b/libc/arch-arm/syscalls/pwrite64.S @@ -4,6 +4,7 @@ ENTRY(pwrite64) mov ip, sp + .save {r4, r5, r6, r7} stmfd sp!, {r4, r5, r6, r7} .cfi_def_cfa_offset 16 .cfi_rel_offset r4, 0 diff --git a/libc/arch-arm/syscalls/readahead.S b/libc/arch-arm/syscalls/readahead.S index 83d8442..326ed6f 100644 --- a/libc/arch-arm/syscalls/readahead.S +++ b/libc/arch-arm/syscalls/readahead.S @@ -4,6 +4,7 @@ ENTRY(readahead) mov ip, sp + .save {r4, r5, r6, r7} stmfd sp!, {r4, r5, r6, r7} .cfi_def_cfa_offset 16 .cfi_rel_offset r4, 0 diff --git a/libc/arch-arm/syscalls/recvfrom.S b/libc/arch-arm/syscalls/recvfrom.S index cb89f72..367790b 100644 --- a/libc/arch-arm/syscalls/recvfrom.S +++ b/libc/arch-arm/syscalls/recvfrom.S @@ -4,6 +4,7 @@ ENTRY(recvfrom) mov ip, sp + .save {r4, r5, r6, r7} stmfd sp!, {r4, r5, r6, r7} .cfi_def_cfa_offset 16 .cfi_rel_offset r4, 0 diff --git a/libc/arch-arm/syscalls/sendto.S b/libc/arch-arm/syscalls/sendto.S index bd0ec1d..533d95e 100644 --- a/libc/arch-arm/syscalls/sendto.S +++ b/libc/arch-arm/syscalls/sendto.S @@ -4,6 +4,7 @@ ENTRY(sendto) mov ip, sp + .save {r4, r5, r6, r7} stmfd sp!, {r4, r5, r6, r7} .cfi_def_cfa_offset 16 .cfi_rel_offset r4, 0 diff --git a/libc/arch-arm/syscalls/setsockopt.S b/libc/arch-arm/syscalls/setsockopt.S index b2d7597..c4f7a01 100644 --- a/libc/arch-arm/syscalls/setsockopt.S +++ b/libc/arch-arm/syscalls/setsockopt.S @@ -4,6 +4,7 @@ ENTRY(setsockopt) mov ip, sp + .save {r4, r5, r6, r7} stmfd sp!, {r4, r5, r6, r7} .cfi_def_cfa_offset 16 .cfi_rel_offset r4, 0 diff --git a/libc/arch-arm/syscalls/setxattr.S b/libc/arch-arm/syscalls/setxattr.S index 022195d..6987215 100644 --- a/libc/arch-arm/syscalls/setxattr.S +++ b/libc/arch-arm/syscalls/setxattr.S @@ -4,6 +4,7 @@ ENTRY(setxattr) mov ip, sp + .save {r4, r5, r6, r7} stmfd sp!, {r4, r5, r6, r7} .cfi_def_cfa_offset 16 .cfi_rel_offset r4, 0 diff --git a/libc/tools/gensyscalls.py b/libc/tools/gensyscalls.py index cea3508..97dc628 100755 --- a/libc/tools/gensyscalls.py +++ b/libc/tools/gensyscalls.py @@ -71,6 +71,7 @@ END(%(func)s) arm_eabi_call_long = syscall_stub_header + """\ mov ip, sp + .save {r4, r5, r6, r7} stmfd sp!, {r4, r5, r6, r7} .cfi_def_cfa_offset 16 .cfi_rel_offset r4, 0 |