aboutsummaryrefslogtreecommitdiff
path: root/libjava/include
diff options
context:
space:
mode:
authorKeith Seitz <keiths@redhat.com>2007-06-15 03:53:52 +0000
committerKeith Seitz <kseitz@gcc.gnu.org>2007-06-15 03:53:52 +0000
commit7dace0ca518e0561b71691938e5402acf58f641c (patch)
tree16c0ed1aafda743e1a3cf2417a076930ebfb39d5 /libjava/include
parente89993b3f2085c19cda293fc0476ba2c7da3107d (diff)
downloadgcc-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.h22
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;
};