diff options
author | Michael Snyder <msnyder@vmware.com> | 2002-09-05 19:03:07 +0000 |
---|---|---|
committer | Michael Snyder <msnyder@vmware.com> | 2002-09-05 19:03:07 +0000 |
commit | a90c3637c992d771a1c313bb7cd8067a462479ff (patch) | |
tree | f625f8bd44ed7ea99748725e3df5b234ac608dfc /gdb/arm-tdep.c | |
parent | 6672060b1877c20582d769ffa31b7d13b030cc97 (diff) | |
download | gdb-a90c3637c992d771a1c313bb7cd8067a462479ff.zip gdb-a90c3637c992d771a1c313bb7cd8067a462479ff.tar.gz gdb-a90c3637c992d771a1c313bb7cd8067a462479ff.tar.bz2 |
2002-09-05 Michael Snyder <msnyder@redhat.com>
* arm-tdep.c (arm_init_extra_frame_info): Distinguish between
generic_dummy_frame method and old method. Also distinguish
between ARM_FP_REGNUM and THUMB_FP_REGNUM.
Diffstat (limited to 'gdb/arm-tdep.c')
-rw-r--r-- | gdb/arm-tdep.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c index fb1ac01..c84c3c6 100644 --- a/gdb/arm-tdep.c +++ b/gdb/arm-tdep.c @@ -1143,7 +1143,8 @@ arm_init_extra_frame_info (int fromleaf, struct frame_info *fi) fi->extra_info->frameoffset = 0; } - else if (PC_IN_CALL_DUMMY (fi->pc, sp, fi->frame)) + else if (!USE_GENERIC_DUMMY_FRAMES + && PC_IN_CALL_DUMMY (fi->pc, sp, fi->frame)) { CORE_ADDR rp; CORE_ADDR callers_sp; @@ -1162,7 +1163,10 @@ arm_init_extra_frame_info (int fromleaf, struct frame_info *fi) callers_sp = read_memory_integer (fi->saved_regs[ARM_SP_REGNUM], REGISTER_RAW_SIZE (ARM_SP_REGNUM)); - fi->extra_info->framereg = ARM_FP_REGNUM; + if (arm_pc_is_thumb (fi->pc)) + fi->extra_info->framereg = THUMB_FP_REGNUM; + else + fi->extra_info->framereg = ARM_FP_REGNUM; fi->extra_info->framesize = callers_sp - sp; fi->extra_info->frameoffset = fi->frame - sp; } |