This is the mail archive of the gdb-patches@sources.redhat.com 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] d10v_make_iaddr: make it idempotent.


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



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]