| java.lang.Object gnu.bytecode.Label gnu.bytecode.CodeFragment
CodeFragment | public class CodeFragment extends Label (Code) | | A sequence of bytecode instructions belonging to a method's Code attribute.
This provides a hook for re-arranging instruction sequences.
It currently has limited functionality - no switch instructions,
no non-relative jumps, etc.
In the future this may be the basis for generating better code (e.g.
avoiding needless jumps). Look at gcc/java/jcf-write.c for ideas.
CodeFragment extends Label because it can be viewed as a label with
some code following it.
|
Field Summary | |
int | handlerIndex If handlerIndex >= 0, it is the index in the exception_table
for which this fragment is the handler. | byte[] | insns | int | length Length of code fragments (in instruction bytes), after genetaing code. | short[] | linenumbers Pairs of (relative PC, linenumber). | CodeFragment | next | boolean | unreachable_save Used to save value of unreachable_here from the CodeAttr. |
handlerIndex | int handlerIndex(Code) | | If handlerIndex >= 0, it is the index in the exception_table
for which this fragment is the handler.
|
length | int length(Code) | | Length of code fragments (in instruction bytes), after genetaing code.
(While generating code for this fragment, length is the start PC.)
|
linenumbers | short[] linenumbers(Code) | | Pairs of (relative PC, linenumber).
|
unreachable_save | boolean unreachable_save(Code) | | Used to save value of unreachable_here from the CodeAttr.
|
|
|