]> git.ipfire.org Git - thirdparty/elfutils.git/commitdiff
backends: arm_cfi SP (r13) is restored from CFA by default.
authorMark Wielaard <mjw@redhat.com>
Sat, 25 Jan 2014 13:32:42 +0000 (14:32 +0100)
committerMark Wielaard <mjw@redhat.com>
Thu, 30 Jan 2014 09:23:50 +0000 (10:23 +0100)
Signed-off-by: Mark Wielaard <mjw@redhat.com>
backends/ChangeLog
backends/arm_cfi.c
tests/ChangeLog
tests/run-addrcfi.sh

index 045fa9d1b35d7447992941a81e5c075cf62a891c..c8e2b3017bfec9c936ace027d6cf70959f8e1c45 100644 (file)
@@ -1,3 +1,7 @@
+2014-01-25  Mark Wielaard  <mjw@redhat.com>
+
+       * arm_cfi.c (arm_abi_cfi): Restore SP (r13) from CFA.
+
 2014-01-24  Mark Wielaard  <mjw@redhat.com>
 
        * arm_reloc.def: Update list.
index e0cc44bf6771b6961982463ca78534c58a664ac7..971a1fc4389b80e8a40c68fd02d2ac8ee3aecf1a 100644 (file)
@@ -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),
index cbf26725804da42716a42850cac158bfad3dc966..fa8a42a274db884c6375fabb7608024bd8cec62d 100644 (file)
@@ -1,3 +1,8 @@
+2014-01-25  Mark Wielaard  <mjw@redhat.com>
+
+       * run-addrcfi.sh (EM_ARM): Change reg13 (sp) from undefined to
+       location expression: call_frame_cfa stack_value.
+
 2014-01-22  Mark Wielaard  <mjw@redhat.com>
 
        * Makefile.am (line2addr_no_Wformat): Removed.
index a4225ac0e7f0f4127e8ef6b2490bb1ff8a65d66c..5d33246af0304195d7766241017a56a6362ea9a3 100755 (executable)
@@ -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