public inbox for elfutils@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] aarch64: Add default cfi rule to restore SP from CFA address.
@ 2018-04-11  8:47 Mark Wielaard
  2018-04-13 11:44 ` Mark Wielaard
  0 siblings, 1 reply; 2+ messages in thread
From: Mark Wielaard @ 2018-04-11  8:47 UTC (permalink / raw)
  To: elfutils-devel; +Cc: Mark Wielaard

The CFA is set by default to the stack pointer of the previous frame.
So that is also how we can always restore the SP. This default aarch64
CFI rule is necessary on Fedora 28 with GCC8 to make the run-deleted.sh
and run-backtrace-dwarf.sh testcases work.

Signed-off-by: Mark Wielaard <mark@klomp.org>
---
 backends/ChangeLog     | 5 +++++
 backends/aarch64_cfi.c | 7 +++++--
 tests/ChangeLog        | 4 ++++
 tests/run-addrcfi.sh   | 2 +-
 4 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/backends/ChangeLog b/backends/ChangeLog
index b525801..57baea0 100644
--- a/backends/ChangeLog
+++ b/backends/ChangeLog
@@ -1,3 +1,8 @@
+2018-04-11  Mark Wielaard  <mark@klomp.org>
+
+	* aarch64_cfi.c (aarch64_abi_cfi): Add rule for restoring SP from
+	CFA address.
+
 2018-02-15  Mark Wielaard  <mark@klomp.org>
 
 	* ppc_initreg.c: Include ptrace.h before system.h and sys/user.h.
diff --git a/backends/aarch64_cfi.c b/backends/aarch64_cfi.c
index acbb9b6..a5579ab 100644
--- a/backends/aarch64_cfi.c
+++ b/backends/aarch64_cfi.c
@@ -1,5 +1,5 @@
-/* arm ABI-specified defaults for DWARF CFI.
-   Copyright (C) 2013 Red Hat, Inc.
+/* arm64 ABI-specified defaults for DWARF CFI.
+   Copyright (C) 2013, 2018 Red Hat, Inc.
    This file is part of elfutils.
 
    This file is free software; you can redistribute it and/or modify
@@ -62,6 +62,9 @@ aarch64_abi_cfi (Ebl *ebl __attribute__ ((unused)), Dwarf_CIE *abi_info)
       /* The Frame Pointer (FP, r29) and Link Register (LR, r30).  */
       SV (29), SV (30),
 
+      /* The Stack Pointer (r31) is restored from CFA address by default.  */
+      DW_CFA_val_offset, ULEB128_7 (31), ULEB128_7 (0),
+
       /* Callee-saved fpregs v8-v15.  v0 == 64.  */
       SV (72), SV (73), SV (74), SV (75),
       SV (76), SV (77), SV (78), SV (79),
diff --git a/tests/ChangeLog b/tests/ChangeLog
index fea1d17..bcd7b47 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,7 @@
+2018-04-11  Mark Wielaard  <mark@klomp.org>
+
+	* run-addrcfi.sh: Adjust expected rule for aarch64 sp.
+
 2018-03-06  Mark Wielaard  <mark@klomp.org>
 
 	* varlocs.c (print_expr): Handle DW_OP_implicit_pointer,
diff --git a/tests/run-addrcfi.sh b/tests/run-addrcfi.sh
index 376a6dc..fd89d02 100755
--- a/tests/run-addrcfi.sh
+++ b/tests/run-addrcfi.sh
@@ -3637,7 +3637,7 @@ dwarf_cfi_addrframe (.eh_frame): no matching address range
 	integer reg28 (x28): same_value
 	integer reg29 (x29): same_value
 	integer reg30 (x30): same_value
-	integer reg31 (sp): undefined
+	integer reg31 (sp): location expression: call_frame_cfa stack_value
 	integer reg33 (elr): undefined
 	FP/SIMD reg64 (v0): undefined
 	FP/SIMD reg65 (v1): undefined
-- 
1.8.3.1

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] aarch64: Add default cfi rule to restore SP from CFA address.
  2018-04-11  8:47 [PATCH] aarch64: Add default cfi rule to restore SP from CFA address Mark Wielaard
@ 2018-04-13 11:44 ` Mark Wielaard
  0 siblings, 0 replies; 2+ messages in thread
From: Mark Wielaard @ 2018-04-13 11:44 UTC (permalink / raw)
  To: elfutils-devel

On Wed, 2018-04-11 at 10:47 +0200, Mark Wielaard wrote:
> The CFA is set by default to the stack pointer of the previous frame.
> So that is also how we can always restore the SP. This default aarch64
> CFI rule is necessary on Fedora 28 with GCC8 to make the run-deleted.sh
> and run-backtrace-dwarf.sh testcases work.

Pushed to master.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2018-04-13 11:44 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-11  8:47 [PATCH] aarch64: Add default cfi rule to restore SP from CFA address Mark Wielaard
2018-04-13 11:44 ` Mark Wielaard

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).