From: Mark Wielaard Date: Sat, 25 Jan 2014 13:32:42 +0000 (+0100) Subject: backends: arm_cfi SP (r13) is restored from CFA by default. X-Git-Tag: elfutils-0.159~41 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a02d90ae12c5386b85332536b516da435150dd88;p=thirdparty%2Felfutils.git backends: arm_cfi SP (r13) is restored from CFA by default. Signed-off-by: Mark Wielaard --- diff --git a/backends/ChangeLog b/backends/ChangeLog index 045fa9d1b..c8e2b3017 100644 --- a/backends/ChangeLog +++ b/backends/ChangeLog @@ -1,3 +1,7 @@ +2014-01-25 Mark Wielaard + + * arm_cfi.c (arm_abi_cfi): Restore SP (r13) from CFA. + 2014-01-24 Mark Wielaard * arm_reloc.def: Update list. diff --git a/backends/arm_cfi.c b/backends/arm_cfi.c index e0cc44bf6..971a1fc43 100644 --- a/backends/arm_cfi.c +++ b/backends/arm_cfi.c @@ -54,6 +54,9 @@ arm_abi_cfi (Ebl *ebl __attribute__ ((unused)), Dwarf_CIE *abi_info) Stack Pointer (r13) as setup in the previous frame. */ DW_CFA_def_cfa, ULEB128_7 (13), ULEB128_7 (0), + /* The Stack Pointer (r13) is restored from CFA address by default. */ + DW_CFA_val_offset, ULEB128_7 (13), ULEB128_7 (0), + #define SV(n) DW_CFA_same_value, ULEB128_7 (n) /* Callee-saved regs r4-r8, r10, r11. */ SV (4), SV (5), SV (6), SV (7), SV (8), SV (10), SV (11), diff --git a/tests/ChangeLog b/tests/ChangeLog index cbf267258..fa8a42a27 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,8 @@ +2014-01-25 Mark Wielaard + + * run-addrcfi.sh (EM_ARM): Change reg13 (sp) from undefined to + location expression: call_frame_cfa stack_value. + 2014-01-22 Mark Wielaard * Makefile.am (line2addr_no_Wformat): Removed. diff --git a/tests/run-addrcfi.sh b/tests/run-addrcfi.sh index a4225ac0e..5d33246af 100755 --- a/tests/run-addrcfi.sh +++ b/tests/run-addrcfi.sh @@ -2519,7 +2519,7 @@ dwarf_cfi_addrframe (.eh_frame): no matching address range integer reg10 (r10): same_value integer reg11 (r11): same_value integer reg12 (r12): undefined - integer reg13 (sp): undefined + integer reg13 (sp): location expression: call_frame_cfa stack_value integer reg14 (lr): same_value integer reg15 (pc): location expression: regx(14) FPA reg16 (f0): undefined