From 8e48985493cd4ce6ce910dc03a6cda69365ef73a Mon Sep 17 00:00:00 2001 From: Keith Seitz Date: Tue, 1 May 2007 02:50:02 +0000 Subject: interpret-run.cc (NEXT_INSN): Advance PC before executing the instruction. * interpret-run.cc (NEXT_INSN)[DEBUG]: Advance PC before executing the instruction. * include/java-interp.h (_Jv_InterpFrame::get_pc): Subtract one insn from the frame's PC. _Jv_InterpMethod::run et al will advance the PC before executing the instruction. From-SVN: r124313 --- libjava/ChangeLog | 8 ++++++++ libjava/include/java-interp.h | 2 +- libjava/interpret-run.cc | 5 +++-- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/libjava/ChangeLog b/libjava/ChangeLog index a66338c..c8c9aa5 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,11 @@ +2007-04-30 Keith Seitz + + * interpret-run.cc (NEXT_INSN)[DEBUG]: Advance PC before + executing the instruction. + * include/java-interp.h (_Jv_InterpFrame::get_pc): Subtract + one insn from the frame's PC. _Jv_InterpMethod::run et al + will advance the PC before executing the instruction. + 2007-04-27 Keith Seitz * classpath/lib/gnu/classpath/jdwp/Jdwp.class: Regenerated. diff --git a/libjava/include/java-interp.h b/libjava/include/java-interp.h index 8da0584..4bded04 100644 --- a/libjava/include/java-interp.h +++ b/libjava/include/java-interp.h @@ -465,7 +465,7 @@ public: else pc = *pc_ptr; - return pc; + return pc - 1; } }; diff --git a/libjava/interpret-run.cc b/libjava/interpret-run.cc index f99ff5c..f951981 100644 --- a/libjava/interpret-run.cc +++ b/libjava/interpret-run.cc @@ -348,15 +348,16 @@ details. */ #define NEXT_INSN \ do \ { \ + pc_t insn = pc++; \ if (JVMTI_REQUESTED_EVENT (SingleStep)) \ { \ JNIEnv *env = _Jv_GetCurrentJNIEnv (); \ jmethodID method = meth->self; \ - jlocation loc = meth->insn_index (pc); \ + jlocation loc = meth->insn_index (insn); \ _Jv_JVMTI_PostEvent (JVMTI_EVENT_SINGLE_STEP, thread, \ env, method, loc); \ } \ - goto *((pc++)->insn); \ + goto *(insn->insn); \ } \ while (0) -- cgit v1.1