Package | Description |
---|---|
gnu.bytecode |
Contains classes to generate, read,
write, and print Java bytecode in the form of
.class files. |
gnu.expr |
Supports
Expression ,
and various related classes need to compile programming languages. |
Modifier and Type | Method and Description |
---|---|
Label |
CodeAttr.emitIfRaw()
Start a new if/then/else block.
|
Label |
ExitableBlock.exitIsGoto()
If an exit is simple, return the label for block end.
|
Label |
Scope.getEndLabel() |
Label |
CodeAttr.getLabel()
Get a new Label for the current location.
|
Label |
Scope.getStartLabel() |
Modifier and Type | Method and Description |
---|---|
boolean |
SwitchState.addCaseGoto(int value,
CodeAttr code,
Label label)
Optimization of
addCase(value, code); emitGoto(label) . |
void |
CodeAttr.addHandler(Label start_try,
Label end_try,
ClassType catch_type)
Add an exception handler.
|
int |
CodeAttr.beginFragment(Label after) |
int |
CodeAttr.beginFragment(Label start,
Label after) |
void |
CodeAttr.emitGoto(Label label)
Compile an unconditional branch (goto).
|
void |
CodeAttr.emitGotoIfCompare1(Label label,
int opcode) |
void |
CodeAttr.emitGotoIfCompare2(Label label,
int logop) |
void |
CodeAttr.emitGotoIfEq(Label label)
Compile a conditional transfer if 2 top stack elements are equal.
|
void |
CodeAttr.emitGotoIfEq(Label label,
boolean invert)
Deprecated.
|
void |
CodeAttr.emitGotoIfGe(Label label) |
void |
CodeAttr.emitGotoIfGt(Label label) |
void |
CodeAttr.emitGotoIfIntEqZero(Label label) |
void |
CodeAttr.emitGotoIfIntGeZero(Label label) |
void |
CodeAttr.emitGotoIfIntGtZero(Label label) |
void |
CodeAttr.emitGotoIfIntLeZero(Label label) |
void |
CodeAttr.emitGotoIfIntLtZero(Label label) |
void |
CodeAttr.emitGotoIfIntNeZero(Label label) |
void |
CodeAttr.emitGotoIfLe(Label label) |
void |
CodeAttr.emitGotoIfLt(Label label) |
void |
CodeAttr.emitGotoIfNE(Label label)
Compile conditional transfer if 2 top stack elements are not equal.
|
void |
CodeAttr.emitGotoIfNonNull(Label label) |
void |
CodeAttr.emitGotoIfNull(Label label) |
void |
CodeAttr.emitJsr(Label label) |
void |
StackMapTableAttr.emitStackMapEntry(Label label,
CodeAttr code)
Emit type state for the given Label.
|
void |
CodeAttr.emitTailCall(boolean pop_args,
Label start)
Compile a tail-call to position 0 of the current procedure.
|
void |
CodeAttr.fixupAdd(int kind,
Label label)
Add a fixup at this location.
|
void |
CodeAttr.fixupChain(Label here,
Label target)
This causes a later processFixup to rearrange the code.
|
boolean |
SwitchState.insertCase(int value,
Label label,
CodeAttr code)
Internal routine to add a new case.
|
void |
Label.setTypes(Label other) |
void |
CodeAttr.setTypes(Label label)
Set the current type state from a label.
|
Constructor and Description |
---|
IfState(CodeAttr code,
Label endLabel) |
Scope(Label start,
Label end) |
Modifier and Type | Field and Description |
---|---|
Label |
ConditionalTarget.ifFalse |
Label |
ConditionalTarget.ifTrue |
Constructor and Description |
---|
ConditionalTarget(Label ifTrue,
Label ifFalse,
Language language) |