diff options
| author | kseitz <kseitz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-06-15 03:53:52 +0000 |
|---|---|---|
| committer | kseitz <kseitz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-06-15 03:53:52 +0000 |
| commit | 0d2ab943d54d7dc16653dbb644f693d6a60c57df (patch) | |
| tree | 16c0ed1aafda743e1a3cf2417a076930ebfb39d5 /libjava/include | |
| parent | f2ecdfebadebbe9520cbff3325976839b1db3500 (diff) | |
| download | ppe42-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.h | 22 |
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; }; |

