diff options
author | Frank Ch. Eigler <fche@redhat.com> | 1998-12-30 21:16:14 +0000 |
---|---|---|
committer | Frank Ch. Eigler <fche@redhat.com> | 1998-12-30 21:16:14 +0000 |
commit | 08f758df94ff4fb77af76e821bd144959dd3cc49 (patch) | |
tree | ef761c49969966bcb7b040c7cedfb2ca4f1cae68 /sim/mips | |
parent | bd164e283521804221550fbefe9080904d79aaf3 (diff) | |
download | binutils-08f758df94ff4fb77af76e821bd144959dd3cc49.zip binutils-08f758df94ff4fb77af76e821bd144959dd3cc49.tar.gz binutils-08f758df94ff4fb77af76e821bd144959dd3cc49.tar.bz2 |
* resolution of eCos-vs.-sky merge conflict!
[ChangeLog]
1998-12-30 Frank Ch. Eigler <fche@cygnus.com>
* mips.igen (BREAK): Call signal_exception instead of sim_engine_halt.
start-sanitize-sky
* interp.c (signal_exception): Call SIM_CPU_EXCEPTION_TRIGGER hook.
Call sim_engine_halt on BreakPoint.
end-sanitize-sky
[ChangeLog.sky]
1998-12-30 Frank Ch. Eigler <fche@cygnus.com>
* sky-gdb.c (sky_sim_engine_halt): Do not set CIA here.
Diffstat (limited to 'sim/mips')
-rw-r--r-- | sim/mips/ChangeLog | 8 | ||||
-rw-r--r-- | sim/mips/interp.c | 10 |
2 files changed, 17 insertions, 1 deletions
diff --git a/sim/mips/ChangeLog b/sim/mips/ChangeLog index 465f42c..c70e6f6 100644 --- a/sim/mips/ChangeLog +++ b/sim/mips/ChangeLog @@ -1,3 +1,11 @@ +1998-12-30 Frank Ch. Eigler <fche@cygnus.com> + + * mips.igen (BREAK): Call signal_exception instead of sim_engine_halt. +start-sanitize-sky + * interp.c (signal_exception): Call SIM_CPU_EXCEPTION_TRIGGER hook. + Call sim_engine_halt on BreakPoint. +end-sanitize-sky + Tue Dec 29 16:03:53 1998 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> * configure.in, configure (mips64vr5*-*-*): Added missing ;; in diff --git a/sim/mips/interp.c b/sim/mips/interp.c index 4a666d3..811307f 100644 --- a/sim/mips/interp.c +++ b/sim/mips/interp.c @@ -1941,6 +1941,11 @@ signal_exception (SIM_DESC sd, /* Ensure that any active atomic read/modify/write operation will fail: */ LLBIT = 0; + /* Save registers before interrupt dispatching */ +#ifdef SIM_CPU_EXCEPTION_TRIGGER + SIM_CPU_EXCEPTION_TRIGGER(sd, cpu, cia); +#endif + /* First, handle any simulator specific magic exceptions. These are not "real" exceptions, but are exceptions which the simulator uses to implement different features. */ @@ -2144,10 +2149,13 @@ signal_exception (SIM_DESC sd, sim_stopped, SIM_SIGFPE); break; + case BreakPoint: + sim_engine_halt (SD, CPU, NULL, PC, sim_stopped, SIM_SIGTRAP); + break; + case TLBModification: case TLBLoad: case TLBStore: - case BreakPoint: case SystemCall: case Trap: sim_engine_restart (SD, CPU, NULL, PC); |