diff options
author | Keith Seitz <keiths@redhat.com> | 2007-06-15 03:53:52 +0000 |
---|---|---|
committer | Keith Seitz <kseitz@gcc.gnu.org> | 2007-06-15 03:53:52 +0000 |
commit | 7dace0ca518e0561b71691938e5402acf58f641c (patch) | |
tree | 16c0ed1aafda743e1a3cf2417a076930ebfb39d5 /libjava/include | |
parent | e89993b3f2085c19cda293fc0476ba2c7da3107d (diff) | |
download | gcc-7dace0ca518e0561b71691938e5402acf58f641c.zip gcc-7dace0ca518e0561b71691938e5402acf58f641c.tar.gz gcc-7dace0ca518e0561b71691938e5402acf58f641c.tar.bz2 |
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
Diffstat (limited to 'libjava/include')
-rw-r--r-- | libjava/include/java-interp.h | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/libjava/include/java-interp.h b/libjava/include/java-interp.h index 204a49f..f0b77f9 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; }; |