From b480f1ed659e0934ef019fe2adcce1d3be2e38b4 Mon Sep 17 00:00:00 2001 From: Michael Snyder Date: Thu, 5 Sep 2002 19:03:07 +0000 Subject: 2002-09-05 Michael Snyder * 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. --- gdb/ChangeLog | 4 ++++ gdb/arm-tdep.c | 8 ++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 415773c87b4..ed0551d0567 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,9 @@ 2002-09-05 Michael Snyder + * 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. + * mips-tdep.c (mips_n32n64_push_arguments): Remove alignment adjustment that doesn't conform to the ABI. (mips_extract_struct_value_address): Retrieve V0_REGNUM from diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c index fb1ac0169ed..c84c3c65756 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; } -- cgit v1.2.1