This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[PATCH] sim/d10v small fixes
- From: Elena Zannoni <ezannoni at redhat dot com>
- To: gdb-patches at sources dot redhat dot com
- Date: Tue, 28 May 2002 11:49:24 -0400
- Subject: [PATCH] sim/d10v small fixes
Some small fixes.
Committed as obvious.
Elena
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.
Index: interp.c
===================================================================
RCS file: /cvs/src/src/sim/d10v/interp.c,v
retrieving revision 1.7
diff -u -p -r1.7 interp.c
--- interp.c 24 May 2002 00:12:16 -0000 1.7
+++ interp.c 28 May 2002 15:46:56 -0000
@@ -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: simops.c
===================================================================
RCS file: /cvs/src/src/sim/d10v/simops.c,v
retrieving revision 1.2
diff -u -p -r1.2 simops.c
--- simops.c 9 Feb 2000 05:08:42 -0000 1.2
+++ simops.c 28 May 2002 15:46:58 -0000
@@ -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);