java-interp.h (_Jv_InterpMethod::get_insn): Declare.
* include/java-interp.h (_Jv_InterpMethod::get_insn): Declare. (_Jv_InterpMethod::set_insn): Declare. * interpret.cc (_Jv_InterpMethod::get_insn): New method. (_Jv_InterpMethod::get_insn): New method. From-SVN: r117614
This commit is contained in:
parent
4e34ede292
commit
05ee9ca08f
@ -1,3 +1,10 @@
|
||||
2006-10-10 Keith Seitz <keiths@redhat.com>
|
||||
|
||||
* include/java-interp.h (_Jv_InterpMethod::get_insn): Declare.
|
||||
(_Jv_InterpMethod::set_insn): Declare.
|
||||
* interpret.cc (_Jv_InterpMethod::get_insn): New method.
|
||||
(_Jv_InterpMethod::get_insn): New method.
|
||||
|
||||
2006-10-10 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* prims.cc (_Jv_PrependVersionedLibdir): Use
|
||||
|
@ -206,6 +206,13 @@ class _Jv_InterpMethod : public _Jv_MethodBase
|
||||
void get_line_table (jlong& start, jlong& end, jintArray& line_numbers,
|
||||
jlongArray& code_indices);
|
||||
|
||||
// Gets the instruction at the given index
|
||||
pc_t get_insn (jlong index);
|
||||
|
||||
/* Writes the given instruction at the given code index. Returns
|
||||
the insn or NULL if index is invalid. */
|
||||
pc_t set_insn (jlong index, pc_t insn);
|
||||
|
||||
#ifdef DIRECT_THREADED
|
||||
friend void _Jv_CompileMethod (_Jv_InterpMethod*);
|
||||
#endif
|
||||
|
@ -1384,6 +1384,46 @@ _Jv_InterpMethod::get_line_table (jlong& start, jlong& end,
|
||||
#endif // !DIRECT_THREADED
|
||||
}
|
||||
|
||||
pc_t
|
||||
_Jv_InterpMethod::get_insn (jlong index)
|
||||
{
|
||||
pc_t code;
|
||||
|
||||
#ifdef DIRECT_THREADED
|
||||
if (index >= number_insn_slots || index < 0)
|
||||
return NULL;
|
||||
|
||||
code = prepared;
|
||||
#else // !DIRECT_THREADED
|
||||
if (index >= code_length || index < 0)
|
||||
return NULL;
|
||||
|
||||
code = reinterpret_cast<pc_t> (bytecode ());
|
||||
#endif // !DIRECT_THREADED
|
||||
|
||||
return &code[index];
|
||||
}
|
||||
|
||||
pc_t
|
||||
_Jv_InterpMethod::set_insn (jlong index, pc_t insn)
|
||||
{
|
||||
#ifdef DIRECT_THREADED
|
||||
if (index >= number_insn_slots || index < 0)
|
||||
return NULL;
|
||||
|
||||
pc_t code = prepared;
|
||||
code[index].insn = insn->insn;
|
||||
#else // !DIRECT_THREADED
|
||||
if (index >= code_length || index < 0)
|
||||
return NULL;
|
||||
|
||||
pc_t code = reinterpret_cast<pc_t> (bytecode ());
|
||||
code[index] = *insn;
|
||||
#endif // !DIRECT_THREADED
|
||||
|
||||
return &code[index];
|
||||
}
|
||||
|
||||
void *
|
||||
_Jv_JNIMethod::ncode ()
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user