diff mbox

[AArch64] Sync merge libffi - fix call frame information in ffi_closure_SYSV

Message ID 5310CAE5.6090700@arm.com
State New
Headers show

Commit Message

Yufeng Zhang Feb. 28, 2014, 5:44 p.m. UTC
Hi,

The attached patch fixes a bug in ./src/aarch64/sysv.S:ffi_closure_SYSV 
where stack unwinding information was not generated correctly.  The 
change has been reviewed, approved and merged into the stand-alone 
libffi release tree**.

OK for the trunk?

Thanks,
Yufeng

** http://github.com/atgreen/libffi


2014-02-28  Yufeng Zhang  <yufeng.zhang@arm.com>

	* src/aarch64/sysv.S (ffi_closure_SYSV): Use x29 as the
	main CFA reg; update cfi_rel_offset.

Comments

Yufeng Zhang March 12, 2014, 2:16 p.m. UTC | #1
Ping~

Originally posted here: 
http://gcc.gnu.org/ml/gcc-patches/2014-02/msg01673.html

Thanks,
Yufeng

On 02/28/14 17:44, Yufeng Zhang wrote:
> Hi,
>
> The attached patch fixes a bug in ./src/aarch64/sysv.S:ffi_closure_SYSV
> where stack unwinding information was not generated correctly.  The
> change has been reviewed, approved and merged into the stand-alone
> libffi release tree**.
>
> OK for the trunk?
>
> Thanks,
> Yufeng
>
> ** http://github.com/atgreen/libffi
>
>
> 2014-02-28  Yufeng Zhang<yufeng.zhang@arm.com>
>
> 	* src/aarch64/sysv.S (ffi_closure_SYSV): Use x29 as the
> 	main CFA reg; update cfi_rel_offset.
Marcus Shawcroft March 12, 2014, 2:27 p.m. UTC | #2
On 28/02/14 17:44, Yufeng Zhang wrote:
> Hi,
>
> The attached patch fixes a bug in ./src/aarch64/sysv.S:ffi_closure_SYSV
> where stack unwinding information was not generated correctly.  The
> change has been reviewed, approved and merged into the stand-alone
> libffi release tree**.
>
> OK for the trunk?
>
> Thanks,
> Yufeng
>
> ** http://github.com/atgreen/libffi
>
>
> 2014-02-28  Yufeng Zhang  <yufeng.zhang@arm.com>
>
> 	* src/aarch64/sysv.S (ffi_closure_SYSV): Use x29 as the
> 	main CFA reg; update cfi_rel_offset.
>

This change is already committed in upstream libffi.

Since it is a bug fix I think it should be merged to the gcc/libffi for 
4.9.  Please leave another 24 hours for the RM's to comment before 
committing it.

Thanks
/Marcus
Jakub Jelinek March 12, 2014, 2:29 p.m. UTC | #3
On Wed, Mar 12, 2014 at 02:27:12PM +0000, Marcus Shawcroft wrote:
> On 28/02/14 17:44, Yufeng Zhang wrote:
> >** http://github.com/atgreen/libffi
> >
> >
> >2014-02-28  Yufeng Zhang  <yufeng.zhang@arm.com>
> >
> >	* src/aarch64/sysv.S (ffi_closure_SYSV): Use x29 as the
> >	main CFA reg; update cfi_rel_offset.
> >
> 
> This change is already committed in upstream libffi.
> 
> Since it is a bug fix I think it should be merged to the gcc/libffi
> for 4.9.  Please leave another 24 hours for the RM's to comment
> before committing it.

Ok.

	Jakub
diff mbox

Patch

diff --git a/libffi/src/aarch64/sysv.S b/libffi/src/aarch64/sysv.S
index b8cd421..ffb16f8 100644
--- a/libffi/src/aarch64/sysv.S
+++ b/libffi/src/aarch64/sysv.S
@@ -231,13 +231,13 @@  ffi_closure_SYSV:
         cfi_rel_offset (x30, 8)
 
         mov     x29, sp
+        cfi_def_cfa_register (x29)
 
         sub     sp, sp, #ffi_closure_SYSV_FS
-	cfi_adjust_cfa_offset (ffi_closure_SYSV_FS)
 
         stp     x21, x22, [x29, #-16]
-        cfi_rel_offset (x21, 0)
-        cfi_rel_offset (x22, 8)
+        cfi_rel_offset (x21, -16)
+        cfi_rel_offset (x22, -8)
 
         /* Load x21 with &call_context.  */
         mov     x21, sp
@@ -295,7 +295,7 @@  ffi_closure_SYSV:
         cfi_restore (x22)
 
         mov     sp, x29
-	cfi_adjust_cfa_offset (-ffi_closure_SYSV_FS)
+        cfi_def_cfa_register (sp)
 
         ldp     x29, x30, [sp], #16
 	cfi_adjust_cfa_offset (-16)