Re: Patch to provide m68k simulator to gdb

Will Cohen
2001-03-05T13:25:00Z

I have revised the code to avoid hard coded constants for the register
numbers. The register numbers are defined in sim-main.h.

---

There are a number of depreciated routines in the current
implementation. These will have to be reworked. Would it be possible
to check in the m68k simulator into the GDB source tree and then upgrade
the simulator interface to the current implementation?

-Will

Andrew Cagney wrote:
>
> 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