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]

[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.

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]