am f4985b14: Merge "Clear link register in __bionic_clone."

* commit 'f4985b14cfed187376a24dd4a0cd16206e746bd9':
  Clear link register in __bionic_clone.
This commit is contained in:
Ben Cheng 2014-05-24 00:57:39 +00:00 committed by Android Git Automerger
commit 5034829504
2 changed files with 4 additions and 9 deletions

View File

@ -54,19 +54,14 @@ ENTRY(__bionic_clone)
# In the parent, reload saved registers then either return or set errno. # In the parent, reload saved registers then either return or set errno.
ldmfd sp!, {r4, r5, r6, r7} ldmfd sp!, {r4, r5, r6, r7}
.cfi_def_cfa_offset 0
cmn r0, #(MAX_ERRNO + 1) cmn r0, #(MAX_ERRNO + 1)
bxls lr bxls lr
neg r0, r0 neg r0, r0
b __set_errno b __set_errno
1: # The child. 1: # The child.
# Re-add the unwind directives that were reset from above. # Setting lr to 0 will make the unwinder stop at __bionic_clone_entry
.cfi_def_cfa_offset 16 mov lr, #0
.cfi_rel_offset r4, 0
.cfi_rel_offset r5, 4
.cfi_rel_offset r6, 8
.cfi_rel_offset r7, 12
ldr r0, [sp, #-4] ldr r0, [sp, #-4]
ldr r1, [sp, #-8] ldr r1, [sp, #-8]
b __bionic_clone_entry b __bionic_clone_entry

View File

@ -61,9 +61,9 @@ ENTRY(__bionic_clone)
.L_bc_child: .L_bc_child:
# We're in the child now. Set the end of the frame record chain... # We're in the child now. Set the end of the frame record chain...
.cfi_undefined x29
.cfi_undefined x30
mov x29, xzr mov x29, xzr
# Setting x30 to 0 will make the unwinder stop at __bionic_clone_entry
mov x30, xzr
# ...and call __bionic_clone_entry with the 'fn' and 'arg' we stored on the child stack. # ...and call __bionic_clone_entry with the 'fn' and 'arg' we stored on the child stack.
ldp x0, x1, [sp, #-16] ldp x0, x1, [sp, #-16]
b __bionic_clone_entry b __bionic_clone_entry