From 957ad449a65ba4b5bd771e22629fa94e6ffbe7a1 Mon Sep 17 00:00:00 2001 From: kseitz Date: Sat, 14 Oct 2006 20:11:12 +0000 Subject: * include/java-insns.h (enum java_code): Add op_breakpoint. * include/java-interp.h (_Jv_InterpMethod): Declare breakpoint_insn. [INTERPRETER]: Declare _Jv_InterpMethod::bp_insn_slot. [!INTERPRETER]: Declare _Jv_InterpMethod::bp_insn_opcode. (install_break): Declare. * interpret.cc (breakpoint_insn): Define breakpoint insn. (compile): Add op_breakpoint to "can't happen" cases. [INTERPRETER] Initialize breakpoint insn if necessary. (install_break): New method. * interpret-run.cc: Add op_breakpoint to insn_targets. Add insn_breakpoint label. * verify.cc (branch_prepass): Add op_breakpoint to unrecognized opcodes section of switch statement. (verify_instructions_0): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117734 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/include/java-interp.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'libjava/include/java-interp.h') diff --git a/libjava/include/java-interp.h b/libjava/include/java-interp.h index 276a887be34..74846c9f6b2 100644 --- a/libjava/include/java-interp.h +++ b/libjava/include/java-interp.h @@ -133,6 +133,14 @@ struct _Jv_LineTableEntry class _Jv_InterpMethod : public _Jv_MethodBase { + // Breakpoint instruction + static pc_t breakpoint_insn; +#ifdef DIRECT_THREADED + static insn_slot bp_insn_slot; +#else + static unsigned char bp_insn_opcode; +#endif + _Jv_ushort max_stack; _Jv_ushort max_locals; int code_length; @@ -206,6 +214,10 @@ class _Jv_InterpMethod : public _Jv_MethodBase void get_line_table (jlong& start, jlong& end, jintArray& line_numbers, jlongArray& code_indices); + /* Installs a break instruction at the given code index. Returns + the pc_t of the breakpoint or NULL if index is invalid. */ + pc_t install_break (jlong index); + // Gets the instruction at the given index pc_t get_insn (jlong index); -- cgit v1.2.3