1 package gov.nasa.jpf.jvm.bytecode; 20 21 import gov.nasa.jpf.JPFException; 22 import gov.nasa.jpf.jvm.ElementInfo; 23 import gov.nasa.jpf.jvm.KernelState; 24 import gov.nasa.jpf.jvm.SystemState; 25 import gov.nasa.jpf.jvm.ThreadInfo; 26 27 import gov.nasa.jpf.jvm.FieldInfo; 28 29 30 34 public class GETSTATIC extends StaticFieldInstruction { 35 public Instruction execute (SystemState ss, KernelState ks, ThreadInfo ti) { 36 ElementInfo ei = ks.sa.get(className); 37 FieldInfo fi = getFieldInfo(); 38 39 switch (size) { 40 case 1: 41 int ival = ei.getIntField(fi); 42 ti.push(ival, fi.isReference()); 43 break; 44 case 2: 45 long lval = ei.getLongField(fi); 46 ti.longPush(lval); 47 break; 48 default: 49 throw new JPFException("invalid field type"); 50 } 51 52 return getNext(ti); 53 } 54 55 public int getByteCode () { 56 return 0xB2; 57 } 58 59 public boolean isSchedulingRelevant (SystemState ss, KernelState ks, ThreadInfo ti) { 60 64 if (ti.usePorFieldBoundaries()) { 65 return isSchedulingRelevant(ks, ti); 66 } 67 return false; 68 } 69 } 70 | Popular Tags |