diff options
Diffstat (limited to 'sim/h8300')
-rw-r--r-- | sim/h8300/ChangeLog | 16 | ||||
-rw-r--r-- | sim/h8300/compile.c | 46 |
2 files changed, 38 insertions, 24 deletions
diff --git a/sim/h8300/ChangeLog b/sim/h8300/ChangeLog index fc6b424..73ba2e3 100644 --- a/sim/h8300/ChangeLog +++ b/sim/h8300/ChangeLog @@ -1,5 +1,21 @@ +Mon Aug 25 17:50:22 1997 Andrew Cagney <cagney@b1.cygnus.com> + + * configure: Regenerated to track ../common/aclocal.m4 changes. + * config.in: Ditto. + +Mon Aug 25 15:47:41 1997 Andrew Cagney <cagney@b1.cygnus.com> + + * compile.c (sim_open): Add ABFD argument. + +Tue May 20 10:16:48 1997 Andrew Cagney <cagney@b1.cygnus.com> + + * compile.c (sim_open): Add callback argument. + (sim_set_callbacks): Delete SIM_DESC argument. + Wed Apr 30 10:22:29 1997 Doug Evans <dje@canuck.cygnus.com> + * compile.c (sim_load): Call bfd_get_mach instead of examining + bfd fields directly. * tconfig.in (SIM_PRE_LOAD): Delete, no longer used. Thu Apr 24 00:39:51 1997 Doug Evans <dje@canuck.cygnus.com> diff --git a/sim/h8300/compile.c b/sim/h8300/compile.c index 4973ed7..b498968 100644 --- a/sim/h8300/compile.c +++ b/sim/h8300/compile.c @@ -916,6 +916,15 @@ case O(name, SB): \ if(s) store (&code->dst,ea); goto next; \ } +int +sim_stop (sd) + SIM_DESC sd; +{ + cpu.state = SIM_STATE_STOPPED; + cpu.exception = SIGINT; + return 1; +} + void sim_resume (sd, step, siggnal) SIM_DESC sd; @@ -1705,29 +1714,13 @@ sim_resume (sd, step, siggnal) ; /* if (cpu.regs[8] ) abort(); */ -#if defined (WIN32) - /* Poll after every 100th insn, */ if (poll_count++ > 100) { poll_count = 0; - if (win32pollquit()) - { - control_c(); - } + if ((*sim_callback->poll_quit) != NULL + && (*sim_callback->poll_quit) (sim_callback)) + sim_stop (sd); } -#endif -#if defined(__GO32__) - /* Poll after every 100th insn, */ - if (poll_count++ > 100) - { - poll_count = 0; - if (kbhit ()) - { - int c = getkey (); - control_c (); - } - } -#endif } while (cpu.state == SIM_STATE_RUNNING); @@ -2027,12 +2020,15 @@ sim_kill (sd) } SIM_DESC -sim_open (kind,argv) +sim_open (kind, ptr, abfd, argv) SIM_OPEN_KIND kind; + struct host_callback_struct *ptr; + struct _bfd *abfd; char **argv; { sim_kind = kind; myname = argv[0]; + sim_callback = ptr; /* fudge our descriptor */ return (SIM_DESC) 1; } @@ -2065,10 +2061,13 @@ sim_load (sd, prog, abfd, from_tty) prog_bfd = bfd_openr (prog, "coff-h8300"); if (prog_bfd != NULL) { + /* Set the cpu type. We ignore failure from bfd_check_format + and bfd_openr as sim_load_file checks too. */ if (bfd_check_format (prog_bfd, bfd_object)) { - set_h8300h (prog_bfd->arch_info->mach == bfd_mach_h8300h - || prog_bfd->arch_info->mach == bfd_mach_h8300s); + unsigned long mach = bfd_get_mach (prog_bfd); + set_h8300h (mach == bfd_mach_h8300h + || mach == bfd_mach_h8300s); } } @@ -2143,8 +2142,7 @@ sim_do_command (sd, cmd) } void -sim_set_callbacks (sd, ptr) - SIM_DESC sd; +sim_set_callbacks (ptr) struct host_callback_struct *ptr; { sim_callback = ptr; |