aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrederic Riss <frederic.riss@st.com>2005-11-29 07:52:39 +0000
committerFrederic Riss <frederic.riss@st.com>2005-11-29 07:52:39 +0000
commitea7963f00bb6e14fb0d8e103f928e06fa08eed67 (patch)
tree40be1bbb023556d6d834d695a30dd5e3173d317d
parent255208590ad364f1a7815079676789070f29e21c (diff)
downloadgdb-ea7963f00bb6e14fb0d8e103f928e06fa08eed67.zip
gdb-ea7963f00bb6e14fb0d8e103f928e06fa08eed67.tar.gz
gdb-ea7963f00bb6e14fb0d8e103f928e06fa08eed67.tar.bz2
* dwarf2-frame.c (dwarf2_frame_prev_register): Handle
DWARF2_FRAME_REG_CFA_OFFSET. * dwarf2-frame.h (enum dwarf2_frame_reg_rule): Add DWARF2_FRAME_REG_CFA_OFFSET.
-rw-r--r--gdb/ChangeLog7
-rw-r--r--gdb/dwarf2-frame.c13
-rw-r--r--gdb/dwarf2-frame.h3
3 files changed, 22 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index d630731..475eb76 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2005-11-25 Christophe Lyon <christophe.lyon@st.com>
+
+ * dwarf2-frame.c (dwarf2_frame_prev_register): Handle
+ DWARF2_FRAME_REG_CFA_OFFSET.
+ * dwarf2-frame.h (enum dwarf2_frame_reg_rule): Add
+ DWARF2_FRAME_REG_CFA_OFFSET.
+
2005-11-28 Mark Mitchell <mark@codesourcery.com>
* remote-sim.c (gdbsim_wait): Pass target signal numbers to
diff --git a/gdb/dwarf2-frame.c b/gdb/dwarf2-frame.c
index c65967f..81e862b 100644
--- a/gdb/dwarf2-frame.c
+++ b/gdb/dwarf2-frame.c
@@ -928,6 +928,19 @@ dwarf2_frame_prev_register (struct frame_info *next_frame, void **this_cache,
}
break;
+ case DWARF2_FRAME_REG_CFA_OFFSET:
+ *optimizedp = 0;
+ *lvalp = not_lval;
+ *addrp = 0;
+ *realnump = -1;
+ if (valuep)
+ {
+ /* Store the value. */
+ store_typed_address (valuep, builtin_type_void_data_ptr,
+ cache->cfa + cache->reg[regnum].loc.offset);
+ }
+ break;
+
case DWARF2_FRAME_REG_RA_OFFSET:
*optimizedp = 0;
*lvalp = not_lval;
diff --git a/gdb/dwarf2-frame.h b/gdb/dwarf2-frame.h
index 7f951e7..c5dea7b 100644
--- a/gdb/dwarf2-frame.h
+++ b/gdb/dwarf2-frame.h
@@ -55,7 +55,8 @@ enum dwarf2_frame_reg_rule
used internally by GDB. */
DWARF2_FRAME_REG_RA, /* Return Address. */
DWARF2_FRAME_REG_RA_OFFSET, /* Return Address with offset. */
- DWARF2_FRAME_REG_CFA /* Call Frame Address. */
+ DWARF2_FRAME_REG_CFA, /* Call Frame Address. */
+ DWARF2_FRAME_REG_CFA_OFFSET /* Call Frame Address with offset. */
};
/* Register state. */