diff options
author | kseitz <kseitz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-05-01 02:50:02 +0000 |
---|---|---|
committer | kseitz <kseitz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-05-01 02:50:02 +0000 |
commit | 80934e558cb2f162bb8017d715173cf588679161 (patch) | |
tree | e543ef00b8fa24ac5e6abb57bd1297c25a7db7d0 /libjava | |
parent | 4537ba413e59a0154592b08d13d4a5ff2e62fb17 (diff) | |
download | gcc-80934e558cb2f162bb8017d715173cf588679161.tar.gz |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@124313 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava')
-rw-r--r-- | libjava/ChangeLog | 8 | ||||
-rw-r--r-- | libjava/include/java-interp.h | 2 | ||||
-rw-r--r-- | libjava/interpret-run.cc | 5 |
3 files changed, 12 insertions, 3 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index a66338cd4a4..c8c9aa54dc3 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,11 @@ +2007-04-30 Keith Seitz <keiths@redhat.com> + + * 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 <keiths@redhat.com> * classpath/lib/gnu/classpath/jdwp/Jdwp.class: Regenerated. diff --git a/libjava/include/java-interp.h b/libjava/include/java-interp.h index 8da0584af8e..4bded047bb3 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 f99ff5c706f..f95198186e7 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) |