diff --git a/ChangeLog b/ChangeLog index 9dcebbd3..ca24a095 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2014-02-28 Yufeng Zhang + + * src/aarch64/sysv.S (ffi_closure_SYSV): Use x29 as the + main CFA reg; update cfi_rel_offset. + 2014-02-09 Heiher * src/mips/n32.S: Fix call floating point va function. diff --git a/src/aarch64/sysv.S b/src/aarch64/sysv.S index bd67798a..7273b737 100644 --- a/src/aarch64/sysv.S +++ b/src/aarch64/sysv.S @@ -249,13 +249,13 @@ CNAME(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 @@ -313,7 +313,7 @@ CNAME(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)