Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [PATCH] d10v_make_iaddr: make it idempotent.
@ 2002-04-12 15:51 Michael Snyder
  2002-04-12 16:27 ` Andrew Cagney
  0 siblings, 1 reply; 3+ messages in thread
From: Michael Snyder @ 2002-04-12 15:51 UTC (permalink / raw)
  To: gdb-patches; +Cc: jimb

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.

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)


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] d10v_make_iaddr: make it idempotent.
  2002-04-12 15:51 [PATCH] d10v_make_iaddr: make it idempotent Michael Snyder
@ 2002-04-12 16:27 ` Andrew Cagney
  2002-04-12 17:34   ` Michael Snyder
  0 siblings, 1 reply; 3+ messages in thread
From: Andrew Cagney @ 2002-04-12 16:27 UTC (permalink / raw)
  To: Michael Snyder; +Cc: gdb-patches, jimb

> 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?  And why move the code?

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



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] d10v_make_iaddr: make it idempotent.
  2002-04-12 16:27 ` Andrew Cagney
@ 2002-04-12 17:34   ` Michael Snyder
  0 siblings, 0 replies; 3+ messages in thread
From: Michael Snyder @ 2002-04-12 17:34 UTC (permalink / raw)
  To: Andrew Cagney; +Cc: Michael Snyder, gdb-patches, jimb

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


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2002-04-13  0:34 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-04-12 15:51 [PATCH] d10v_make_iaddr: make it idempotent Michael Snyder
2002-04-12 16:27 ` Andrew Cagney
2002-04-12 17:34   ` Michael Snyder

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox