This is the mail archive of the gdb-cvs@sourceware.org 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]

[binutils-gdb] sim: cris: do not pass cpu when writing memory during init


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=8b494522f9f20e1e1d29089067d51fc141c33558

commit 8b494522f9f20e1e1d29089067d51fc141c33558
Author: Mike Frysinger <vapier@gentoo.org>
Date:   Sat Dec 26 08:13:38 2015 -0500

    sim: cris: do not pass cpu when writing memory during init
    
    The point of passing down the cpu to core reads/writes is to signal which
    cpu is making the access.  For system accesses (such as internal memory
    initialization), passing the cpu down doesn't make sense, and in the case
    of early init like cris, can cause crashes.  Since the cpu isn't fully set
    up at this point, if the core code tries to access some fields (like the
    PC reg), it'll crash.  While cris shouldn't be doing this setup here (it
    should be in the inferior stage), we'll deal with that later.

Diff:
---
 sim/cris/ChangeLog |  5 +++++
 sim/cris/sim-if.c  | 10 +++++-----
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/sim/cris/ChangeLog b/sim/cris/ChangeLog
index e7f4cc6..82cffd3 100644
--- a/sim/cris/ChangeLog
+++ b/sim/cris/ChangeLog
@@ -1,5 +1,10 @@
 2015-12-26  Mike Frysinger  <vapier@gentoo.org>
 
+	* sim-if.c (sim_open): Delete cpu variable.  Pass NULL/NULL_CIA to
+	sim_core_write_buffer.
+
+2015-12-26  Mike Frysinger  <vapier@gentoo.org>
+
 	* sim-if.c (sim_create_inferior): Delete old comment and set up
 	STATE_PROG_ARGV.
 
diff --git a/sim/cris/sim-if.c b/sim/cris/sim-if.c
index 97307f8..72c0540 100644
--- a/sim/cris/sim-if.c
+++ b/sim/cris/sim-if.c
@@ -845,8 +845,6 @@ sim_open (SIM_OPEN_KIND kind, host_callback *callback, struct bfd *abfd,
       int i;
       char **prog_argv = STATE_PROG_ARGV (sd);
       int my_argc = 0;
-      /* All CPU:s have the same memory map, apparently.  */
-      SIM_CPU *cpu = STATE_CPU (sd, 0);
       USI csp;
       bfd_byte buf[4];
 
@@ -910,7 +908,7 @@ sim_open (SIM_OPEN_KIND kind, host_callback *callback, struct bfd *abfd,
      USI data_ = data;							\
      USI addr_ = addr;							\
      bfd_putl32 (data_, buf);						\
-     if (sim_core_write_buffer (sd, cpu, 0, buf, addr_, 4) != 4)	\
+     if (sim_core_write_buffer (sd, NULL, NULL_CIA, buf, addr_, 4) != 4)\
 	goto abandon_chip;						\
    }									\
  while (0)
@@ -922,7 +920,8 @@ sim_open (SIM_OPEN_KIND kind, host_callback *callback, struct bfd *abfd,
 	{
 	  size_t strln = strlen (prog_argv[i]) + 1;
 
-	  if (sim_core_write_buffer (sd, cpu, 0, prog_argv[i], epp, strln)
+	  if (sim_core_write_buffer (sd, NULL, NULL_CIA, prog_argv[i], epp,
+				     strln)
 	      != strln)
 	  goto abandon_chip;
 
@@ -937,7 +936,8 @@ sim_open (SIM_OPEN_KIND kind, host_callback *callback, struct bfd *abfd,
 	{
 	  unsigned int strln = strlen (my_environ[i]) + 1;
 
-	  if (sim_core_write_buffer (sd, cpu, 0, my_environ[i], epp, strln)
+	  if (sim_core_write_buffer (sd, NULL, NULL_CIA, my_environ[i], epp,
+				     strln)
 	      != strln)
 	    goto abandon_chip;


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