From c616775d2c6df31786b71b4e135fba90b4a63f89 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Mon, 20 Jan 2014 12:58:03 +0000 Subject: [AArch64] BZ #16169 Add CFI directives to clone.S [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 | 2 +- ports/ChangeLog.aarch64 | 6 ++++++ ports/sysdeps/unix/sysv/linux/aarch64/clone.S | 7 ++++++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index 2e8bb1684e..c914dadd53 100644 --- 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. Version 2.18 diff --git a/ports/ChangeLog.aarch64 b/ports/ChangeLog.aarch64 index ce2fd5cf5e..89259326d6 100644 --- a/ports/ChangeLog.aarch64 +++ b/ports/ChangeLog.aarch64 @@ -1,3 +1,9 @@ +2014-01-20 Tom Tromey + + [BZ #16169] + * sysdeps/unix/sysv/linux/aarch64/clone.S (__clone): Add CFI + directives; Zero x29. + 2014-01-07 Marcus Shawcroft [BZ #16387] diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/clone.S b/ports/sysdeps/unix/sysv/linux/aarch64/clone.S index b359e6e8a3..7d8816977f 100644 --- a/ports/sysdeps/unix/sysv/linux/aarch64/clone.S +++ b/ports/sysdeps/unix/sysv/linux/aarch64/clone.S @@ -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) -- cgit 1.4.1