2002-05-28 Elena Zannoni <ezannoni@redhat.com>
authorElena Zannoni <ezannoni@kwikemart.cygnus.com>
Tue, 28 May 2002 15:49:52 +0000 (15:49 +0000)
committerElena Zannoni <ezannoni@kwikemart.cygnus.com>
Tue, 28 May 2002 15:49:52 +0000 (15:49 +0000)
* interp.c (sim_create_inferior): Add comment.

From Alan Matsuoka <alanm@redhat.com>:
From 2001-04-27 Jason Eckhardt <jle@cygnus.com>:
* simops.c (OP_4400): Output "mvf0f" instead of "mf0f".
(OP_4401): Output "mvf0t" instead of "mf0t".
(OP_460B): Do not output a flag register.
(OP_4609): Do not output a flag register.

sim/d10v/ChangeLog
sim/d10v/interp.c
sim/d10v/simops.c

index f798d941a4f7a2db19a185bd6d8951ec433190b7..c232dca5aedb460c3551dbe7327c0ce51f511872 100644 (file)
@@ -1,3 +1,14 @@
+2002-05-28  Elena Zannoni  <ezannoni@redhat.com>
+
+       * interp.c (sim_create_inferior): Add comment.
+
+       From Alan Matsuoka <alanm@redhat.com>:
+       From 2001-04-27 Jason Eckhardt <jle@cygnus.com>:
+       * simops.c (OP_4400): Output "mvf0f" instead of "mf0f".
+       (OP_4401): Output "mvf0t" instead of "mf0t".
+       (OP_460B): Do not output a flag register.
+       (OP_4609): Do not output a flag register.
+
 2002-05-23  Andrew Cagney  <ac131313@redhat.com>
 
        * Makefile.in (INCLUDE): Add "gdb/sim-d10v.h".
index 338305c9c25cd5e2b42d5d9ef1f6e7c1fbe5ce87..0b02d8aea9b71ac9280f75304fa9c712460386c5 100644 (file)
@@ -1202,6 +1202,14 @@ sim_create_inferior (sd, abfd, argv, env)
   /* reset all state information */
   memset (&State.regs, 0, (int)&State.mem - (int)&State.regs);
 
+  /* There was a hack here to copy the values of argc and argv into r0
+     and r1.  The values were also saved into some high memory that
+     won't be overwritten by the stack (0x7C00).  The reason for doing
+     this was to allow the 'run' program to accept arguments.  Without
+     the hack, this is not possible anymore.  If the simulator is run
+     from the debugger, arguments cannot be passed in, so this makes
+     no difference.  */
+
   /* set PC */
   if (abfd != NULL)
     start_address = bfd_get_start_address (abfd);
index cb0fa56c888fecfd709406cdcee7bc72e7d77797..1c0ecfe7479b0e95d748b99b4985fed6b0e355e6 100644 (file)
@@ -1972,7 +1972,7 @@ void
 OP_4400 ()
 {
   int16 tmp;
-  trace_input ("mf0f", OP_REG_OUTPUT, OP_REG, OP_VOID);
+  trace_input ("mvf0f", OP_REG_OUTPUT, OP_REG, OP_VOID);
   if (PSW_F0 == 0)
     {
       tmp = GPR (OP[1]);
@@ -1988,7 +1988,7 @@ void
 OP_4401 ()
 {
   int16 tmp;
-  trace_input ("mf0t", OP_REG_OUTPUT, OP_REG, OP_VOID);
+  trace_input ("mvf0t", OP_REG_OUTPUT, OP_REG, OP_VOID);
   if (PSW_F0)
     {
       tmp = GPR (OP[1]);
@@ -2604,7 +2604,7 @@ void
 OP_460B ()
 {
   int16 tmp;
-  trace_input ("slx", OP_REG, OP_FLAG, OP_VOID);
+  trace_input ("slx", OP_REG, OP_VOID, OP_VOID);
   tmp = ((GPR (OP[0]) << 1) | PSW_F0);
   SET_GPR (OP[0], tmp);
   trace_output_16 (tmp);
@@ -2726,7 +2726,7 @@ void
 OP_4609 ()
 {
   uint16 tmp;
-  trace_input ("srx", OP_REG, OP_FLAG, OP_VOID);
+  trace_input ("srx", OP_REG, OP_VOID, OP_VOID);
   tmp = PSW_F0 << 15;
   tmp = ((GPR (OP[0]) >> 1) | tmp);
   SET_GPR (OP[0], tmp);