1 package gov.nasa.jpf.jvm.bytecode; 20 21 import gov.nasa.jpf.jvm.KernelState; 22 import gov.nasa.jpf.jvm.SystemState; 23 import gov.nasa.jpf.jvm.ThreadInfo; 24 import gov.nasa.jpf.util.CoverageManager; 25 26 import org.apache.bcel.classfile.ConstantPool; 27 28 29 32 public class IFNULL extends IfInstruction { 33 private int target; 34 35 public void setPeer (org.apache.bcel.generic.Instruction i, ConstantPool cp) { 36 target = ((org.apache.bcel.generic.IFNULL) i).getTarget().getPosition(); 37 } 38 39 public Instruction execute (SystemState ss, KernelState ks, ThreadInfo th) { 40 int v = th.pop(); 41 42 if (v == -1) { 43 CoverageManager.incIFBranch(th.index, indexTrue); 44 45 return th.getMethod().getInstructionAt(target); 46 } 47 48 CoverageManager.incIFBranch(th.index, indexFalse); 49 50 return getNext(th); 51 } 52 53 public int getByteCode () { 54 return 0xC6; 55 } 56 } 57 | Popular Tags |