Re: Patch to provide m68k simulator to gdb

Andrew Cagney
2001-02-28T08:39:00Z

Below are some quick comment about things that are often missed when
integrating a new simulator.

--

New simulators use a header file (include/sim-XXX.h - eg
include/sim-d10v.h) as a way of avoiding magic numbers like:

sim_fetch_register()

+ case 0: case 1: case 2: case 3: case 4: case 5: case 6:
case 7:
+ /* address regs "a0", "a1", "a2", "a3", "a4", "a5", "fp", "sp"
*/
+ case 8: case 9: case 10: case 11: case 12: case 13: case 14:
case 15:
+ val = saved_state.regs[rn];

That header along with REGISTER_SIM_REGNO() make it possible to decouple
the simulators register numbers from GDBs. Could the code please be
changed to at least use the header file.

--

I have a feeling that this code is implementing a number of
older/deprecated methods. Have a look over include/remote-sim.h where
it clearly identifies deprecated interfaces. For instance:

/* Single-step simulator with tracing enabled.
THIS PROCEDURE IS DEPRECIATED.
THIS PROCEDURE IS EVEN MORE DEPRECATED THAN SIM_SET_TRACE
GDB and NRUN do not use this interface.

Make certain that you use `nrun.c'' and not the older ``run.c''. Add
the line:

# List of main object files for `run'.
SIM_RUN_OBJS = nrun.o

to your Makefile.in. It is probably why you implemented sim_trace()
et.al.

Andrew