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
This commit is contained in:
parent
1d3d0360ee
commit
40bc7cd4ed
@ -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);
|
// 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)
|
ENTRY(__bionic_clone)
|
||||||
mov ip, sp
|
mov ip, sp
|
||||||
|
.save {r4, r5, r6, r7}
|
||||||
# save registers to parent stack
|
# save registers to parent stack
|
||||||
stmfd sp!, {r4, r5, r6, r7}
|
stmfd sp!, {r4, r5, r6, r7}
|
||||||
.cfi_def_cfa_offset 16
|
.cfi_def_cfa_offset 16
|
||||||
|
@ -36,6 +36,7 @@
|
|||||||
* sequence when the crash happens.
|
* sequence when the crash happens.
|
||||||
*/
|
*/
|
||||||
ENTRY(abort)
|
ENTRY(abort)
|
||||||
|
.save {r3, r14}
|
||||||
stmfd sp!, {r3, r14}
|
stmfd sp!, {r3, r14}
|
||||||
.cfi_def_cfa_offset 8
|
.cfi_def_cfa_offset 8
|
||||||
.cfi_rel_offset r3, 0
|
.cfi_rel_offset r3, 0
|
||||||
|
@ -108,6 +108,7 @@ ENTRY(memcmp)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* save registers */
|
/* save registers */
|
||||||
|
.save {r4, lr}
|
||||||
stmfd sp!, {r4, lr}
|
stmfd sp!, {r4, lr}
|
||||||
.cfi_def_cfa_offset 8
|
.cfi_def_cfa_offset 8
|
||||||
.cfi_rel_offset r4, 0
|
.cfi_rel_offset r4, 0
|
||||||
|
@ -75,6 +75,7 @@ ENTRY(__memcmp16)
|
|||||||
|
|
||||||
|
|
||||||
/* save registers */
|
/* save registers */
|
||||||
|
.save {r4, lr}
|
||||||
0: stmfd sp!, {r4, lr}
|
0: stmfd sp!, {r4, lr}
|
||||||
.cfi_def_cfa_offset 8
|
.cfi_def_cfa_offset 8
|
||||||
.cfi_rel_offset r4, 0
|
.cfi_rel_offset r4, 0
|
||||||
|
@ -30,6 +30,7 @@
|
|||||||
|
|
||||||
ENTRY(syscall)
|
ENTRY(syscall)
|
||||||
mov ip, sp
|
mov ip, sp
|
||||||
|
.save {r4, r5, r6, r7}
|
||||||
stmfd sp!, {r4, r5, r6, r7}
|
stmfd sp!, {r4, r5, r6, r7}
|
||||||
.cfi_def_cfa_offset 16
|
.cfi_def_cfa_offset 16
|
||||||
.cfi_rel_offset r4, 0
|
.cfi_rel_offset r4, 0
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
ENTRY(__epoll_pwait)
|
ENTRY(__epoll_pwait)
|
||||||
mov ip, sp
|
mov ip, sp
|
||||||
|
.save {r4, r5, r6, r7}
|
||||||
stmfd sp!, {r4, r5, r6, r7}
|
stmfd sp!, {r4, r5, r6, r7}
|
||||||
.cfi_def_cfa_offset 16
|
.cfi_def_cfa_offset 16
|
||||||
.cfi_rel_offset r4, 0
|
.cfi_rel_offset r4, 0
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
ENTRY(__llseek)
|
ENTRY(__llseek)
|
||||||
mov ip, sp
|
mov ip, sp
|
||||||
|
.save {r4, r5, r6, r7}
|
||||||
stmfd sp!, {r4, r5, r6, r7}
|
stmfd sp!, {r4, r5, r6, r7}
|
||||||
.cfi_def_cfa_offset 16
|
.cfi_def_cfa_offset 16
|
||||||
.cfi_rel_offset r4, 0
|
.cfi_rel_offset r4, 0
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
ENTRY(__mmap2)
|
ENTRY(__mmap2)
|
||||||
mov ip, sp
|
mov ip, sp
|
||||||
|
.save {r4, r5, r6, r7}
|
||||||
stmfd sp!, {r4, r5, r6, r7}
|
stmfd sp!, {r4, r5, r6, r7}
|
||||||
.cfi_def_cfa_offset 16
|
.cfi_def_cfa_offset 16
|
||||||
.cfi_rel_offset r4, 0
|
.cfi_rel_offset r4, 0
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
ENTRY(__ppoll)
|
ENTRY(__ppoll)
|
||||||
mov ip, sp
|
mov ip, sp
|
||||||
|
.save {r4, r5, r6, r7}
|
||||||
stmfd sp!, {r4, r5, r6, r7}
|
stmfd sp!, {r4, r5, r6, r7}
|
||||||
.cfi_def_cfa_offset 16
|
.cfi_def_cfa_offset 16
|
||||||
.cfi_rel_offset r4, 0
|
.cfi_rel_offset r4, 0
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
ENTRY(__pselect6)
|
ENTRY(__pselect6)
|
||||||
mov ip, sp
|
mov ip, sp
|
||||||
|
.save {r4, r5, r6, r7}
|
||||||
stmfd sp!, {r4, r5, r6, r7}
|
stmfd sp!, {r4, r5, r6, r7}
|
||||||
.cfi_def_cfa_offset 16
|
.cfi_def_cfa_offset 16
|
||||||
.cfi_rel_offset r4, 0
|
.cfi_rel_offset r4, 0
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
ENTRY(__waitid)
|
ENTRY(__waitid)
|
||||||
mov ip, sp
|
mov ip, sp
|
||||||
|
.save {r4, r5, r6, r7}
|
||||||
stmfd sp!, {r4, r5, r6, r7}
|
stmfd sp!, {r4, r5, r6, r7}
|
||||||
.cfi_def_cfa_offset 16
|
.cfi_def_cfa_offset 16
|
||||||
.cfi_rel_offset r4, 0
|
.cfi_rel_offset r4, 0
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
ENTRY(fchownat)
|
ENTRY(fchownat)
|
||||||
mov ip, sp
|
mov ip, sp
|
||||||
|
.save {r4, r5, r6, r7}
|
||||||
stmfd sp!, {r4, r5, r6, r7}
|
stmfd sp!, {r4, r5, r6, r7}
|
||||||
.cfi_def_cfa_offset 16
|
.cfi_def_cfa_offset 16
|
||||||
.cfi_rel_offset r4, 0
|
.cfi_rel_offset r4, 0
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
ENTRY(fsetxattr)
|
ENTRY(fsetxattr)
|
||||||
mov ip, sp
|
mov ip, sp
|
||||||
|
.save {r4, r5, r6, r7}
|
||||||
stmfd sp!, {r4, r5, r6, r7}
|
stmfd sp!, {r4, r5, r6, r7}
|
||||||
.cfi_def_cfa_offset 16
|
.cfi_def_cfa_offset 16
|
||||||
.cfi_rel_offset r4, 0
|
.cfi_rel_offset r4, 0
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
ENTRY(futex)
|
ENTRY(futex)
|
||||||
mov ip, sp
|
mov ip, sp
|
||||||
|
.save {r4, r5, r6, r7}
|
||||||
stmfd sp!, {r4, r5, r6, r7}
|
stmfd sp!, {r4, r5, r6, r7}
|
||||||
.cfi_def_cfa_offset 16
|
.cfi_def_cfa_offset 16
|
||||||
.cfi_rel_offset r4, 0
|
.cfi_rel_offset r4, 0
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
ENTRY(getsockopt)
|
ENTRY(getsockopt)
|
||||||
mov ip, sp
|
mov ip, sp
|
||||||
|
.save {r4, r5, r6, r7}
|
||||||
stmfd sp!, {r4, r5, r6, r7}
|
stmfd sp!, {r4, r5, r6, r7}
|
||||||
.cfi_def_cfa_offset 16
|
.cfi_def_cfa_offset 16
|
||||||
.cfi_rel_offset r4, 0
|
.cfi_rel_offset r4, 0
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
ENTRY(linkat)
|
ENTRY(linkat)
|
||||||
mov ip, sp
|
mov ip, sp
|
||||||
|
.save {r4, r5, r6, r7}
|
||||||
stmfd sp!, {r4, r5, r6, r7}
|
stmfd sp!, {r4, r5, r6, r7}
|
||||||
.cfi_def_cfa_offset 16
|
.cfi_def_cfa_offset 16
|
||||||
.cfi_rel_offset r4, 0
|
.cfi_rel_offset r4, 0
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
ENTRY(lsetxattr)
|
ENTRY(lsetxattr)
|
||||||
mov ip, sp
|
mov ip, sp
|
||||||
|
.save {r4, r5, r6, r7}
|
||||||
stmfd sp!, {r4, r5, r6, r7}
|
stmfd sp!, {r4, r5, r6, r7}
|
||||||
.cfi_def_cfa_offset 16
|
.cfi_def_cfa_offset 16
|
||||||
.cfi_rel_offset r4, 0
|
.cfi_rel_offset r4, 0
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
ENTRY(mount)
|
ENTRY(mount)
|
||||||
mov ip, sp
|
mov ip, sp
|
||||||
|
.save {r4, r5, r6, r7}
|
||||||
stmfd sp!, {r4, r5, r6, r7}
|
stmfd sp!, {r4, r5, r6, r7}
|
||||||
.cfi_def_cfa_offset 16
|
.cfi_def_cfa_offset 16
|
||||||
.cfi_rel_offset r4, 0
|
.cfi_rel_offset r4, 0
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
ENTRY(perf_event_open)
|
ENTRY(perf_event_open)
|
||||||
mov ip, sp
|
mov ip, sp
|
||||||
|
.save {r4, r5, r6, r7}
|
||||||
stmfd sp!, {r4, r5, r6, r7}
|
stmfd sp!, {r4, r5, r6, r7}
|
||||||
.cfi_def_cfa_offset 16
|
.cfi_def_cfa_offset 16
|
||||||
.cfi_rel_offset r4, 0
|
.cfi_rel_offset r4, 0
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
ENTRY(prctl)
|
ENTRY(prctl)
|
||||||
mov ip, sp
|
mov ip, sp
|
||||||
|
.save {r4, r5, r6, r7}
|
||||||
stmfd sp!, {r4, r5, r6, r7}
|
stmfd sp!, {r4, r5, r6, r7}
|
||||||
.cfi_def_cfa_offset 16
|
.cfi_def_cfa_offset 16
|
||||||
.cfi_rel_offset r4, 0
|
.cfi_rel_offset r4, 0
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
ENTRY(pread64)
|
ENTRY(pread64)
|
||||||
mov ip, sp
|
mov ip, sp
|
||||||
|
.save {r4, r5, r6, r7}
|
||||||
stmfd sp!, {r4, r5, r6, r7}
|
stmfd sp!, {r4, r5, r6, r7}
|
||||||
.cfi_def_cfa_offset 16
|
.cfi_def_cfa_offset 16
|
||||||
.cfi_rel_offset r4, 0
|
.cfi_rel_offset r4, 0
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
ENTRY(pwrite64)
|
ENTRY(pwrite64)
|
||||||
mov ip, sp
|
mov ip, sp
|
||||||
|
.save {r4, r5, r6, r7}
|
||||||
stmfd sp!, {r4, r5, r6, r7}
|
stmfd sp!, {r4, r5, r6, r7}
|
||||||
.cfi_def_cfa_offset 16
|
.cfi_def_cfa_offset 16
|
||||||
.cfi_rel_offset r4, 0
|
.cfi_rel_offset r4, 0
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
ENTRY(readahead)
|
ENTRY(readahead)
|
||||||
mov ip, sp
|
mov ip, sp
|
||||||
|
.save {r4, r5, r6, r7}
|
||||||
stmfd sp!, {r4, r5, r6, r7}
|
stmfd sp!, {r4, r5, r6, r7}
|
||||||
.cfi_def_cfa_offset 16
|
.cfi_def_cfa_offset 16
|
||||||
.cfi_rel_offset r4, 0
|
.cfi_rel_offset r4, 0
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
ENTRY(recvfrom)
|
ENTRY(recvfrom)
|
||||||
mov ip, sp
|
mov ip, sp
|
||||||
|
.save {r4, r5, r6, r7}
|
||||||
stmfd sp!, {r4, r5, r6, r7}
|
stmfd sp!, {r4, r5, r6, r7}
|
||||||
.cfi_def_cfa_offset 16
|
.cfi_def_cfa_offset 16
|
||||||
.cfi_rel_offset r4, 0
|
.cfi_rel_offset r4, 0
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
ENTRY(sendto)
|
ENTRY(sendto)
|
||||||
mov ip, sp
|
mov ip, sp
|
||||||
|
.save {r4, r5, r6, r7}
|
||||||
stmfd sp!, {r4, r5, r6, r7}
|
stmfd sp!, {r4, r5, r6, r7}
|
||||||
.cfi_def_cfa_offset 16
|
.cfi_def_cfa_offset 16
|
||||||
.cfi_rel_offset r4, 0
|
.cfi_rel_offset r4, 0
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
ENTRY(setsockopt)
|
ENTRY(setsockopt)
|
||||||
mov ip, sp
|
mov ip, sp
|
||||||
|
.save {r4, r5, r6, r7}
|
||||||
stmfd sp!, {r4, r5, r6, r7}
|
stmfd sp!, {r4, r5, r6, r7}
|
||||||
.cfi_def_cfa_offset 16
|
.cfi_def_cfa_offset 16
|
||||||
.cfi_rel_offset r4, 0
|
.cfi_rel_offset r4, 0
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
ENTRY(setxattr)
|
ENTRY(setxattr)
|
||||||
mov ip, sp
|
mov ip, sp
|
||||||
|
.save {r4, r5, r6, r7}
|
||||||
stmfd sp!, {r4, r5, r6, r7}
|
stmfd sp!, {r4, r5, r6, r7}
|
||||||
.cfi_def_cfa_offset 16
|
.cfi_def_cfa_offset 16
|
||||||
.cfi_rel_offset r4, 0
|
.cfi_rel_offset r4, 0
|
||||||
|
@ -71,6 +71,7 @@ END(%(func)s)
|
|||||||
|
|
||||||
arm_eabi_call_long = syscall_stub_header + """\
|
arm_eabi_call_long = syscall_stub_header + """\
|
||||||
mov ip, sp
|
mov ip, sp
|
||||||
|
.save {r4, r5, r6, r7}
|
||||||
stmfd sp!, {r4, r5, r6, r7}
|
stmfd sp!, {r4, r5, r6, r7}
|
||||||
.cfi_def_cfa_offset 16
|
.cfi_def_cfa_offset 16
|
||||||
.cfi_rel_offset r4, 0
|
.cfi_rel_offset r4, 0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user