* Makefile.in (CSEARCH): Add -I$(srcdir)/../../gdb

* compile.c: #include "remote-sim.h".
(sim_resume): New arg siggnal.
(sim_write): Use SIM_ADDR for type of arg addr.  Always return a value.
(sim_read): Ditto.
(sim_store_register): Result is type int.
(sim_fetch_register): Ditto.
(sim_stop_reason): Renamed from sim_stop_signal.
(sim_set_pc): Use SIM_ADDR for type of arg pc.
(sim_info): int result, new arg printf_fn.
(sim_kill): int result.
(sim_open): int result, new arg name.
* run.c (main): Use sim_set_pc to set pc.  Update call to sim_info.
This commit is contained in:
David Edelsohn
1993-10-26 17:01:03 +00:00
parent c7efaa16dc
commit a415cf0a77
3 changed files with 54 additions and 25 deletions

View File

@ -1,3 +1,21 @@
Tue Oct 26 09:43:36 1993 Doug Evans (dje@canuck.cygnus.com)
* Makefile.in (CSEARCH): Add -I$(srcdir)/../../gdb
* compile.c: #include "remote-sim.h".
(sim_resume): New arg siggnal.
(sim_write): Use SIM_ADDR for type of arg addr.
Always return a value.
(sim_read): Ditto.
(sim_store_register): Result is type int.
(sim_fetch_register): Ditto.
(sim_stop_reason): Renamed from sim_stop_signal.
(sim_set_pc): Use SIM_ADDR for type of arg pc.
(sim_info): int result, new arg printf_fn.
(sim_kill): int result.
(sim_open): int result, new arg name.
* run.c (main): Use sim_set_pc to set pc.
Update call to sim_info.
Sat Oct 23 15:01:18 1993 Doug Evans (dje@canuck.cygnus.com) Sat Oct 23 15:01:18 1993 Doug Evans (dje@canuck.cygnus.com)
* compile.c (sim_stop_signal): Result is now enum sim_stop. * compile.c (sim_stop_signal): Result is now enum sim_stop.

View File

@ -21,7 +21,7 @@
#include "sysdep.h" #include "sysdep.h"
#include <sys/times.h> #include <sys/times.h>
#include <sys/param.h> #include <sys/param.h>
#include "remote-sim.h"
int debug; int debug;
@ -780,7 +780,7 @@ int n,nz;
} }
int int
sim_resume (step) sim_resume (step, siggnal)
{ {
static int init1; static int init1;
int cycles = 0; int cycles = 0;
@ -1462,7 +1462,7 @@ case O(name, SL):{ int t;int hm = 0x80000000; rd = GET_L_REG(code->src.reg);how;
int int
sim_write (addr, buffer, size) sim_write (addr, buffer, size)
long int addr; SIM_ADDR addr;
unsigned char *buffer; unsigned char *buffer;
int size; int size;
{ {
@ -1470,24 +1470,24 @@ sim_write (addr, buffer, size)
init_pointers (); init_pointers ();
if (addr < 0 || addr + size > MSIZE) if (addr < 0 || addr + size > MSIZE)
return; return 0;
for (i = 0; i < size; i++) for (i = 0; i < size; i++)
{ {
cpu.memory[addr + i] = buffer[i]; cpu.memory[addr + i] = buffer[i];
cpu.cache_idx[addr + i] = 0; cpu.cache_idx[addr + i] = 0;
} }
return size; return size;
} }
int int
sim_read (addr, buffer, size) sim_read (addr, buffer, size)
long int addr; SIM_ADDR addr;
char *buffer; unsigned char *buffer;
int size; int size;
{ {
init_pointers (); init_pointers ();
if (addr < 0 || addr + size > MSIZE) if (addr < 0 || addr + size > MSIZE)
return; return 0;
memcpy (buffer, cpu.memory + addr, size); memcpy (buffer, cpu.memory + addr, size);
return size; return size;
} }
@ -1515,7 +1515,7 @@ sim_read (addr, buffer, size)
#define TICK_REGNUM 12 #define TICK_REGNUM 12
void int
sim_store_register (rn, value) sim_store_register (rn, value)
int rn; int rn;
unsigned char *value; unsigned char *value;
@ -1560,12 +1560,13 @@ sim_store_register (rn, value)
cpu.ticks = longval; cpu.ticks = longval;
break; break;
} }
return 0;
} }
void int
sim_fetch_register (rn, buf) sim_fetch_register (rn, buf)
int rn; int rn;
char *buf; unsigned char *buf;
{ {
int v; int v;
int longreg = 0; int longreg = 0;
@ -1595,7 +1596,6 @@ sim_fetch_register (rn, buf)
case 10: case 10:
v = cpu.cycles; v = cpu.cycles;
longreg = 1; longreg = 1;
break; break;
case 11: case 11:
v = cpu.ticks; v = cpu.ticks;
@ -1605,7 +1605,6 @@ sim_fetch_register (rn, buf)
v = cpu.insts; v = cpu.insts;
longreg = 1; longreg = 1;
break; break;
} }
if (h8300hmode || longreg) if (h8300hmode || longreg)
{ {
@ -1619,6 +1618,7 @@ sim_fetch_register (rn, buf)
buf[0] = v >> 8; buf[0] = v >> 8;
buf[1] = v; buf[1] = v;
} }
return 0;
} }
int int
@ -1627,17 +1627,22 @@ sim_trace ()
return 0; return 0;
} }
enum sim_stop int
sim_stop_signal (sigrc) sim_stop_reason (reason, sigrc)
int *sigrc enum sim_stop *reason;
int *sigrc;
{ {
*reason = sim_stopped;
*sigrc = cpu.exception; *sigrc = cpu.exception;
return sim_stopped; return 0;
} }
int
sim_set_pc (n) sim_set_pc (n)
SIM_ADDR n;
{ {
cpu.pc = n; cpu.pc = n;
return 0;
} }
@ -1654,8 +1659,9 @@ sim_csize (n)
void int
sim_info (verbose) sim_info (printf_fn, verbose)
void (*printf_fn)();
int verbose; int verbose;
{ {
@ -1684,6 +1690,8 @@ sim_info (verbose)
} }
} }
#endif #endif
return 0;
} }
void void
@ -1692,19 +1700,21 @@ set_h8300h ()
h8300hmode = 1; h8300hmode = 1;
} }
void int
sim_kill() sim_kill()
{ {
return 0;
} }
sim_open () sim_open (name)
char *name;
{ {
return 0; return 0;
} }
sim_set_args(argv, env) sim_set_args(argv, env)
char **argv; char **argv;
char **env; char **env;
{ {
return 0; return 0;
} }

View File

@ -18,6 +18,7 @@
*/ */
#include <stdio.h>
#include "bfd.h" #include "bfd.h"
#include "sysdep.h" #include "sysdep.h"
@ -72,10 +73,10 @@ main (ac, av)
} }
start_address = bfd_get_start_address(abfd); start_address = bfd_get_start_address(abfd);
sim_store_register(9,start_address); sim_set_pc (start_address);
sim_resume(0,0); sim_resume(0,0);
if (verbose) if (verbose)
sim_info (verbose); sim_info (printf, verbose - 1);
return 0; return 0;
} }
} }