public final class JumpVM extends AbstractVM
conf| Constructor and Description |
|---|
JumpVM(SymbolicEnvironment env,
PathConditionCollector pc)
Constructor
|
| Modifier and Type | Method and Description |
|---|---|
void |
ATHROW(Throwable throwable)
http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc
.html#athrow
|
void |
GOTO_W() |
void |
GOTO()
Unconditional jump
No change to operand stack or local variables.
|
void |
IF_ACMPEQ(String className,
String methName,
int branchIndex,
Object conc_left,
Object conc_right)
(left == right).
|
void |
IF_ACMPNE(String className,
String methName,
int branchIndex,
Object left,
Object right) |
void |
IF_ICMPEQ(String className,
String methName,
int branchIndex,
int left,
int right)
(left == right).
|
void |
IF_ICMPGE(String className,
String methName,
int branchIndex,
int left,
int right) |
void |
IF_ICMPGT(String className,
String methName,
int branchIndex,
int left,
int right)
(left > right) is just (right < left).
|
void |
IF_ICMPLE(String className,
String methName,
int branchIndex,
int left,
int right) |
void |
IF_ICMPLT(String className,
String methName,
int branchIndex,
int left,
int right)
(left < right).
|
void |
IF_ICMPNE(String className,
String methName,
int branchIndex,
int left,
int right) |
void |
IFEQ(String className,
String methName,
int branchIndex,
int p)
(p == 0) is just ((p == right) with right==0).
|
void |
IFGE(String className,
String methName,
int branchIndex,
int p) |
void |
IFGT(String className,
String methName,
int branchIndex,
int p)
(p > 0) is just (0 < p).
|
void |
IFLE(String className,
String methName,
int branchIndex,
int p) |
void |
IFLT(String className,
String methName,
int branchIndex,
int p)
(p < 0) is just ((p < right) with right==0).
|
void |
IFNE(String className,
String methName,
int branchIndex,
int p) |
void |
IFNONNULL(String className,
String methName,
int branchIndex,
Object p) |
void |
IFNULL(String className,
String methName,
int branchIndex,
Object p)
http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.
|
void |
JSR_W() |
void |
JSR()
Unconditional jump (to sub-routine, finally block)
Pushes address onto operand stack, which finally block will astore.
|
void |
LOOKUPSWITCH(String className,
String methName,
int branchIndex,
int goalConcrete,
int[] targetsConcrete)
switch statement whose cases may not be numbered consecutively.
|
void |
RET()
Return from sub-routine
Operand stack and local variables remain unchanged.
|
void |
TABLESWITCH(String className,
String methName,
int branchIndex,
int goalConcrete,
int min,
int max)
switch statement that has consecutively numbered cases.
|
AALOAD, AASTORE, ACONST_NULL, ALOAD_0, ALOAD_1, ALOAD_2, ALOAD_3, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASTORE_0, ASTORE_1, ASTORE_2, ASTORE_3, ASTORE, BALOAD, BASTORE, BB_BEGIN, BIPUSH, CALL_RESULT, CALL_RESULT, CALL_RESULT, CALL_RESULT, CALL_RESULT, CALL_RESULT, CALL_RESULT, CALLER_STACK_PARAM, CALLER_STACK_PARAM, CALLER_STACK_PARAM, CALLER_STACK_PARAM, CALLER_STACK_PARAM, CALLER_STACK_PARAM, CALLER_STACK_PARAM, CALLER_STACK_PARAM, CALLER_STACK_PARAM, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD_0, DLOAD_1, DLOAD_2, DLOAD_3, DLOAD, DMUL, DNEG, DREM, DRETURN, DSTORE_0, DSTORE_1, DSTORE_2, DSTORE_3, DSTORE, DSUB, DUP_X1, DUP_X2, DUP, DUP2_X1, DUP2_X2, DUP2, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD_0, FLOAD_1, FLOAD_2, FLOAD_3, FLOAD, FMUL, FNEG, FREM, FRETURN, FSTORE_0, FSTORE_1, FSTORE_2, FSTORE_3, FSTORE, FSUB, GETFIELD, GETSTATIC, HANDLER_BEGIN, 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, IINC, ILOAD_0, ILOAD_1, ILOAD_2, ILOAD_3, ILOAD, IMUL, INEG, INSTANCEOF, INVOKEINTERFACE, INVOKESPECIAL, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE_0, ISTORE_1, ISTORE_2, ISTORE_3, ISTORE, ISUB, IUSHR, IXOR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC_W, LDC, LDC, LDC, LDC, LDC2_W, LDC2_W, LDIV, LLOAD_0, LLOAD_1, LLOAD_2, LLOAD_3, LLOAD, LMUL, LNEG, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE_0, LSTORE_1, LSTORE_2, LSTORE_3, LSTORE, LSUB, LUSHR, LXOR, METHOD_BEGIN_PARAM, METHOD_BEGIN_PARAM, METHOD_BEGIN_PARAM, METHOD_BEGIN_PARAM, METHOD_BEGIN_PARAM, METHOD_BEGIN_PARAM, METHOD_BEGIN_PARAM, METHOD_BEGIN_PARAM, METHOD_BEGIN_PARAM, METHOD_BEGIN_RECEIVER, METHOD_BEGIN, METHOD_MAXS, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, POP, POP2, PUTFIELD, PUTSTATIC, RETURN, SALOAD, SASTORE, SIPUSH, SRC_LINE_NUMBER, SWAP, UNUSED, WIDEpublic JumpVM(SymbolicEnvironment env, PathConditionCollector pc)
public void IFEQ(String className, String methName, int branchIndex, int p)
IFEQ in interface IVMIFEQ in class AbstractVMpublic void IFNE(String className, String methName, int branchIndex, int p)
IFNE in interface IVMIFNE in class AbstractVMpublic void IFLT(String className, String methName, int branchIndex, int p)
IFLT in interface IVMIFLT in class AbstractVMpublic void IFGE(String className, String methName, int branchIndex, int p)
IFGE in interface IVMIFGE in class AbstractVMpublic void IFGT(String className, String methName, int branchIndex, int p)
IFGT in interface IVMIFGT in class AbstractVMpublic void IFLE(String className, String methName, int branchIndex, int p)
IFLE in interface IVMIFLE in class AbstractVMpublic void IF_ICMPEQ(String className, String methName, int branchIndex, int left, int right)
IF_ICMPEQ in interface IVMIF_ICMPEQ in class AbstractVMpublic void IF_ICMPNE(String className, String methName, int branchIndex, int left, int right)
IF_ICMPNE in interface IVMIF_ICMPNE in class AbstractVMpublic void IF_ICMPLT(String className, String methName, int branchIndex, int left, int right)
IF_ICMPLT in interface IVMIF_ICMPLT in class AbstractVMpublic void IF_ICMPGE(String className, String methName, int branchIndex, int left, int right)
IF_ICMPGE in interface IVMIF_ICMPGE in class AbstractVMpublic void IF_ICMPGT(String className, String methName, int branchIndex, int left, int right)
IF_ICMPGT in interface IVMIF_ICMPGT in class AbstractVMpublic void IF_ICMPLE(String className, String methName, int branchIndex, int left, int right)
IF_ICMPLE in interface IVMIF_ICMPLE in class AbstractVMpublic void IF_ACMPEQ(String className, String methName, int branchIndex, Object conc_left, Object conc_right)
IF_ACMPEQ in interface IVMIF_ACMPEQ in class AbstractVMpublic void IF_ACMPNE(String className, String methName, int branchIndex, Object left, Object right)
IF_ACMPNE in interface IVMIF_ACMPNE in class AbstractVMpublic void IFNULL(String className, String methName, int branchIndex, Object p)
IFNULL in interface IVMIFNULL in class AbstractVMpublic void IFNONNULL(String className, String methName, int branchIndex, Object p)
IFNONNULL in interface IVMIFNONNULL in class AbstractVMpublic void TABLESWITCH(String className, String methName, int branchIndex, int goalConcrete, int min, int max)
We treat the switch statement as a nested if in order lowest to highest index as follows.
if (x==lowest) ..
else
{
if (x==second_lowest) ..
else
{
if ..
http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.
doc14.html#tableswitchTABLESWITCH in interface IVMTABLESWITCH in class AbstractVMpublic void LOOKUPSWITCH(String className, String methName, int branchIndex, int goalConcrete, int[] targetsConcrete)
Very similar to TABLESWITCH(java.lang.String, java.lang.String, int, int, int, int). The main difference is that here we
are given a list of explicit goals. Tableswitch defines its goals
implicitly, between min and max.
http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.
doc8.html#lookupswitch
LOOKUPSWITCH in interface IVMLOOKUPSWITCH in class AbstractVMpublic void GOTO()
GOTO in interface IVMGOTO in class AbstractVMpublic void GOTO_W()
GOTO_W in interface IVMGOTO_W in class AbstractVMpublic void ATHROW(Throwable throwable)
ATHROW in interface IVMATHROW in class AbstractVMpublic void JSR()
JSR in interface IVMJSR in class AbstractVMpublic void JSR_W()
JSR_W in interface IVMJSR_W in class AbstractVMpublic void RET()
RET in interface IVMRET in class AbstractVMCopyright © 2010–2017 EvoSuite. All rights reserved.