00001 package gov.nasa.arc.ase.jpf.jvm.bytecode; 00002 00003 import gov.nasa.arc.ase.jpf.*; 00004 import gov.nasa.arc.ase.jpf.jvm.*; 00005 import de.fub.bytecode.generic.InstructionHandle; 00006 import gov.nasa.arc.ase.util.Debug; 00007 00008 public class LCMP extends AbstractInstruction { 00009 private de.fub.bytecode.generic.LCMP peer; 00010 00011 public InstructionHandle execute(SystemState ss, KernelState ks, ThreadInfo th) { 00012 long v1 = th.pop2(); 00013 long v2 = th.pop2(); 00014 00015 if (v1 == v2) 00016 th.push(0); 00017 else if (v2 > v1) 00018 th.push(1); 00019 else 00020 th.push(-1); 00021 00022 return th.getPC().getNext(); 00023 } 00024 public void setPeer(de.fub.bytecode.generic.Instruction i) { 00025 peer = (de.fub.bytecode.generic.LCMP)i; 00026 } 00027 }