* dwarf2-frame.c (dwarf2_frame_prev_register): Handle
authorFrederic Riss <frederic.riss@st.com>
Tue, 29 Nov 2005 07:52:39 +0000 (07:52 +0000)
committerFrederic Riss <frederic.riss@st.com>
Tue, 29 Nov 2005 07:52:39 +0000 (07:52 +0000)
DWARF2_FRAME_REG_CFA_OFFSET.
* dwarf2-frame.h (enum dwarf2_frame_reg_rule): Add
DWARF2_FRAME_REG_CFA_OFFSET.

gdb/ChangeLog
gdb/dwarf2-frame.c
gdb/dwarf2-frame.h

index d630731..475eb76 100644 (file)
@@ -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
index c65967f..81e862b 100644 (file)
@@ -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;
index 7f951e7..c5dea7b 100644 (file)
@@ -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.  */