This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [PATCH] d10v_make_iaddr: make it idempotent.
- From: Michael Snyder <msnyder at redhat dot com>
- To: Andrew Cagney <ac131313 at cygnus dot com>
- Cc: Michael Snyder <msnyder at cygnus dot com>, gdb-patches at sources dot redhat dot com, jimb at redhat dot com
- Date: Fri, 12 Apr 2002 17:22:06 -0700
- Subject: Re: [PATCH] d10v_make_iaddr: make it idempotent.
- Organization: Red Hat, Inc.
- References: <200204122239.g3CMdVB13335@reddwarf.sfbay.redhat.com> <3CB76D5E.5040506@cygnus.com>
Andrew Cagney wrote:
>
> > 2002-04-12 Michael Snyder <msnyder@redhat.com>
> >
> > * d10v-tdep.c (d10v_make_iaddr): Make it idempotent,
> > in case it gets applied to an address that is already
> > in the instruction space.
>
> Michael, I don't understand this change. Why does it need to be
> idempotent - isn't that a bug somewhere else?
If you say "x/i 0x20001234", you don't want it to apply
the transform to that address.
> And why move the code?
Just because I called dq0v_iaddr_p. I have a preference
for ordering functions rather than adding prototypes.
I guess that's not the best thing to do...
>
> Andrew
>
> > Index: d10v-tdep.c
> > ===================================================================
> > RCS file: /cvs/cvsfiles/devo/gdb/d10v-tdep.c,v
> > retrieving revision 2.88
> > diff -c -3 -p -r2.88 d10v-tdep.c
> > *** d10v-tdep.c 2002/04/09 03:00:45 2.88
> > --- d10v-tdep.c 2002/04/12 22:47:30
> > *************** d10v_register_virtual_type (int reg_nr)
> > *** 356,373 ****
> > return builtin_type_int16;
> > }
> >
> > - static CORE_ADDR
> > - d10v_make_daddr (CORE_ADDR x)
> > - {
> > - return ((x) | DMEM_START);
> > - }
> > -
> > - static CORE_ADDR
> > - d10v_make_iaddr (CORE_ADDR x)
> > - {
> > - return (((x) << 2) | IMEM_START);
> > - }
> > -
> > static int
> > d10v_daddr_p (CORE_ADDR x)
> > {
> > --- 356,361 ----
> > *************** d10v_iaddr_p (CORE_ADDR x)
> > *** 380,385 ****
> > --- 368,387 ----
> > return (((x) & 0x3000000) == IMEM_START);
> > }
> >
> > + static CORE_ADDR
> > + d10v_make_daddr (CORE_ADDR x)
> > + {
> > + return ((x) | DMEM_START);
> > + }
> > +
> > + static CORE_ADDR
> > + d10v_make_iaddr (CORE_ADDR x)
> > + {
> > + if (d10v_iaddr_p (x))
> > + return x; /* Idempotency -- x is already in the IMEM space. */
> > + else
> > + return (((x) << 2) | IMEM_START);
> > + }
> >
> > static CORE_ADDR
> > d10v_convert_iaddr_to_raw (CORE_ADDR x)
> >