[RFC:avr] use regcache instead of read_register

Andrew Cagney ac131313@redhat.com
Fri Jun 20 14:19:00 GMT 2003


> Hi,
> 
> The ARI caught this and it seems like a trivial change. There is a bit of 
> confusion though in the use of current_regcache since the ARI says this:
> 
>   current regcache 57 Replace current_regcache with explict parameter
> 
> What would that explicit parameter be?
> 
> If this patch is ok, it brings the ARI count for the AVR down to 0.

The patch is great.   Don't be too worried about current_regcache for 
the moment.

As for what parameter will be added to read_pc, I can give you several 
guesses:

- made redundant by unwind_pc(frame)
- replaced with something that takes the thread id and stop status

The underlying problem is decr pc after break.  Cleaning up that also 
involves read_pc, write_pc, and the update frame pc hack.

Andrew


> 2003-06-19  Theodore A. Roth  <troth@openavr.org>
> 
> 	* avr-tdep.c (avr_read_pc): Use regcache instead of read_register.
> 	(avr_read_sp): Ditto.
> 
> 
> 
> 
> 2003-06-19  Theodore A. Roth  <troth@openavr.org>
> 
> 	* avr-tdep.c (avr_read_pc): Use regcache instead of read_register.
> 	(avr_read_sp): Ditto.
> 
> Index: avr-tdep.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/avr-tdep.c,v
> retrieving revision 1.64
> diff -u -r1.64 avr-tdep.c
> --- avr-tdep.c	20 Jun 2003 05:53:42 -0000	1.64
> +++ avr-tdep.c	20 Jun 2003 06:09:27 -0000
> @@ -324,12 +324,12 @@
>  avr_read_pc (ptid_t ptid)
>  {
>    ptid_t save_ptid;
> -  CORE_ADDR pc;
> +  ULONGEST pc;
>    CORE_ADDR retval;
>  
>    save_ptid = inferior_ptid;
>    inferior_ptid = ptid;
> -  pc = (int) read_register (AVR_PC_REGNUM);
> +  regcache_cooked_read_unsigned (current_regcache, AVR_PC_REGNUM, &pc);
>    inferior_ptid = save_ptid;
>    retval = avr_make_iaddr (pc);
>    return retval;
> @@ -349,7 +349,10 @@
>  static CORE_ADDR
>  avr_read_sp (void)
>  {
> -  return (avr_make_saddr (read_register (AVR_SP_REGNUM)));
> +  ULONGEST sp;
> +
> +  regcache_cooked_read_unsigned (current_regcache, AVR_SP_REGNUM, &sp);
> +  return (avr_make_saddr (sp));
>  }
>  
>  static int




More information about the Gdb-patches mailing list