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


> Date: Thu, 23 Dec 2010 00:34:22 +0800
> From: Yao Qi <yao@codesourcery.com>
> 
> 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.]

Actually grep tells me that arm is the only target that still uses
this.  A sure sign that we can get rid of it!

A followup diff to remove all the deprected fp stuff would be nice ;)
But don't let you stop that from committing this.

> 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]