diff options
author | Frederic Riss <frederic.riss@st.com> | 2005-11-29 07:52:39 +0000 |
---|---|---|
committer | Frederic Riss <frederic.riss@st.com> | 2005-11-29 07:52:39 +0000 |
commit | ea7963f00bb6e14fb0d8e103f928e06fa08eed67 (patch) | |
tree | 40be1bbb023556d6d834d695a30dd5e3173d317d | |
parent | 255208590ad364f1a7815079676789070f29e21c (diff) | |
download | gdb-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/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/dwarf2-frame.c | 13 | ||||
-rw-r--r-- | gdb/dwarf2-frame.h | 3 |
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. */ |