From eca43eb1f57a1c26f64df0dc8f135203d4f7b345 Mon Sep 17 00:00:00 2001 From: Martin Hunt Date: Mon, 21 Oct 1996 23:17:43 +0000 Subject: [PATCH] Mon Oct 21 16:16:26 1996 Martin M. Hunt * interp.c (sim_resume): Change the way single-stepping and exceptions are handled so single-stepping works again. --- sim/d10v/ChangeLog | 5 +++++ sim/d10v/interp.c | 11 +++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/sim/d10v/ChangeLog b/sim/d10v/ChangeLog index 95b2690c06..9f1b4ac281 100644 --- a/sim/d10v/ChangeLog +++ b/sim/d10v/ChangeLog @@ -1,3 +1,8 @@ +Mon Oct 21 16:16:26 1996 Martin M. Hunt + + * interp.c (sim_resume): Change the way single-stepping and exceptions + are handled so single-stepping works again. + Thu Oct 17 12:24:16 1996 Michael Meissner * endian.c: Optimize simulated loads/stores on x86, AIX, and big diff --git a/sim/d10v/interp.c b/sim/d10v/interp.c index d06b86bb84..21d48112c5 100644 --- a/sim/d10v/interp.c +++ b/sim/d10v/interp.c @@ -317,11 +317,7 @@ sim_resume (step, siggnal) /* (*d10v_callback->printf_filtered) (d10v_callback, "sim_resume (%d,%d) PC=0x%x\n",step,siggnal,PC); */ - if (step) - State.exception = SIGTRAP; - else - State.exception = 0; - + State.exception = 0; do { uint32 byte_pc = ((uint32)PC) << 2; @@ -369,7 +365,10 @@ sim_resume (step, siggnal) PC++; } } - while (!State.exception); + while ( !State.exception && !step); + + if (step && !State.exception) + State.exception = SIGTRAP; } int -- 2.34.1