This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch 2/2] Implement gdbarch hook user_register_name on ARM


On 12/22/2010 03:07 AM, Ulrich Weigand wrote:
> Yao Qi wrote:
>> On 12/15/2010 06:22 PM, Yao Qi wrote:
>>> Once this patch is applied, we leave more flexibility to backend to
>>> determine what is the correct register number given a register alias.
>>
>> This patch is to implement user_register_name on ARM.  With this, we can
>> handle alias "fp" according to the current frame's mode (ARM or Thumb).
>>
>> Regression testing is still running on ARM.  Comments are welcome.
> 
> I'm wondering why the ARM back-end actively defines "fp" as user register
> anyway.  If it simply were to *not* do so, GDB would fall back to the
> default implementation of $fp using value_of_builtin_frame_fp_reg, which
> seems to do always the correct thing anyway.  It returns the value of the
> frame base as returned by arm_normal_frame_base, which will have been
> determined from r11 or r7 as appropriate for the mode.

Good catch! set_gdbarch_deprecated_fp_regnum is called in
arm_gdbarch_init since 2003, introduced by this patch "Deprecate
TARGET_READ_FP, read_fp and FP_REGNUM"
http://sourceware.org/ml/gdb-patches/2003-04/msg00471.html

set_gdbarch_deprecated_fp_regnum is no longer used in most of targets,
and I don't see any reason why we have to keep it in ARM, so I draft
this one-line patch.

Any comments/objections to this one-line patch?  [Regression test is
still running.]

-- 
Yao (éå)
gdb/
	* arm-tdep.c (arm_gdbarch_init): Remove invoke to
	set_gdbarch_deprecated_fp_regnum.

diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
index 636c1de..1f112ee 100644
--- a/gdb/arm-tdep.c
+++ b/gdb/arm-tdep.c
@@ -7457,7 +7457,6 @@ arm_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
 					 arm_remote_breakpoint_from_pc);
 
   /* Information about registers, etc.  */
-  set_gdbarch_deprecated_fp_regnum (gdbarch, ARM_FP_REGNUM);	/* ??? */
   set_gdbarch_sp_regnum (gdbarch, ARM_SP_REGNUM);
   set_gdbarch_pc_regnum (gdbarch, ARM_PC_REGNUM);
   set_gdbarch_num_regs (gdbarch, ARM_NUM_REGS);

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]