From 0d2ab943d54d7dc16653dbb644f693d6a60c57df Mon Sep 17 00:00:00 2001 From: kseitz Date: Fri, 15 Jun 2007 03:53:52 +0000 Subject: * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@125734 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/include/java-interp.h | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'libjava/include') diff --git a/libjava/include/java-interp.h b/libjava/include/java-interp.h index 204a49fb794..f0b77f97b35 100644 --- a/libjava/include/java-interp.h +++ b/libjava/include/java-interp.h @@ -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; }; -- cgit v1.2.3