java-interp.h (_Jv_LocalVarTableEntry): Add union for bytecode_pc and direct-threaded pc.

* include/java-interp.h (_Jv_LocalVarTableEntry): Add union
        for bytecode_pc and direct-threaded pc.
        Add field descriptions inline.
        * defineclass.cc (read_one_code_attribute): Change from
        bytecode_start_pc to bytecode_pc.
        Remove unused variable "len".
        * interpret.cc (compile): Remap the variable table, too.
        (get_local_var_table) [DIRECT_THREADED]: Use insn_index on the
        start location to map from pc_t to code index.

From-SVN: r125734
This commit is contained in:
Keith Seitz 2007-06-15 03:53:52 +00:00 committed by Keith Seitz
parent e89993b3f2
commit 7dace0ca51
4 changed files with 56 additions and 13 deletions

View file

@ -138,17 +138,27 @@ struct _Jv_LineTableEntry
};
// This structure holds local variable information.
// The pc value is the first pc where the variable must have a value and it
// must continue to have a value until (start_pc + length).
// The name is the variable name, and the descriptor contains type information.
// The slot is the index in the local variable array of this method, long and
// double occupy slot and slot+1.
// Like _Jv_LineTableEntry above, it is remapped when the method is
// compiled for direct threading.
struct _Jv_LocalVarTableEntry
{
int bytecode_start_pc;
// First PC value at which variable is live
union
{
pc_t pc;
int bytecode_pc;
};
// length of visibility of variable
int length;
// variable name
char *name;
// type description
char *descriptor;
// stack slot number (long and double occupy slot and slot + 1)
int slot;
};