From: Elena Zannoni Date: Tue, 28 May 2002 15:49:52 +0000 (+0000) Subject: 2002-05-28 Elena Zannoni X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1aa5e64f43701efe72b2701463a58ff84f48df74;p=binutils-gdb.git 2002-05-28 Elena Zannoni * interp.c (sim_create_inferior): Add comment. From Alan Matsuoka : From 2001-04-27 Jason Eckhardt : * 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. --- diff --git a/sim/d10v/ChangeLog b/sim/d10v/ChangeLog index f798d941a4f..c232dca5aed 100644 --- a/sim/d10v/ChangeLog +++ b/sim/d10v/ChangeLog @@ -1,3 +1,14 @@ +2002-05-28 Elena Zannoni + + * interp.c (sim_create_inferior): Add comment. + + From Alan Matsuoka : + From 2001-04-27 Jason Eckhardt : + * 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 * Makefile.in (INCLUDE): Add "gdb/sim-d10v.h". diff --git a/sim/d10v/interp.c b/sim/d10v/interp.c index 338305c9c25..0b02d8aea9b 100644 --- a/sim/d10v/interp.c +++ b/sim/d10v/interp.c @@ -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); diff --git a/sim/d10v/simops.c b/sim/d10v/simops.c index cb0fa56c888..1c0ecfe7479 100644 --- a/sim/d10v/simops.c +++ b/sim/d10v/simops.c @@ -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);