Class Assembler
- java.lang.Object
-
- org.vesalainen.bcc.Assembler
-
- All Implemented Interfaces:
OpCode
- Direct Known Subclasses:
DoubleASM,FloatASM,IntASM,LongASM,MethodCompiler,ReferenceASM,VoidASM
public class Assembler extends java.lang.Object implements OpCode
-
-
Field Summary
Fields Modifier and Type Field Description private ReferenceASMaprotected TypeASMasmprotected java.util.Deque<TypeASM>asmStackprivate ByteASMbprivate CharASMcprivate DoubleASMdprivate FloatASMfprivate IntASMiprivate LongASMlprotected java.util.Map<java.lang.Integer,Label>labelMapprotected java.util.Map<java.lang.String,Label>labelsprivate intnextBranchprivate booleanoptimizeGotoprotected CodeDataOutputoutprivate ShortASMsstatic intT_BOOLEANstatic intT_BYTEstatic intT_CHARstatic intT_DOUBLEstatic intT_FLOATstatic intT_INTstatic intT_LONGstatic intT_SHORTprotected java.util.Map<javax.lang.model.type.TypeKind,TypeASM>typesprivate VoidASMvprotected static intWIDEFIXOFFSETprotected booleanwideIndexprivate BooleanASMz-
Fields inherited from interface org.vesalainen.bcc.OpCode
AALOAD, AASTORE, ACONST_NULL, ALOAD, ALOAD_0, ALOAD_1, ALOAD_2, ALOAD_3, ANEWARRAY, ARETURN, ARRAYLENGTH, ASTORE, ASTORE_0, ASTORE_1, ASTORE_2, ASTORE_3, ATHROW, BALOAD, BASTORE, BIPUSH, BREAKPOINT, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DLOAD_0, DLOAD_1, DLOAD_2, DLOAD_3, DMUL, DNEG, DRETURN, DSTORE, DSTORE_0, DSTORE_1, DSTORE_2, DSTORE_3, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAD_0, FLOAD_1, FLOAD_2, FLOAD_3, FMUL, FNEG, FREM, FRETURN, FSTORE, FSTORE_0, FSTORE_1, FSTORE_2, FSTORE_3, FSUB, GETFIELD, GETSTATIC, GOTO, GOTO_W, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, ILOAD_0, ILOAD_1, ILOAD_2, ILOAD_3, IMPDEP1, IMPDEP2, IMUL, INEG, INSTANCEOF, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISTORE_0, ISTORE_1, ISTORE_2, ISTORE_3, ISUB, IUSHR, IXOR, JSR, JSR_W, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDC_W, LDC2_W, LDIV, LLOAD, LLOAD_0, LLOAD_1, LLOAD_2, LLOAD_3, LMUL, LNEG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSTORE_0, LSTORE_1, LSTORE_2, LSTORE_3, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, NOT_IF_ACMPEQ, NOT_IF_ACMPNE, NOT_IF_ICMPEQ, NOT_IF_ICMPGE, NOT_IF_ICMPGT, NOT_IF_ICMPLE, NOT_IF_ICMPLT, NOT_IF_ICMPNE, NOT_IFEQ, NOT_IFGE, NOT_IFGT, NOT_IFLE, NOT_IFLT, NOT_IFNE, NOT_IFNONNULL, NOT_IFNULL, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SWAP, TABLESWITCH, WIDE
-
-
Constructor Summary
Constructors Modifier Constructor Description Assembler()protectedAssembler(CodeDataOutput out, java.util.Map<java.lang.String,Label> labels)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaaload()Load Object from arrayvoidaastore()Store into Object arrayvoidaconst_null()voidaload(int index)Load Object from local variablevoidanew(int index)voidanewarray(int count)voidarraylength()voidastore(int index)Store Object into local variablevoidathrow()voidbaload()Load byte from arrayvoidbastore()Store into byte arrayvoidbipush(byte value)Push byte constantvoidcaload()Load char from arrayvoidcastore()Store into char arrayvoidcheckcast(int objectref)voidconvert(javax.lang.model.type.TypeMirror from, javax.lang.model.type.TypeMirror to)java.lang.StringcreateBranch()Return a unique branch nameLabel.BranchcreateBranch(java.lang.String name)Creates a branch for possibly unknown addressvoidd2f()Convert double to floatvoidd2i()Convert double to intvoidd2l()Convert double to longvoidd2t()voiddadd()Add doublevoiddaload()Load double from arrayvoiddastore()Store into double arrayvoiddconst(int value)Push double constantvoidddiv()Divide doublevoiddload(int index)Load double from local variablevoiddmul()Multiply doublevoiddneg()Negate doublevoiddstore(int index)Store double into local variablevoiddsub()Subtract doublevoiddup()Duplicate the top operand stack valuevoiddup_x1()Duplicate the top operand stack value and insert two values downvoiddup_x2()Duplicate the top operand stack value and insert two or three values downvoiddup2()Duplicate the top one or two operand stack valuesvoiddup2_x1()Duplicate the top one or two operand stack values and insert two or three values downvoiddup2_x2()Duplicate the top one or two operand stack values and insert two, three, or four values downvoidendBlock(Block block)voidf2d()Convert float to doublevoidf2i()Convert float to intvoidf2l()Convert float to longvoidf2t()voidfadd()Add floatvoidfaload()Load float from arrayvoidfastore()Store into float arrayvoidfconst(int value)Push float constantvoidfdiv()Divide floatvoidfixAddress(java.lang.String name)Fixes address here for objectvoidfixLabels(byte[] code)voidfload(int index)Load float from local variablevoidfmul()Multiply floatvoidfneg()Negate floatvoidfrem()Remainder floatvoidfstore(int index)Store float into local variablevoidfsub()Subtract floatbyte[]getCode()voidgetfield(int index)LabelgetLabel(java.lang.String name)voidgetstatic(int index)voidgoto_n(java.lang.String target)Branch alwaysvoidgoto_w(java.lang.String target)voidi2b()Convert int to bytevoidi2c()voidi2d()Convert int to doublevoidi2f()Convert int to floatvoidi2l()Convert int to longvoidi2s()Convert int to shortvoidi2t()voidiadd()Add intvoidiaload()Load int from arrayvoidiand()Boolean AND intvoidiastore()Store into int arrayvoidiconst(int value)Push int constantvoididiv()Divide intvoidif_icmpeq(java.lang.String target)Branch if value1 = value2voidif_icmpge(java.lang.String target)Branch if value1 >= value2voidif_icmpgt(java.lang.String target)Branch if value1 > value2voidif_icmple(java.lang.String target)Branch if value1 <= value2voidif_icmplt(java.lang.String target)Branch if value1 < value2voidif_icmpne(java.lang.String target)Branch if value1 != value2private voidif_tcmpeq(java.lang.String target)voidif_tcmpeq(javax.lang.model.type.TypeMirror type, java.lang.String target)eq succeeds if and only if value1 == value2private voidif_tcmpge(java.lang.String target)voidif_tcmpge(javax.lang.model.type.TypeMirror type, java.lang.String target)ge succeeds if and only if value1 >= value2private voidif_tcmpgt(java.lang.String target)voidif_tcmpgt(javax.lang.model.type.TypeMirror type, java.lang.String target)gt succeeds if and only if value1 > value2private voidif_tcmple(java.lang.String target)voidif_tcmple(javax.lang.model.type.TypeMirror type, java.lang.String target)le succeeds if and only if value1 <= value2private voidif_tcmplt(java.lang.String target)voidif_tcmplt(javax.lang.model.type.TypeMirror type, java.lang.String target)lt succeeds if and only if value1 < value2private voidif_tcmpne(java.lang.String target)voidif_tcmpne(javax.lang.model.type.TypeMirror type, java.lang.String target)ne succeeds if and only if value1 != value2voidifeq(java.lang.String target)eq succeeds if and only if value == 0voidifge(java.lang.String target)ge succeeds if and only if value >= 0voidifgt(java.lang.String target)gt succeeds if and only if value > 0voidifle(java.lang.String target)le succeeds if and only if value <= 0voidiflt(java.lang.String target)lt succeeds if and only if value < 0voidifne(java.lang.String target)ne succeeds if and only if value != 0voidifnonnull(java.lang.String target)voidifnull(java.lang.String target)voidiinc(int index, int con)Increment local variable by constantvoidiload(int index)Load int from local variablevoidimul()Multiply intvoidinstanceo(int index)voidinvokeinterface(int index, int count)voidinvokespecial(int index)voidinvokestatic(int index)voidinvokevirtual(int index)voidior()voidirem()voidireturn()voidishl()voidishr()booleanisReferenced(java.lang.String target)voidistore(int index)voidisub()voidiushr()voidixor()voidjsr(java.lang.String target)voidjsr_w(java.lang.String target)voidl2d()Convert long to doublevoidl2f()Convert long to floatvoidl2i()Convert long to intvoidl2t()LabellabelForAddress(int address)voidladd()Add longvoidlaload()Load long from arrayvoidland()Boolean AND longvoidlastore()Store into long arrayvoidlconst(int value)Push long constantvoidldc(int index)voidldc_w(int index)voidldc2_w(int index)voidldiv()Divide longvoidlload(int index)Load long from local variablevoidlmul()Multiply longvoidlneg()Negate longvoidlookupswitch(java.lang.String def, LookupList list)voidlor()Boolean OR longvoidlrem()Remainder longvoidlshl()Shift left longvoidlshr()Arithmetic shift right longvoidlstore(int index)Store long into local variablevoidlsub()Subtract longvoidlushr()Logical shift right longvoidlxor()Boolean XOR longvoidmonitorenter()voidmonitorexit()voidmultianewarray(int index, int dimensions)voidnewarray(int type)voidnop()private booleanoptimizeGoto(java.lang.String target)Branch always (wide index)voidpop()voidpop2()private voidpopType()intposition()private voidpushType(javax.lang.model.type.TypeMirror type)voidputfield(int index)voidputstatic(int index)voidret(int index)voidsaload()Load short from arrayvoidsastore()Store into short arrayvoidsetWideIndex(boolean wideIndex)Set goto and jsr to use wide indexvoidsipush(short value)Push short constantBlockstartBlock()voidswap()voidtableswitch(java.lang.String def, int low, int high, java.lang.String... symbols)private voidtadd()voidtadd(javax.lang.model.type.TypeMirror type)private voidtaload()Load from arrayvoidtaload(javax.lang.model.type.TypeMirror type)Load from arrayprivate voidtand()voidtand(javax.lang.model.type.TypeMirror type)private voidtastore()Store into arrayvoidtastore(javax.lang.model.type.TypeMirror type)private voidtcmp()voidtcmp(javax.lang.model.type.TypeMirror type)private voidtcmpg()voidtcmpg(javax.lang.model.type.TypeMirror type)voidtcmpl()voidtcmpl(javax.lang.model.type.TypeMirror type)private voidtconst(int i)voidtconst(javax.lang.model.type.TypeMirror type, int i)private voidtconst_null()private voidtdiv()voidtdiv(javax.lang.model.type.TypeMirror type)private voidtinc(int index, int con)voidtinc(javax.lang.model.type.TypeMirror type, int index, int con)private voidtipush(int b)voidtipush(javax.lang.model.type.TypeMirror type, int b)private voidtload(int index)voidtload(javax.lang.model.type.TypeMirror type, int index)private voidtmul()voidtmul(javax.lang.model.type.TypeMirror type)private voidtneg()voidtneg(javax.lang.model.type.TypeMirror type)private voidtor()voidtor(javax.lang.model.type.TypeMirror type)private voidtrem()voidtrem(javax.lang.model.type.TypeMirror type)private voidtreturn()voidtreturn(javax.lang.model.type.TypeMirror type)private voidtshl()voidtshl(javax.lang.model.type.TypeMirror type)private voidtshr()voidtshr(javax.lang.model.type.TypeMirror type)private voidtstore(int index)voidtstore(javax.lang.model.type.TypeMirror type, int index)private voidtsub()voidtsub(javax.lang.model.type.TypeMirror type)private voidtushr()voidtushr(javax.lang.model.type.TypeMirror type)private voidtxor()voidtxor(javax.lang.model.type.TypeMirror type)
-
-
-
Field Detail
-
T_BOOLEAN
public static final int T_BOOLEAN
- See Also:
- Constant Field Values
-
T_CHAR
public static final int T_CHAR
- See Also:
- Constant Field Values
-
T_FLOAT
public static final int T_FLOAT
- See Also:
- Constant Field Values
-
T_DOUBLE
public static final int T_DOUBLE
- See Also:
- Constant Field Values
-
T_BYTE
public static final int T_BYTE
- See Also:
- Constant Field Values
-
T_SHORT
public static final int T_SHORT
- See Also:
- Constant Field Values
-
T_INT
public static final int T_INT
- See Also:
- Constant Field Values
-
T_LONG
public static final int T_LONG
- See Also:
- Constant Field Values
-
WIDEFIXOFFSET
protected static final int WIDEFIXOFFSET
- See Also:
- Constant Field Values
-
out
protected CodeDataOutput out
-
labels
protected java.util.Map<java.lang.String,Label> labels
-
labelMap
protected java.util.Map<java.lang.Integer,Label> labelMap
-
asmStack
protected java.util.Deque<TypeASM> asmStack
-
nextBranch
private int nextBranch
-
asm
protected TypeASM asm
-
types
protected java.util.Map<javax.lang.model.type.TypeKind,TypeASM> types
-
z
private BooleanASM z
-
b
private ByteASM b
-
c
private CharASM c
-
s
private ShortASM s
-
i
private IntASM i
-
l
private LongASM l
-
f
private FloatASM f
-
d
private DoubleASM d
-
v
private VoidASM v
-
a
private ReferenceASM a
-
optimizeGoto
private boolean optimizeGoto
-
wideIndex
protected boolean wideIndex
-
-
Constructor Detail
-
Assembler
public Assembler()
-
Assembler
protected Assembler(CodeDataOutput out, java.util.Map<java.lang.String,Label> labels)
-
-
Method Detail
-
setWideIndex
public void setWideIndex(boolean wideIndex)
Set goto and jsr to use wide index- Parameters:
wideIndex-
-
fixAddress
public void fixAddress(java.lang.String name) throws java.io.IOExceptionFixes address here for object- Parameters:
name-- Throws:
java.io.IOException
-
getLabel
public Label getLabel(java.lang.String name)
-
labelForAddress
public Label labelForAddress(int address)
-
createBranch
public Label.Branch createBranch(java.lang.String name) throws java.io.IOException
Creates a branch for possibly unknown address- Parameters:
name-- Returns:
- Throws:
java.io.IOException
-
isReferenced
public boolean isReferenced(java.lang.String target)
-
getCode
public byte[] getCode()
-
fixLabels
public void fixLabels(byte[] code)
-
position
public int position() throws java.io.IOException- Throws:
java.io.IOException
-
pushType
private void pushType(javax.lang.model.type.TypeMirror type)
- Parameters:
type-
-
popType
private void popType()
-
txor
private void txor() throws java.io.IOException- Throws:
java.io.IOException
-
txor
public void txor(javax.lang.model.type.TypeMirror type) throws java.io.IOException- Throws:
java.io.IOException
-
tushr
private void tushr() throws java.io.IOException- Throws:
java.io.IOException
-
tushr
public void tushr(javax.lang.model.type.TypeMirror type) throws java.io.IOException- Throws:
java.io.IOException
-
tsub
private void tsub() throws java.io.IOException- Throws:
java.io.IOException
-
tsub
public void tsub(javax.lang.model.type.TypeMirror type) throws java.io.IOException- Throws:
java.io.IOException
-
tstore
private void tstore(int index) throws java.io.IOException- Throws:
java.io.IOException
-
tstore
public void tstore(javax.lang.model.type.TypeMirror type, int index) throws java.io.IOException- Throws:
java.io.IOException
-
tshr
private void tshr() throws java.io.IOException- Throws:
java.io.IOException
-
tshr
public void tshr(javax.lang.model.type.TypeMirror type) throws java.io.IOException- Throws:
java.io.IOException
-
tshl
private void tshl() throws java.io.IOException- Throws:
java.io.IOException
-
tshl
public void tshl(javax.lang.model.type.TypeMirror type) throws java.io.IOException- Throws:
java.io.IOException
-
treturn
private void treturn() throws java.io.IOException- Throws:
java.io.IOException
-
treturn
public void treturn(javax.lang.model.type.TypeMirror type) throws java.io.IOException- Throws:
java.io.IOException
-
trem
private void trem() throws java.io.IOException- Throws:
java.io.IOException
-
trem
public void trem(javax.lang.model.type.TypeMirror type) throws java.io.IOException- Throws:
java.io.IOException
-
tor
private void tor() throws java.io.IOException- Throws:
java.io.IOException
-
tor
public void tor(javax.lang.model.type.TypeMirror type) throws java.io.IOException- Throws:
java.io.IOException
-
tneg
private void tneg() throws java.io.IOException- Throws:
java.io.IOException
-
tneg
public void tneg(javax.lang.model.type.TypeMirror type) throws java.io.IOException- Throws:
java.io.IOException
-
tmul
private void tmul() throws java.io.IOException- Throws:
java.io.IOException
-
tmul
public void tmul(javax.lang.model.type.TypeMirror type) throws java.io.IOException- Throws:
java.io.IOException
-
tload
private void tload(int index) throws java.io.IOException- Throws:
java.io.IOException
-
tload
public void tload(javax.lang.model.type.TypeMirror type, int index) throws java.io.IOException- Throws:
java.io.IOException
-
tipush
private void tipush(int b) throws java.io.IOException- Throws:
java.io.IOException
-
tipush
public void tipush(javax.lang.model.type.TypeMirror type, int b) throws java.io.IOException- Throws:
java.io.IOException
-
tinc
private void tinc(int index, int con) throws java.io.IOException- Throws:
java.io.IOException
-
tinc
public void tinc(javax.lang.model.type.TypeMirror type, int index, int con) throws java.io.IOException- Throws:
java.io.IOException
-
tdiv
private void tdiv() throws java.io.IOException- Throws:
java.io.IOException
-
tdiv
public void tdiv(javax.lang.model.type.TypeMirror type) throws java.io.IOException- Throws:
java.io.IOException
-
tconst_null
private void tconst_null() throws java.io.IOException- Throws:
java.io.IOException
-
tconst
private void tconst(int i) throws java.io.IOException- Throws:
java.io.IOException
-
tconst
public void tconst(javax.lang.model.type.TypeMirror type, int i) throws java.io.IOException- Throws:
java.io.IOException
-
tcmpl
public void tcmpl() throws java.io.IOException- Throws:
java.io.IOException
-
tcmpl
public void tcmpl(javax.lang.model.type.TypeMirror type) throws java.io.IOException- Throws:
java.io.IOException
-
tcmpg
private void tcmpg() throws java.io.IOException- Throws:
java.io.IOException
-
tcmpg
public void tcmpg(javax.lang.model.type.TypeMirror type) throws java.io.IOException- Throws:
java.io.IOException
-
tcmp
private void tcmp() throws java.io.IOException- Throws:
java.io.IOException
-
tcmp
public void tcmp(javax.lang.model.type.TypeMirror type) throws java.io.IOException- Throws:
java.io.IOException
-
tastore
private void tastore() throws java.io.IOExceptionStore into arrayStack: ..., arrayref, index, value => ...
- Throws:
java.io.IOException
-
tastore
public void tastore(javax.lang.model.type.TypeMirror type) throws java.io.IOException- Throws:
java.io.IOException
-
tand
private void tand() throws java.io.IOException- Throws:
java.io.IOException
-
tand
public void tand(javax.lang.model.type.TypeMirror type) throws java.io.IOException- Throws:
java.io.IOException
-
taload
private void taload() throws java.io.IOExceptionLoad from arrayStack: ..., arrayref, index => ..., value
- Throws:
java.io.IOException
-
taload
public void taload(javax.lang.model.type.TypeMirror type) throws java.io.IOExceptionLoad from arrayStack: ..., arrayref, index => ..., value
- Parameters:
type-- Throws:
java.io.IOException
-
tadd
private void tadd() throws java.io.IOException- Throws:
java.io.IOException
-
tadd
public void tadd(javax.lang.model.type.TypeMirror type) throws java.io.IOException- Throws:
java.io.IOException
-
l2t
public void l2t() throws java.io.IOException- Throws:
java.io.IOException
-
if_tcmpne
private void if_tcmpne(java.lang.String target) throws java.io.IOException- Throws:
java.io.IOException
-
if_tcmpne
public void if_tcmpne(javax.lang.model.type.TypeMirror type, java.lang.String target) throws java.io.IOExceptionne succeeds if and only if value1 != value2Stack: ..., value1, value2 => ...
- Parameters:
type-target-- Throws:
java.io.IOException
-
if_tcmplt
private void if_tcmplt(java.lang.String target) throws java.io.IOException- Throws:
java.io.IOException
-
if_tcmplt
public void if_tcmplt(javax.lang.model.type.TypeMirror type, java.lang.String target) throws java.io.IOExceptionlt succeeds if and only if value1 < value2Stack: ..., value1, value2 => ...
- Parameters:
type-target-- Throws:
java.io.IOException
-
if_tcmple
private void if_tcmple(java.lang.String target) throws java.io.IOException- Throws:
java.io.IOException
-
if_tcmple
public void if_tcmple(javax.lang.model.type.TypeMirror type, java.lang.String target) throws java.io.IOExceptionle succeeds if and only if value1 <= value2Stack: ..., value1, value2 => ...
- Parameters:
type-target-- Throws:
java.io.IOException
-
if_tcmpgt
private void if_tcmpgt(java.lang.String target) throws java.io.IOException- Throws:
java.io.IOException
-
if_tcmpgt
public void if_tcmpgt(javax.lang.model.type.TypeMirror type, java.lang.String target) throws java.io.IOExceptiongt succeeds if and only if value1 > value2Stack: ..., value1, value2 => ...
- Parameters:
type-target-- Throws:
java.io.IOException
-
if_tcmpge
private void if_tcmpge(java.lang.String target) throws java.io.IOException- Throws:
java.io.IOException
-
if_tcmpge
public void if_tcmpge(javax.lang.model.type.TypeMirror type, java.lang.String target) throws java.io.IOExceptionge succeeds if and only if value1 >= value2Stack: ..., value1, value2 => ...
- Parameters:
type-target-- Throws:
java.io.IOException
-
if_tcmpeq
private void if_tcmpeq(java.lang.String target) throws java.io.IOException- Throws:
java.io.IOException
-
if_tcmpeq
public void if_tcmpeq(javax.lang.model.type.TypeMirror type, java.lang.String target) throws java.io.IOExceptioneq succeeds if and only if value1 == value2Stack: ..., value1, value2 => ...
- Parameters:
type-target-- Throws:
java.io.IOException
-
if_icmpeq
public void if_icmpeq(java.lang.String target) throws java.io.IOExceptionBranch if value1 = value2Stack: ..., value1, value2 => ...
- Throws:
java.io.IOException
-
if_icmpne
public void if_icmpne(java.lang.String target) throws java.io.IOExceptionBranch if value1 != value2Stack: ..., value1, value2 => ...
- Throws:
java.io.IOException
-
if_icmplt
public void if_icmplt(java.lang.String target) throws java.io.IOExceptionBranch if value1 < value2Stack: ..., value1, value2 => ...
- Throws:
java.io.IOException
-
if_icmple
public void if_icmple(java.lang.String target) throws java.io.IOExceptionBranch if value1 <= value2Stack: ..., value1, value2 => ...
- Throws:
java.io.IOException
-
if_icmpgt
public void if_icmpgt(java.lang.String target) throws java.io.IOExceptionBranch if value1 > value2Stack: ..., value1, value2 => ...
- Throws:
java.io.IOException
-
if_icmpge
public void if_icmpge(java.lang.String target) throws java.io.IOExceptionBranch if value1 >= value2Stack: ..., value1, value2 => ...
- Throws:
java.io.IOException
-
i2t
public void i2t() throws java.io.IOException- Throws:
java.io.IOException
-
f2t
public void f2t() throws java.io.IOException- Throws:
java.io.IOException
-
d2t
public void d2t() throws java.io.IOException- Throws:
java.io.IOException
-
anewarray
public void anewarray(int count) throws java.io.IOException- Throws:
java.io.IOException
-
arraylength
public void arraylength() throws java.io.IOException- Throws:
java.io.IOException
-
athrow
public void athrow() throws java.io.IOException- Throws:
java.io.IOException
-
checkcast
public void checkcast(int objectref) throws java.io.IOException- Throws:
java.io.IOException
-
dup
public void dup() throws java.io.IOExceptionDuplicate the top operand stack valueStack: ..., value => ;..., value, value
Duplicate the top value on the operand stack and push the duplicated value onto the operand stack. The dup instruction must not be used unless value is a value of a category 1 computational type
- Throws:
java.io.IOException- See Also:
category1
-
dup_x1
public void dup_x1() throws java.io.IOExceptionDuplicate the top operand stack value and insert two values downStack: ..., value2, value1 => ..., value1, value2, value1
Duplicate the top value on the operand stack and insert the duplicated value two values down in the operand stack. The dup_x1 instruction must not be used unless both value1 and value2 are values of a category 1 computational type
- Throws:
java.io.IOException- See Also:
category1
-
dup_x2
public void dup_x2() throws java.io.IOExceptionDuplicate the top operand stack value and insert two or three values downStack1: ..., value3, value2, value1 => ..., value1, value3, value2, value1
where value1, value2, and value3 are all values of a category 1 computational type
Stack2: ..., value2, value1 => ..., value1, value2, value1
where value1 is a value of a category 1 computational type and value2 is a value of a category 2 computational type
Duplicate the top value on the operand stack and insert the duplicated value two or three values down in the operand stack
- Throws:
java.io.IOException- See Also:
category1,category2
-
dup2
public void dup2() throws java.io.IOExceptionDuplicate the top one or two operand stack valuesStack1: ..., value2, value1 => ..., value2, value1, value2, value1
where both value1 and value2 are values of a category 1 computational type
Stack2: ..., value => ..., value, value
where value is a value of a category 2 computational type
Duplicate the top one or two values on the operand stack and push the duplicated value or values back onto the operand stack in the original order
- Throws:
java.io.IOException- See Also:
category1,category2
-
dup2_x1
public void dup2_x1() throws java.io.IOExceptionDuplicate the top one or two operand stack values and insert two or three values downStack1: ..., value3, value2, value1 => ..., value2, value1, value3, value2, value1
where value1, value2, and value3 are all values of a category 1 computational type
Stack2: ..., value2, value1 => ..., value1, value2, value1
where value1 is a value of a category 2 computational type and value2 is a value of a category 1 computational type
Duplicate the top one or two values on the operand stack and insert the duplicated values, in the original order, one value beneath the original value or values in the operand stack.
- Throws:
java.io.IOException- See Also:
category1,category2
-
dup2_x2
public void dup2_x2() throws java.io.IOExceptionDuplicate the top one or two operand stack values and insert two, three, or four values downStack1: ..., value4, value3, value2, value1 => ..., value2, value1, value4, value3, value2, value1
where value1, value2, value3, and value4 are all values of a category 1 computational type
Stack2: ..., value3, value2, value1 => ..., value1, value3, value2, value1
where value1 is a value of a category 2 computational type and value2 and value3 are both values of a category 1 computational type
Stack3: ..., value3, value2, value1 => ..., value2, value1, value3, value2, value1
where value1 and value2 are both values of a category 1 computational type and value3 is a value of a category 2 computational type
Stack4: ..., value2, value1 => ..., value1, value2, value1
where value1 and value2 are both values of a category 2 computational type
Duplicate the top one or two values on the operand stack and insert the duplicated values, in the original order, into the operand stack
- Throws:
java.io.IOException- See Also:
category1,category2
-
getfield
public void getfield(int index) throws java.io.IOException- Throws:
java.io.IOException
-
getstatic
public void getstatic(int index) throws java.io.IOException- Throws:
java.io.IOException
-
goto_n
public void goto_n(java.lang.String target) throws java.io.IOExceptionBranch always- Parameters:
target-- Throws:
java.io.IOException
-
goto_w
public void goto_w(java.lang.String target) throws java.io.IOException- Throws:
java.io.IOException
-
optimizeGoto
private boolean optimizeGoto(java.lang.String target) throws java.io.IOExceptionBranch always (wide index)- Parameters:
target-- Throws:
java.io.IOException
-
i2c
public void i2c() throws java.io.IOException- Throws:
java.io.IOException
-
ifeq
public void ifeq(java.lang.String target) throws java.io.IOExceptioneq succeeds if and only if value == 0- Parameters:
target-- Throws:
java.io.IOException
-
ifne
public void ifne(java.lang.String target) throws java.io.IOExceptionne succeeds if and only if value != 0- Parameters:
target-- Throws:
java.io.IOException
-
iflt
public void iflt(java.lang.String target) throws java.io.IOExceptionlt succeeds if and only if value < 0- Parameters:
target-- Throws:
java.io.IOException
-
ifge
public void ifge(java.lang.String target) throws java.io.IOExceptionge succeeds if and only if value >= 0- Parameters:
target-- Throws:
java.io.IOException
-
ifgt
public void ifgt(java.lang.String target) throws java.io.IOExceptiongt succeeds if and only if value > 0- Parameters:
target-- Throws:
java.io.IOException
-
ifle
public void ifle(java.lang.String target) throws java.io.IOExceptionle succeeds if and only if value <= 0- Parameters:
target-- Throws:
java.io.IOException
-
ifnonnull
public void ifnonnull(java.lang.String target) throws java.io.IOException- Throws:
java.io.IOException
-
ifnull
public void ifnull(java.lang.String target) throws java.io.IOException- Throws:
java.io.IOException
-
instanceo
public void instanceo(int index) throws java.io.IOException- Throws:
java.io.IOException
-
invokeinterface
public void invokeinterface(int index, int count) throws java.io.IOException- Throws:
java.io.IOException
-
invokespecial
public void invokespecial(int index) throws java.io.IOException- Throws:
java.io.IOException
-
invokestatic
public void invokestatic(int index) throws java.io.IOException- Throws:
java.io.IOException
-
invokevirtual
public void invokevirtual(int index) throws java.io.IOException- Throws:
java.io.IOException
-
ior
public void ior() throws java.io.IOException- Throws:
java.io.IOException
-
irem
public void irem() throws java.io.IOException- Throws:
java.io.IOException
-
ireturn
public void ireturn() throws java.io.IOException- Throws:
java.io.IOException
-
ishl
public void ishl() throws java.io.IOException- Throws:
java.io.IOException
-
ishr
public void ishr() throws java.io.IOException- Throws:
java.io.IOException
-
istore
public void istore(int index) throws java.io.IOException- Throws:
java.io.IOException
-
isub
public void isub() throws java.io.IOException- Throws:
java.io.IOException
-
iushr
public void iushr() throws java.io.IOException- Throws:
java.io.IOException
-
ixor
public void ixor() throws java.io.IOException- Throws:
java.io.IOException
-
jsr
public void jsr(java.lang.String target) throws java.io.IOException- Throws:
java.io.IOException
-
jsr_w
public void jsr_w(java.lang.String target) throws java.io.IOException- Throws:
java.io.IOException
-
ldc
public void ldc(int index) throws java.io.IOException- Throws:
java.io.IOException
-
ldc_w
public void ldc_w(int index) throws java.io.IOException- Throws:
java.io.IOException
-
ldc2_w
public void ldc2_w(int index) throws java.io.IOException- Throws:
java.io.IOException
-
lookupswitch
public void lookupswitch(java.lang.String def, LookupList list) throws java.io.IOException- Throws:
java.io.IOException
-
monitorenter
public void monitorenter() throws java.io.IOException- Throws:
java.io.IOException
-
monitorexit
public void monitorexit() throws java.io.IOException- Throws:
java.io.IOException
-
multianewarray
public void multianewarray(int index, int dimensions) throws java.io.IOException- Throws:
java.io.IOException
-
anew
public void anew(int index) throws java.io.IOException- Throws:
java.io.IOException
-
newarray
public void newarray(int type) throws java.io.IOException- Throws:
java.io.IOException
-
nop
public void nop() throws java.io.IOException- Throws:
java.io.IOException
-
pop
public void pop() throws java.io.IOException- Throws:
java.io.IOException
-
pop2
public void pop2() throws java.io.IOException- Throws:
java.io.IOException
-
putfield
public void putfield(int index) throws java.io.IOException- Throws:
java.io.IOException
-
putstatic
public void putstatic(int index) throws java.io.IOException- Throws:
java.io.IOException
-
ret
public void ret(int index) throws java.io.IOException- Throws:
java.io.IOException
-
swap
public void swap() throws java.io.IOException- Throws:
java.io.IOException
-
tableswitch
public void tableswitch(java.lang.String def, int low, int high, java.lang.String... symbols) throws java.io.IOException- Throws:
java.io.IOException
-
aconst_null
public void aconst_null() throws java.io.IOException- Throws:
java.io.IOException
-
iconst
public void iconst(int value) throws java.io.IOExceptionPush int constantStack: ...=>..., i
- Parameters:
value- int value- Throws:
java.io.IOException
-
lconst
public void lconst(int value) throws java.io.IOExceptionPush long constantStack: ...=>..., i
- Parameters:
value- int value- Throws:
java.io.IOException
-
fconst
public void fconst(int value) throws java.io.IOExceptionPush float constantStack: ...=>..., i
- Parameters:
value- int value- Throws:
java.io.IOException
-
dconst
public void dconst(int value) throws java.io.IOExceptionPush double constantStack: ...=>..., i
- Parameters:
value- int value- Throws:
java.io.IOException
-
bipush
public void bipush(byte value) throws java.io.IOExceptionPush byte constantStack: ...=>..., i
- Parameters:
value- int value- Throws:
java.io.IOException
-
sipush
public void sipush(short value) throws java.io.IOExceptionPush short constantStack: ...=>..., i
- Parameters:
value- int value- Throws:
java.io.IOException
-
iload
public void iload(int index) throws java.io.IOExceptionLoad int from local variableStack: ...=>..., value
- Parameters:
index-- Throws:
java.io.IOException
-
lload
public void lload(int index) throws java.io.IOExceptionLoad long from local variableStack: ...=>..., value
- Parameters:
index-- Throws:
java.io.IOException
-
fload
public void fload(int index) throws java.io.IOExceptionLoad float from local variableStack: ...=>..., value
- Parameters:
index-- Throws:
java.io.IOException
-
dload
public void dload(int index) throws java.io.IOExceptionLoad double from local variableStack: ...=>..., value
- Parameters:
index-- Throws:
java.io.IOException
-
aload
public void aload(int index) throws java.io.IOExceptionLoad Object from local variableStack: ...=>..., value
- Parameters:
index-- Throws:
java.io.IOException
-
iaload
public void iaload() throws java.io.IOExceptionLoad int from arrayStack: ..., arrayref, index=>..., value
- Throws:
java.io.IOException
-
laload
public void laload() throws java.io.IOExceptionLoad long from arrayStack: ..., arrayref, index=>..., value
- Throws:
java.io.IOException
-
faload
public void faload() throws java.io.IOExceptionLoad float from arrayStack: ..., arrayref, index=>..., value
- Throws:
java.io.IOException
-
daload
public void daload() throws java.io.IOExceptionLoad double from arrayStack: ..., arrayref, index=>..., value
- Throws:
java.io.IOException
-
aaload
public void aaload() throws java.io.IOExceptionLoad Object from arrayStack: ..., arrayref, index=>..., value
- Throws:
java.io.IOException
-
baload
public void baload() throws java.io.IOExceptionLoad byte from arrayStack: ..., arrayref, index=>..., value
- Throws:
java.io.IOException
-
caload
public void caload() throws java.io.IOExceptionLoad char from arrayStack: ..., arrayref, index=>..., value
- Throws:
java.io.IOException
-
saload
public void saload() throws java.io.IOExceptionLoad short from arrayStack: ..., arrayref, index=>..., value
- Throws:
java.io.IOException
-
lstore
public void lstore(int index) throws java.io.IOExceptionStore long into local variableStack: ..., value=>...
- Parameters:
index-- Throws:
java.io.IOException
-
fstore
public void fstore(int index) throws java.io.IOExceptionStore float into local variableStack: ..., value=>...
- Parameters:
index-- Throws:
java.io.IOException
-
dstore
public void dstore(int index) throws java.io.IOExceptionStore double into local variableStack: ..., value=>...
- Parameters:
index-- Throws:
java.io.IOException
-
astore
public void astore(int index) throws java.io.IOExceptionStore Object into local variableStack: ..., value=>...
- Parameters:
index-- Throws:
java.io.IOException
-
iastore
public void iastore() throws java.io.IOExceptionStore into int arrayStack: ..., arrayref, index, value=>...
- Throws:
java.io.IOException
-
lastore
public void lastore() throws java.io.IOExceptionStore into long arrayStack: ..., arrayref, index, value=>...
- Throws:
java.io.IOException
-
fastore
public void fastore() throws java.io.IOExceptionStore into float arrayStack: ..., arrayref, index, value=>...
- Throws:
java.io.IOException
-
dastore
public void dastore() throws java.io.IOExceptionStore into double arrayStack: ..., arrayref, index, value=>...
- Throws:
java.io.IOException
-
aastore
public void aastore() throws java.io.IOExceptionStore into Object arrayStack: ..., arrayref, index, value=>...
- Throws:
java.io.IOException
-
bastore
public void bastore() throws java.io.IOExceptionStore into byte arrayStack: ..., arrayref, index, value=>...
- Throws:
java.io.IOException
-
castore
public void castore() throws java.io.IOExceptionStore into char arrayStack: ..., arrayref, index, value=>...
- Throws:
java.io.IOException
-
sastore
public void sastore() throws java.io.IOExceptionStore into short arrayStack: ..., arrayref, index, value=>...
- Throws:
java.io.IOException
-
iadd
public void iadd() throws java.io.IOExceptionAdd intStack: ..., value1, value2=>..., result
- Throws:
java.io.IOException
-
ladd
public void ladd() throws java.io.IOExceptionAdd longStack: ..., value1, value2=>..., result
- Throws:
java.io.IOException
-
fadd
public void fadd() throws java.io.IOExceptionAdd floatStack: ..., value1, value2=>..., result
- Throws:
java.io.IOException
-
dadd
public void dadd() throws java.io.IOExceptionAdd doubleStack: ..., value1, value2=>..., result
- Throws:
java.io.IOException
-
lsub
public void lsub() throws java.io.IOExceptionSubtract longStack: ..., value1, value2=>..., result
- Throws:
java.io.IOException
-
fsub
public void fsub() throws java.io.IOExceptionSubtract floatStack: ..., value1, value2=>..., result
- Throws:
java.io.IOException
-
dsub
public void dsub() throws java.io.IOExceptionSubtract doubleStack: ..., value1, value2=>..., result
- Throws:
java.io.IOException
-
imul
public void imul() throws java.io.IOExceptionMultiply intStack: ..., value1, value2=>..., result
- Throws:
java.io.IOException
-
lmul
public void lmul() throws java.io.IOExceptionMultiply longStack: ..., value1, value2=>..., result
- Throws:
java.io.IOException
-
fmul
public void fmul() throws java.io.IOExceptionMultiply floatStack: ..., value1, value2=>..., result
- Throws:
java.io.IOException
-
dmul
public void dmul() throws java.io.IOExceptionMultiply doubleStack: ..., value1, value2=>..., result
- Throws:
java.io.IOException
-
idiv
public void idiv() throws java.io.IOExceptionDivide intStack: ..., value1, value2=>..., result
- Throws:
java.io.IOException
-
ldiv
public void ldiv() throws java.io.IOExceptionDivide longStack: ..., value1, value2=>..., result
- Throws:
java.io.IOException
-
fdiv
public void fdiv() throws java.io.IOExceptionDivide floatStack: ..., value1, value2=>..., result
- Throws:
java.io.IOException
-
ddiv
public void ddiv() throws java.io.IOExceptionDivide doubleStack: ..., value1, value2=>..., result
- Throws:
java.io.IOException
-
lrem
public void lrem() throws java.io.IOExceptionRemainder longStack: ..., value1, value2=>..., result
- Throws:
java.io.IOException
-
frem
public void frem() throws java.io.IOExceptionRemainder floatStack: ..., value1, value2=>..., result
- Throws:
java.io.IOException
-
lneg
public void lneg() throws java.io.IOExceptionNegate longStack: ..., value=>..., result
- Throws:
java.io.IOException
-
fneg
public void fneg() throws java.io.IOExceptionNegate floatStack: ..., value=>..., result
- Throws:
java.io.IOException
-
dneg
public void dneg() throws java.io.IOExceptionNegate doubleStack: ..., value=>..., result
- Throws:
java.io.IOException
-
lshl
public void lshl() throws java.io.IOExceptionShift left longStack: ..., value1, value2=>..., result
- Throws:
java.io.IOException
-
lshr
public void lshr() throws java.io.IOExceptionArithmetic shift right longStack: ..., value1, value2=>..., result
- Throws:
java.io.IOException
-
lushr
public void lushr() throws java.io.IOExceptionLogical shift right longStack: ..., value1, value2=>..., result
- Throws:
java.io.IOException
-
iand
public void iand() throws java.io.IOExceptionBoolean AND intStack: ..., value1, value2=>..., result
- Throws:
java.io.IOException
-
land
public void land() throws java.io.IOExceptionBoolean AND longStack: ..., value1, value2=>..., result
- Throws:
java.io.IOException
-
lor
public void lor() throws java.io.IOExceptionBoolean OR longStack: ..., value1, value2=>..., result
- Throws:
java.io.IOException
-
lxor
public void lxor() throws java.io.IOExceptionBoolean XOR longStack: ..., value1, value2=>..., result
- Throws:
java.io.IOException
-
iinc
public void iinc(int index, int con) throws java.io.IOExceptionIncrement local variable by constantStack: No change
- Parameters:
index- into local variablecon- constant value- Throws:
java.io.IOException
-
i2l
public void i2l() throws java.io.IOExceptionConvert int to longStack: ..., value=>..., result
- Throws:
java.io.IOException
-
i2f
public void i2f() throws java.io.IOExceptionConvert int to floatStack: ..., value=>..., result
- Throws:
java.io.IOException
-
i2d
public void i2d() throws java.io.IOExceptionConvert int to doubleStack: ..., value=>..., result
- Throws:
java.io.IOException
-
l2i
public void l2i() throws java.io.IOExceptionConvert long to intStack: ..., value=>..., result
- Throws:
java.io.IOException
-
l2f
public void l2f() throws java.io.IOExceptionConvert long to floatStack: ..., value=>..., result
- Throws:
java.io.IOException
-
l2d
public void l2d() throws java.io.IOExceptionConvert long to doubleStack: ..., value=>..., result
- Throws:
java.io.IOException
-
f2i
public void f2i() throws java.io.IOExceptionConvert float to intStack: ..., value=>..., result
- Throws:
java.io.IOException
-
f2l
public void f2l() throws java.io.IOExceptionConvert float to longStack: ..., value=>..., result
- Throws:
java.io.IOException
-
f2d
public void f2d() throws java.io.IOExceptionConvert float to doubleStack: ..., value=>..., result
- Throws:
java.io.IOException
-
d2i
public void d2i() throws java.io.IOExceptionConvert double to intStack: ..., value=>..., result
- Throws:
java.io.IOException
-
d2l
public void d2l() throws java.io.IOExceptionConvert double to longStack: ..., value=>..., result
- Throws:
java.io.IOException
-
d2f
public void d2f() throws java.io.IOExceptionConvert double to floatStack: ..., value=>..., result
- Throws:
java.io.IOException
-
i2b
public void i2b() throws java.io.IOExceptionConvert int to byteStack: ..., value=>..., result
- Throws:
java.io.IOException
-
i2s
public void i2s() throws java.io.IOExceptionConvert int to shortStack: ..., value=>..., result
- Throws:
java.io.IOException
-
createBranch
public java.lang.String createBranch()
Return a unique branch name- Returns:
-
startBlock
public Block startBlock() throws java.io.IOException
- Throws:
java.io.IOException
-
endBlock
public void endBlock(Block block) throws java.io.IOException
- Throws:
java.io.IOException
-
convert
public void convert(javax.lang.model.type.TypeMirror from, javax.lang.model.type.TypeMirror to) throws java.io.IOException- Throws:
java.io.IOException
-
-