[RFC] h8300 "info registers" fix

Yoshinori Sato ysato@users.sourceforge.jp
Thu Nov 16 08:30:00 GMT 2006


A response is late sorry.

At Sat, 23 Sep 2006 20:00:16 +0200 (CEST),
Mark Kettenis wrote:
> 
> > Date: Wed, 20 Sep 2006 01:28:02 +0900
> > From: Yoshinori Sato <ysato@users.sourceforge.jp>
> > 
> > I corrected it not to depend on endian.
> > 
> > Index: h8300-tdep.c
> > ===================================================================
> > RCS file: /cvs/src/src/gdb/h8300-tdep.c,v
> > retrieving revision 1.103
> > diff -u -r1.103 h8300-tdep.c
> > --- h8300-tdep.c	17 Dec 2005 22:34:00 -0000	1.103
> > +++ h8300-tdep.c	19 Sep 2006 15:55:15 -0000
> > @@ -1148,10 +1148,20 @@
> >  			    struct regcache *regcache, int regno,
> >  			    gdb_byte *buf)
> >  {
> > +  unsigned long tmp;
> > +
> >    if (regno == E_PSEUDO_CCR_REGNUM)
> > -    regcache_raw_read (regcache, E_CCR_REGNUM, buf);
> > +    {
> > +      regcache_raw_read (regcache, E_CCR_REGNUM, (gdb_byte *)&tmp);
> > +      store_unsigned_integer((gdb_byte *)&tmp, 4, tmp);
> > +      *buf = tmp;
> > +    }
> >    else if (regno == E_PSEUDO_EXR_REGNUM)
> > -    regcache_raw_read (regcache, E_EXR_REGNUM, buf);
> > +    {
> > +      regcache_raw_read (regcache, E_EXR_REGNUM, (gdb_byte *)&tmp);
> > +      store_unsigned_integer((gdb_byte *)&tmp, 4, tmp);
> > +      *buf = tmp;
> > +    }
> 
> This is still wrong.  You'll need to read the raw register into a
> properly sized gdb_byte array, take the right bits out of it and then
> move it into the buffer.  You probably want something like
> 
>   gdb_byte tmp[4];
> 
>   regcache_raw_read(regcache, E_CCR_REGNUM, tmp)
>   *buf = tmp[0];
> 
> or
> 
>   gdb_byte tmp[4];
> 
>   regcache_raw_read(regcache, E_CCR_REGNUM, tmp)
>   *buf = tmp[3];
> 
> depending on whether h8300 is little- or big-endian.
> 
> Mark

-------------- next part --------------
A non-text attachment was scrubbed...
Name: h8300.diff
Type: application/octet-stream
Size: 2925 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/gdb-patches/attachments/20061116/4b0d127a/attachment.obj>


More information about the Gdb-patches mailing list