summaryrefslogtreecommitdiffstats
path: root/libjava/include
diff options
context:
space:
mode:
authorkseitz <kseitz@138bc75d-0d04-0410-961f-82ee72b054a4>2007-06-15 03:53:52 +0000
committerkseitz <kseitz@138bc75d-0d04-0410-961f-82ee72b054a4>2007-06-15 03:53:52 +0000
commit0d2ab943d54d7dc16653dbb644f693d6a60c57df (patch)
tree16c0ed1aafda743e1a3cf2417a076930ebfb39d5 /libjava/include
parentf2ecdfebadebbe9520cbff3325976839b1db3500 (diff)
downloadppe42-gcc-0d2ab943d54d7dc16653dbb644f693d6a60c57df.tar.gz
ppe42-gcc-0d2ab943d54d7dc16653dbb644f693d6a60c57df.zip
* 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
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 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;
};
OpenPOWER on IntegriCloud