From 3a3acb6afc753475675b5724f206e619d0c9590d 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. --- NEWS | 8 ++++---- ports/ChangeLog.aarch64 | 6 ++++++ ports/sysdeps/unix/sysv/linux/aarch64/clone.S | 7 ++++++- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/NEWS b/NEWS index da86ee502e..87ab0485fd 100644 --- a/NEWS +++ b/NEWS @@ -22,10 +22,10 @@ Version 2.19 15919, 15921, 15923, 15939, 15941, 15948, 15963, 15966, 15985, 15988, 15997, 16032, 16034, 16036, 16037, 16038, 16041, 16055, 16071, 16072, 16074, 16077, 16078, 16103, 16112, 16133, 16143, 16144, 16146, 16150, - 16151, 16153, 16167, 16172, 16195, 16214, 16245, 16271, 16274, 16283, - 16289, 16293, 16314, 16316, 16330, 16337, 16338, 16356, 16365, 16366, - 16369, 16372, 16375, 16379, 16384, 16385, 16386, 16387, 16390, 16394, - 16400, 16407, 16408, 16414, 16430, 16453. + 16151, 16153, 16167, 16169, 16172, 16195, 16214, 16245, 16271, 16274, + 16283, 16289, 16293, 16314, 16316, 16330, 16337, 16338, 16356, 16365, + 16366, 16369, 16372, 16375, 16379, 16384, 16385, 16386, 16387, 16390, + 16394, 16400, 16407, 16408, 16414, 16430, 16453. * Slovenian translations for glibc messages have been contributed by the Translation Project's Slovenian team of translators. diff --git a/ports/ChangeLog.aarch64 b/ports/ChangeLog.aarch64 index 19d8fe13a0..f11a086536 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-20 Marcus Shawcroft * sysdeps/aarch64/configure.ac: New file. diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/clone.S b/ports/sysdeps/unix/sysv/linux/aarch64/clone.S index 2ca8021064..f2964f4871 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 v1.2.3