diff options
author | Daniel Jacobowitz <drow@false.org> | 2008-05-01 18:30:51 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2008-05-01 18:30:51 +0000 |
commit | b39cc96258b1a5fb23014fb3712f24a7578e1070 (patch) | |
tree | 09535e8c6262da6fd31dd630d09e72c8aeacbf94 /gdb/dwarf2-frame.h | |
parent | 36d520f5f660dd788e0bcc5471439af7e5aca7bc (diff) | |
download | binutils-gdb-b39cc96258b1a5fb23014fb3712f24a7578e1070.tar.gz |
* arm-linux-tdep.h (ARM_CPSR_REGNUM): Delete definition.
* arm-tdep.c (arm_frame_is_thumb): New.
(arm_pc_is_thumb): Clarify comment.
(thumb_analyze_prologue): Remove PC special case.
(thumb_scan_prologue): Take a block_addr argument. Use it for
find_pc_partial_function. Remove unused variables.
(arm_scan_prologue): Use arm_frame_is_thumb. Use the block address
for find_pc_partial_function. Remove PC special case.
(arm_prologue_prev_register): Add special handling for PC and CPSR.
(arm_dwarf2_prev_register, arm_dwarf2_frame_init_reg): New.
(arm_get_next_pc): Use arm_frame_is_thumb.
(arm_write_pc): Use CPSR_T instead of 0x20.
(arm_gdbarch_init): Call dwarf2_frame_set_init_reg.
* arm-tdep.h (enum gdb_regnum): Add ARM_CPSR_REGNUM.
(CPSR_T): Define.
* dwarf2-frame.c (dwarf2_frame_prev_register): Handle
DWARF2_FRAME_REG_FN.
* dwarf2-frame.h (enum dwarf2_frame_reg_rule): Add
DWARF2_FRAME_REG_FN.
(struct dwarf2_frame_state_reg): Add FN to loc union.
* gdb.arch/thumb-prologue.exp: Do not expect a saved PC.
Diffstat (limited to 'gdb/dwarf2-frame.h')
-rw-r--r-- | gdb/dwarf2-frame.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gdb/dwarf2-frame.h b/gdb/dwarf2-frame.h index dc9f0037d00..aeff54a22b9 100644 --- a/gdb/dwarf2-frame.h +++ b/gdb/dwarf2-frame.h @@ -55,6 +55,7 @@ enum dwarf2_frame_reg_rule /* These aren't defined by the DWARF2 CFI specification, but are used internally by GDB. */ + DWARF2_FRAME_REG_FN, /* Call a registered function. */ DWARF2_FRAME_REG_RA, /* Return Address. */ DWARF2_FRAME_REG_RA_OFFSET, /* Return Address with offset. */ DWARF2_FRAME_REG_CFA, /* Call Frame Address. */ @@ -71,6 +72,8 @@ struct dwarf2_frame_state_reg LONGEST offset; ULONGEST reg; unsigned char *exp; + struct value *(*fn) (struct frame_info *this_frame, void **this_cache, + int regnum); } loc; ULONGEST exp_len; enum dwarf2_frame_reg_rule how; |