]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
[AArch64] BZ #16169 Add CFI directives to clone.S
authorTom Tromey <tromey@redhat.com>
Mon, 20 Jan 2014 12:58:03 +0000 (12:58 +0000)
committerMarcus Shawcroft <marcus.shawcroft@arm.com>
Tue, 21 Jan 2014 12:42:06 +0000 (12:42 +0000)
[BZ #16169] Add CFI directives to the AArch64 clone.S implementation
and ensure that the FP in the child is zero'd in order to comply with
AAPCS.
(cherry picked from commit 3a3acb6afc753475675b5724f206e619d0c9590d)

Conflicts:

NEWS

NEWS
ports/ChangeLog.aarch64
ports/sysdeps/unix/sysv/linux/aarch64/clone.S

diff --git a/NEWS b/NEWS
index 2e8bb1684e3fb2047968cc139630aa144222a4cd..c914dadd53eb696f92033ad6ea9fdea50ace1be0 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -9,7 +9,7 @@ Version 2.18.1
 
 * The following bugs are resolved with this release:
 
-  15073, 15128, 15909, 15996, 16150, 16387.
+  15073, 15128, 15909, 15996, 16150, 16169, 16387.
 \f
 Version 2.18
 
index ce2fd5cf5e0b39c5b996201e80b0c45463d980a9..89259326d6ca5d33948291e92d181496eea88696 100644 (file)
@@ -1,3 +1,9 @@
+2014-01-20  Tom Tromey  <tromey@redhat.com>
+
+       [BZ #16169]
+       * sysdeps/unix/sysv/linux/aarch64/clone.S (__clone): Add CFI
+       directives;  Zero x29.
+
 2014-01-07  Marcus Shawcroft  <marcus.shawcroft@linaro.org>
 
        [BZ #16387]
index b359e6e8a3270bb1abf398fe899a1fe620777425..7d8816977f295bb6f375b667481a0ad327507717 100644 (file)
@@ -63,6 +63,7 @@ ENTRY(__clone)
        mov     x8, #SYS_ify(clone)
        /* X0:flags, x1:newsp, x2:parenttidptr, x3:newtls, x4:childtid.  */
        svc     0x0
+       cfi_endproc
        cmp     x0, #0
        beq     2f
        blt     3f
@@ -72,6 +73,9 @@ ENTRY(__clone)
        b       syscall_error
 
 2:
+       cfi_startproc
+       cfi_undefined (x30)
+       mov     x29, 0
 #ifdef RESET_PID
        tbnz    x5, #CLONE_THREAD_BIT, 3f
        mov     x0, #-1
@@ -93,7 +97,8 @@ ENTRY(__clone)
 
        /* We are done, pass the return value through x0.  */
        b       HIDDEN_JUMPTARGET(_exit)
-
+       cfi_endproc
+       cfi_startproc
 PSEUDO_END (__clone)
 
 weak_alias (__clone, clone)