diff options
author | Andrew Cagney <cagney@redhat.com> | 2004-08-05 00:17:52 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 2004-08-05 00:17:52 +0000 |
commit | 91cd10427a41cb556ca19cbe928ebe374210c953 (patch) | |
tree | bc026bef5a5caf66dcebce2996e91799ebb37e3b /sim/ppc/sim_calls.c | |
parent | 0a8490ad3ac5b8e618241beca1a6212003e1974d (diff) | |
download | gdb-91cd10427a41cb556ca19cbe928ebe374210c953.zip gdb-91cd10427a41cb556ca19cbe928ebe374210c953.tar.gz gdb-91cd10427a41cb556ca19cbe928ebe374210c953.tar.bz2 |
2004-08-04 Andrew Cagney <cagney@gnu.org>
Jim Blandy <jimb@redhat.com>
* sim_callbacks.h (simulator): Declare.
* Makefile.in (gdb-sim.o): New rule.
(MAIN_SRC, GDB_OBJ): Add gdb-sim.o, gdb-sim.c.
(DEFS_H): Delete.
(GDB_SIM_PPC_H): Define.
* gdb-sim.c: New file.
* sim_calls.c: Do not include "defs.h".
(simulator): Drop static.
(sim_store_register, sim_fetch_register): Delete.
Diffstat (limited to 'sim/ppc/sim_calls.c')
-rw-r--r-- | sim/ppc/sim_calls.c | 74 |
1 files changed, 1 insertions, 73 deletions
diff --git a/sim/ppc/sim_calls.c b/sim/ppc/sim_calls.c index 040ce83..ae74593 100644 --- a/sim/ppc/sim_calls.c +++ b/sim/ppc/sim_calls.c @@ -40,7 +40,6 @@ #endif #endif -#include "defs.h" #include "bfd.h" #include "gdb/callback.h" #include "gdb/remote-sim.h" @@ -55,33 +54,10 @@ static int poll_quit_count = POLL_QUIT_INTERVAL; /* Structures used by the simulator, for gdb just have static structures */ -static psim *simulator; +psim *simulator; static device *root_device; static host_callback *callbacks; -/* We use GDB's gdbarch_register_name function to map GDB register - numbers onto names, which we can then look up in the register - table. Since the `set architecture' command can select a new - processor variant at run-time, the meanings of the register numbers - can change, so we need to make sure the sim uses the same - name/number mapping that GDB uses. - - (We don't use the REGISTER_NAME macro, which is a wrapper for - gdbarch_register_name. We #include GDB's "defs.h", which tries to - #include GDB's "config.h", but gets ours instead, and REGISTER_NAME - ends up not getting defined. Simpler to just use - gdbarch_register_name directly.) - - We used to just use the REGISTER_NAMES macro from GDB's - target-dependent header files, which expanded into an initializer - for an array of strings. That was kind of nice, because it meant - that libsim.a had only a compile-time dependency on GDB; using - gdbarch_register_name directly means that there are now link-time - and run-time dependencies too. - - Perhaps the host_callback structure could provide a function for - retrieving register names; that would be cleaner. */ - SIM_DESC sim_open (SIM_OPEN_KIND kind, host_callback *callback, @@ -176,54 +152,6 @@ sim_write (SIM_DESC sd, SIM_ADDR mem, unsigned char *buf, int length) return result; } - -int -sim_fetch_register (SIM_DESC sd, int regno, unsigned char *buf, int length) -{ - const char *regname; - - if (simulator == NULL) { - return 0; - } - - /* GDB will sometimes ask for the contents of a register named ""; - we ignore such requests, and leave garbage in *BUF. In GDB - terms, the empty string means "the register with this number is - not present in the currently selected architecture variant." - That's following the kludge we're using for the MIPS processors. - But there are loops that just walk through the entire list of - names and try to get everything. */ - regname = gdbarch_register_name (current_gdbarch, regno); - if (! regname || regname[0] == '\0') - return -1; - - TRACE(trace_gdb, ("sim_fetch_register(regno=%d(%s), buf=0x%lx)\n", - regno, regname, (long)buf)); - return psim_read_register(simulator, MAX_NR_PROCESSORS, - buf, regname, raw_transfer); -} - - -int -sim_store_register (SIM_DESC sd, int regno, unsigned char *buf, int length) -{ - const char *regname; - - if (simulator == NULL) - return 0; - - /* See comments in sim_fetch_register, above. */ - regname = gdbarch_register_name (current_gdbarch, regno); - if (! regname || regname[0] == '\0') - return -1; - - TRACE(trace_gdb, ("sim_store_register(regno=%d(%s), buf=0x%lx)\n", - regno, regname, (long)buf)); - return psim_write_register(simulator, MAX_NR_PROCESSORS, - buf, regname, raw_transfer); -} - - void sim_info (SIM_DESC sd, int verbose) { |