summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristopher Ferris <cferris@google.com>2014-06-18 12:18:25 -0700
committerChristopher Ferris <cferris@google.com>2014-06-18 12:54:59 -0700
commit40bc7cd4ed9fb848a7b3d934f69669f64ceed707 (patch)
tree7bde0ec48a2a8c22bf9895007887fffc854a797e
parent1d3d0360eee442c7c73006e2069acdc051575edb (diff)
downloadbionic-40bc7cd4ed9fb848a7b3d934f69669f64ceed707.zip
bionic-40bc7cd4ed9fb848a7b3d934f69669f64ceed707.tar.gz
bionic-40bc7cd4ed9fb848a7b3d934f69669f64ceed707.tar.bz2
DO NOT MERGE Re-add .save directive for arm assembler code.
Restored the .save directives so that the libcorkscrew unwinder continues to function. Bug: 15701117 Change-Id: I853695a299548b84c78ae8147b9757dbeacdb1ec
-rw-r--r--libc/arch-arm/bionic/__bionic_clone.S1
-rw-r--r--libc/arch-arm/bionic/abort_arm.S1
-rw-r--r--libc/arch-arm/bionic/memcmp.S1
-rw-r--r--libc/arch-arm/bionic/memcmp16.S1
-rw-r--r--libc/arch-arm/bionic/syscall.S1
-rw-r--r--libc/arch-arm/syscalls/__epoll_pwait.S1
-rw-r--r--libc/arch-arm/syscalls/__llseek.S1
-rw-r--r--libc/arch-arm/syscalls/__mmap2.S1
-rw-r--r--libc/arch-arm/syscalls/__ppoll.S1
-rw-r--r--libc/arch-arm/syscalls/__pselect6.S1
-rw-r--r--libc/arch-arm/syscalls/__waitid.S1
-rw-r--r--libc/arch-arm/syscalls/fchownat.S1
-rw-r--r--libc/arch-arm/syscalls/fsetxattr.S1
-rw-r--r--libc/arch-arm/syscalls/futex.S1
-rw-r--r--libc/arch-arm/syscalls/getsockopt.S1
-rw-r--r--libc/arch-arm/syscalls/linkat.S1
-rw-r--r--libc/arch-arm/syscalls/lsetxattr.S1
-rw-r--r--libc/arch-arm/syscalls/mount.S1
-rw-r--r--libc/arch-arm/syscalls/perf_event_open.S1
-rw-r--r--libc/arch-arm/syscalls/prctl.S1
-rw-r--r--libc/arch-arm/syscalls/pread64.S1
-rw-r--r--libc/arch-arm/syscalls/pwrite64.S1
-rw-r--r--libc/arch-arm/syscalls/readahead.S1
-rw-r--r--libc/arch-arm/syscalls/recvfrom.S1
-rw-r--r--libc/arch-arm/syscalls/sendto.S1
-rw-r--r--libc/arch-arm/syscalls/setsockopt.S1
-rw-r--r--libc/arch-arm/syscalls/setxattr.S1
-rwxr-xr-xlibc/tools/gensyscalls.py1
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