am f4985b14
: Merge "Clear link register in __bionic_clone."
* commit 'f4985b14cfed187376a24dd4a0cd16206e746bd9': Clear link register in __bionic_clone.
This commit is contained in:
commit
5034829504
@ -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
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user